Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1. #ifndef _ASM_X86_POSIX_TYPES_32_H
  2. #define _ASM_X86_POSIX_TYPES_32_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 long   __kernel_ino_t;
  11. typedef unsigned short  __kernel_mode_t;
  12. typedef unsigned short  __kernel_nlink_t;
  13. typedef long            __kernel_off_t;
  14. typedef int             __kernel_pid_t;
  15. typedef unsigned short  __kernel_ipc_pid_t;
  16. typedef unsigned short  __kernel_uid_t;
  17. typedef unsigned short  __kernel_gid_t;
  18. typedef unsigned int    __kernel_size_t;
  19. typedef int             __kernel_ssize_t;
  20. typedef int             __kernel_ptrdiff_t;
  21. typedef long            __kernel_time_t;
  22. typedef long            __kernel_suseconds_t;
  23. typedef long            __kernel_clock_t;
  24. typedef int             __kernel_timer_t;
  25. typedef int             __kernel_clockid_t;
  26. typedef int             __kernel_daddr_t;
  27. typedef char *          __kernel_caddr_t;
  28. typedef unsigned short  __kernel_uid16_t;
  29. typedef unsigned short  __kernel_gid16_t;
  30. typedef unsigned int    __kernel_uid32_t;
  31. typedef unsigned int    __kernel_gid32_t;
  32.  
  33. typedef unsigned short  __kernel_old_uid_t;
  34. typedef unsigned short  __kernel_old_gid_t;
  35. typedef unsigned short  __kernel_old_dev_t;
  36.  
  37. #ifdef __GNUC__
  38. typedef long long       __kernel_loff_t;
  39. #endif
  40.  
  41. typedef struct {
  42.         int     val[2];
  43. } __kernel_fsid_t;
  44.  
  45. #if defined(__KERNEL__)
  46.  
  47. #undef  __FD_SET
  48. #define __FD_SET(fd,fdsetp)                                     \
  49.         asm volatile("btsl %1,%0":                              \
  50.                      "+m" (*(__kernel_fd_set *)(fdsetp))        \
  51.                      : "r" ((int)(fd)))
  52.  
  53. #undef  __FD_CLR
  54. #define __FD_CLR(fd,fdsetp)                                     \
  55.         asm volatile("btrl %1,%0":                              \
  56.                      "+m" (*(__kernel_fd_set *)(fdsetp))        \
  57.                      : "r" ((int) (fd)))
  58.  
  59. #undef  __FD_ISSET
  60. #define __FD_ISSET(fd,fdsetp)                                   \
  61.         (__extension__                                          \
  62.          ({                                                     \
  63.          unsigned char __result;                                \
  64.          asm volatile("btl %1,%2 ; setb %0"                     \
  65.                       : "=q" (__result)                         \
  66.                       : "r" ((int)(fd)),                        \
  67.                         "m" (*(__kernel_fd_set *)(fdsetp)));    \
  68.          __result;                                              \
  69. }))
  70.  
  71. #undef  __FD_ZERO
  72. #define __FD_ZERO(fdsetp)                                       \
  73. do {                                                            \
  74.         int __d0, __d1;                                         \
  75.         asm volatile("cld ; rep ; stosl"                        \
  76.                      : "=m" (*(__kernel_fd_set *)(fdsetp)),     \
  77.                        "=&c" (__d0), "=&D" (__d1)               \
  78.                      : "a" (0), "1" (__FDSET_LONGS),            \
  79.                        "2" ((__kernel_fd_set *)(fdsetp))        \
  80.                      : "memory");                               \
  81. } while (0)
  82.  
  83. #endif /* defined(__KERNEL__) */
  84.  
  85. #endif /* _ASM_X86_POSIX_TYPES_32_H */
  86.