Subversion Repositories shark

Rev

Rev 168 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
168 giacomo 1
#ifndef __ARCH_I386_POSIX_TYPES_H
2
#define __ARCH_I386_POSIX_TYPES_H
3
 
4
/*
5
 * This file is generally used by user-level software, so you need to
6
 * be a little careful about namespace pollution etc.  Also, we cannot
7
 * assume GCC is being used.
8
 */
9
 
10
typedef unsigned short  __kernel_dev_t;
11
typedef unsigned long   __kernel_ino_t;
12
typedef unsigned short  __kernel_mode_t;
13
typedef unsigned short  __kernel_nlink_t;
14
typedef long            __kernel_off_t;
15
typedef int             __kernel_pid_t;
16
typedef unsigned short  __kernel_ipc_pid_t;
17
typedef unsigned short  __kernel_uid_t;
18
typedef unsigned short  __kernel_gid_t;
19
typedef unsigned int    __kernel_size_t;
20
typedef int             __kernel_ssize_t;
21
typedef int             __kernel_ptrdiff_t;
22
typedef long            __kernel_time_t;
23
typedef long            __kernel_suseconds_t;
24
typedef long            __kernel_clock_t;
25
typedef int             __kernel_daddr_t;
26
typedef char *          __kernel_caddr_t;
27
typedef unsigned short  __kernel_uid16_t;
28
typedef unsigned short  __kernel_gid16_t;
29
typedef unsigned int    __kernel_uid32_t;
30
typedef unsigned int    __kernel_gid32_t;
31
 
32
typedef unsigned short  __kernel_old_uid_t;
33
typedef unsigned short  __kernel_old_gid_t;
34
 
35
#ifdef __GNUC__
36
typedef long long       __kernel_loff_t;
37
#endif
38
 
39
typedef struct {
40
#if defined(__KERNEL__) || defined(__USE_ALL)
41
        int     val[2];
42
#else /* !defined(__KERNEL__) && !defined(__USE_ALL) */
43
        int     __val[2];
44
#endif /* !defined(__KERNEL__) && !defined(__USE_ALL) */
45
} __kernel_fsid_t;
46
 
47
#if defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2)
48
 
49
#undef  __FD_SET
50
#define __FD_SET(fd,fdsetp) \
51
                __asm__ __volatile__("btsl %1,%0": \
52
                        "=m" (*(__kernel_fd_set *) (fdsetp)):"r" ((int) (fd)))
53
 
54
#undef  __FD_CLR
55
#define __FD_CLR(fd,fdsetp) \
56
                __asm__ __volatile__("btrl %1,%0": \
57
                        "=m" (*(__kernel_fd_set *) (fdsetp)):"r" ((int) (fd)))
58
 
59
#undef  __FD_ISSET
60
#define __FD_ISSET(fd,fdsetp) (__extension__ ({ \
61
                unsigned char __result; \
62
                __asm__ __volatile__("btl %1,%2 ; setb %0" \
63
                        :"=q" (__result) :"r" ((int) (fd)), \
64
                        "m" (*(__kernel_fd_set *) (fdsetp))); \
65
                __result; }))
66
 
67
#undef  __FD_ZERO
68
#define __FD_ZERO(fdsetp) \
69
do { \
70
        int __d0, __d1; \
71
        __asm__ __volatile__("cld ; rep ; stosl" \
72
                        :"=m" (*(__kernel_fd_set *) (fdsetp)), \
73
                          "=&c" (__d0), "=&D" (__d1) \
74
                        :"a" (0), "1" (__FDSET_LONGS), \
75
                        "2" ((__kernel_fd_set *) (fdsetp)) : "memory"); \
76
} while (0)
77
 
78
#endif /* defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2) */
79
 
80
#endif