Subversion Repositories Kolibri OS

Rev

Rev 1408 | Rev 1970 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. #ifndef _LINUX_TYPES_H
  2. #define _LINUX_TYPES_H
  3.  
  4. #include <asm/types.h>
  5.  
  6. #ifndef __ASSEMBLY__
  7. #ifdef  __KERNEL__
  8.  
  9. #define DECLARE_BITMAP(name,bits) \
  10.         unsigned long name[BITS_TO_LONGS(bits)]
  11.  
  12. #endif
  13.  
  14. #include <linux/posix_types.h>
  15.  
  16. #ifdef __KERNEL__
  17.  
  18. typedef __u32 __kernel_dev_t;
  19.  
  20. typedef __kernel_fd_set         fd_set;
  21. typedef __kernel_dev_t          dev_t;
  22. typedef __kernel_ino_t          ino_t;
  23. typedef __kernel_mode_t         mode_t;
  24. typedef __kernel_nlink_t        nlink_t;
  25. typedef __kernel_off_t          off_t;
  26. typedef __kernel_pid_t          pid_t;
  27. typedef __kernel_daddr_t        daddr_t;
  28. typedef __kernel_key_t          key_t;
  29. typedef __kernel_suseconds_t    suseconds_t;
  30. typedef __kernel_timer_t        timer_t;
  31. typedef __kernel_clockid_t      clockid_t;
  32. typedef __kernel_mqd_t          mqd_t;
  33.  
  34. typedef _Bool                   bool;
  35.  
  36. typedef __kernel_uid32_t        uid_t;
  37. typedef __kernel_gid32_t        gid_t;
  38. typedef __kernel_uid16_t        uid16_t;
  39. typedef __kernel_gid16_t        gid16_t;
  40.  
  41. typedef unsigned long           uintptr_t;
  42.  
  43. #ifdef CONFIG_UID16
  44. /* This is defined by include/asm-{arch}/posix_types.h */
  45. typedef __kernel_old_uid_t      old_uid_t;
  46. typedef __kernel_old_gid_t      old_gid_t;
  47. #endif /* CONFIG_UID16 */
  48.  
  49. #if defined(__GNUC__)
  50. typedef __kernel_loff_t         loff_t;
  51. #endif
  52.  
  53. /*
  54.  * The following typedefs are also protected by individual ifdefs for
  55.  * historical reasons:
  56.  */
  57. #ifndef _SIZE_T
  58. #define _SIZE_T
  59. typedef __kernel_size_t         size_t;
  60. #endif
  61.  
  62. #ifndef _SSIZE_T
  63. #define _SSIZE_T
  64. typedef __kernel_ssize_t        ssize_t;
  65. #endif
  66.  
  67. #ifndef _PTRDIFF_T
  68. #define _PTRDIFF_T
  69. typedef __kernel_ptrdiff_t      ptrdiff_t;
  70. #endif
  71.  
  72. #ifndef _TIME_T
  73. #define _TIME_T
  74. typedef __kernel_time_t         time_t;
  75. #endif
  76.  
  77. #ifndef _CLOCK_T
  78. #define _CLOCK_T
  79. typedef __kernel_clock_t        clock_t;
  80. #endif
  81.  
  82. #ifndef _CADDR_T
  83. #define _CADDR_T
  84. typedef __kernel_caddr_t        caddr_t;
  85. #endif
  86.  
  87. /* bsd */
  88. typedef unsigned char           u_char;
  89. typedef unsigned short          u_short;
  90. typedef unsigned int            u_int;
  91. typedef unsigned long           u_long;
  92.  
  93. /* sysv */
  94. typedef unsigned char           unchar;
  95. typedef unsigned short          ushort;
  96. typedef unsigned int            uint;
  97. typedef unsigned long           ulong;
  98.  
  99. #ifndef __BIT_TYPES_DEFINED__
  100. #define __BIT_TYPES_DEFINED__
  101.  
  102. typedef         __u8            u_int8_t;
  103. typedef         __s8            int8_t;
  104. typedef         __u16           u_int16_t;
  105. typedef         __s16           int16_t;
  106. typedef         __u32           u_int32_t;
  107. typedef         __s32           int32_t;
  108.  
  109. #endif /* !(__BIT_TYPES_DEFINED__) */
  110.  
  111. typedef         __u8            uint8_t;
  112. typedef         __u16           uint16_t;
  113. typedef         __u32           uint32_t;
  114.  
  115. #if defined(__GNUC__)
  116. typedef         __u64           uint64_t;
  117. typedef         __u64           u_int64_t;
  118. typedef         __s64           int64_t;
  119. #endif
  120.  
  121. /* this is a special 64bit data type that is 8-byte aligned */
  122. #define aligned_u64 __u64 __attribute__((aligned(8)))
  123. #define aligned_be64 __be64 __attribute__((aligned(8)))
  124. #define aligned_le64 __le64 __attribute__((aligned(8)))
  125.  
  126. /**
  127.  * The type used for indexing onto a disc or disc partition.
  128.  *
  129.  * Linux always considers sectors to be 512 bytes long independently
  130.  * of the devices real block size.
  131.  *
  132.  * blkcnt_t is the type of the inode's block count.
  133.  */
  134. #ifdef CONFIG_LBDAF
  135. typedef u64 sector_t;
  136. typedef u64 blkcnt_t;
  137. #else
  138. typedef unsigned long sector_t;
  139. typedef unsigned long blkcnt_t;
  140. #endif
  141.  
  142. /*
  143.  * The type of an index into the pagecache.  Use a #define so asm/types.h
  144.  * can override it.
  145.  */
  146. #ifndef pgoff_t
  147. #define pgoff_t unsigned long
  148. #endif
  149.  
  150. #endif /* __KERNEL__ */
  151.  
  152. /*
  153.  * Below are truly Linux-specific types that should never collide with
  154.  * any application/library that wants linux/types.h.
  155.  */
  156.  
  157. #ifdef __CHECKER__
  158. #define __bitwise__ __attribute__((bitwise))
  159. #else
  160. #define __bitwise__
  161. #endif
  162. #ifdef __CHECK_ENDIAN__
  163. #define __bitwise __bitwise__
  164. #else
  165. #define __bitwise
  166. #endif
  167.  
  168. typedef __u16 __bitwise __le16;
  169. typedef __u16 __bitwise __be16;
  170. typedef __u32 __bitwise __le32;
  171. typedef __u32 __bitwise __be32;
  172. typedef __u64 __bitwise __le64;
  173. typedef __u64 __bitwise __be64;
  174.  
  175. typedef __u16 __bitwise __sum16;
  176. typedef __u32 __bitwise __wsum;
  177.  
  178. #ifdef __KERNEL__
  179. typedef unsigned __bitwise__ gfp_t;
  180. typedef unsigned __bitwise__ fmode_t;
  181.  
  182. #ifdef CONFIG_PHYS_ADDR_T_64BIT
  183. typedef u64 phys_addr_t;
  184. #else
  185. typedef u32 phys_addr_t;
  186. #endif
  187.  
  188. typedef phys_addr_t resource_size_t;
  189.  
  190. typedef struct {
  191.         volatile int counter;
  192. } atomic_t;
  193.  
  194. #ifdef CONFIG_64BIT
  195. typedef struct {
  196.         volatile long counter;
  197. } atomic64_t;
  198. #endif
  199.  
  200. struct ustat {
  201.         __kernel_daddr_t        f_tfree;
  202.         __kernel_ino_t          f_tinode;
  203.         char                    f_fname[6];
  204.         char                    f_fpack[6];
  205. };
  206.  
  207. #endif  /* __KERNEL__ */
  208. #endif /*  __ASSEMBLY__ */
  209.  
  210.  
  211.  
  212.  
  213. typedef unsigned char        u8_t;
  214. typedef unsigned short       u16_t;
  215. typedef unsigned int         u32_t;
  216. typedef unsigned long long   u64_t;
  217.  
  218. typedef unsigned int         addr_t;
  219. typedef unsigned int         count_t;
  220.  
  221. # define WARN(condition, format...)
  222.  
  223.  
  224. #define false                0
  225. #define true                 1
  226.  
  227.  
  228. #define likely(x)       __builtin_expect(!!(x), 1)
  229. #define unlikely(x)     __builtin_expect(!!(x), 0)
  230.  
  231. #define BITS_PER_LONG 32
  232.  
  233. #define DIV_ROUND_UP(n,d) (((n) + (d) - 1) / (d))
  234.  
  235.  
  236.  
  237. #define DRM_NAME    "drm"     /**< Name in kernel, /dev, and /proc */
  238.  
  239. #define DRM_INFO(fmt, arg...)  dbgprintf("DRM: "fmt , ##arg)
  240.  
  241. #define DRM_ERROR(fmt, arg...) \
  242.     printk(KERN_ERR "[" DRM_NAME ":%s] *ERROR* " fmt , __func__ , ##arg)
  243.  
  244. #define BUILD_BUG_ON_ZERO(e) (sizeof(char[1 - 2 * !!(e)]) - 1)
  245.  
  246. #define __must_be_array(a) \
  247.     BUILD_BUG_ON_ZERO(__builtin_types_compatible_p(typeof(a), typeof(&a[0])))
  248.  
  249. #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr))
  250.  
  251.  
  252.  
  253.  
  254. #ifndef HAVE_ARCH_BUG
  255. #define BUG() do { \
  256.          printk("BUG: failure at %s:%d/%s()!\n", __FILE__, __LINE__, __FUNCTION__); \
  257.        /*  panic("BUG!"); */ \
  258.  } while (0)
  259. #endif
  260.  
  261. #ifndef HAVE_ARCH_BUG_ON
  262. #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while(0)
  263. #endif
  264.  
  265.  
  266.  
  267. #define MTRR_TYPE_UNCACHABLE 0
  268. #define MTRR_TYPE_WRCOMB     1
  269. #define MTRR_TYPE_WRTHROUGH  4
  270. #define MTRR_TYPE_WRPROT     5
  271. #define MTRR_TYPE_WRBACK     6
  272. #define MTRR_NUM_TYPES       7
  273.  
  274. int dbgprintf(const char* format, ...);
  275.  
  276. #define GFP_KERNEL           0
  277.  
  278. //#include <stdio.h>
  279.  
  280. int snprintf(char *str, size_t size, const char *format, ...);
  281.  
  282.  
  283. //#include <string.h>
  284.  
  285. void*   memcpy(void *s1, const void *s2, size_t n);
  286. void*   memset(void *s, int c, size_t n);
  287. size_t  strlen(const char *s);
  288. char *strcpy(char *s1, const char *s2);
  289. char *strncpy (char *dst, const char *src, size_t len);
  290.  
  291. void *malloc(size_t size);
  292. #define kfree free
  293.  
  294. static inline void *kzalloc(size_t size, uint32_t flags)
  295. {
  296.     void *ret = malloc(size);
  297.     memset(ret, 0, size);
  298.     return ret;
  299. }
  300.  
  301. #define kmalloc(s,f) kzalloc((s), (f))
  302.  
  303. struct drm_file;
  304.  
  305.  
  306. #define DRM_MEMORYBARRIER() __asm__ __volatile__("lock; addl $0,0(%esp)")
  307. #define mb() __asm__ __volatile__("lock; addl $0,0(%esp)")
  308.  
  309.  
  310. #define PAGE_SHIFT      12
  311. #define PAGE_SIZE       (1UL << PAGE_SHIFT)
  312. #define PAGE_MASK       (~(PAGE_SIZE-1))
  313.  
  314.  
  315. #define do_div(n, base)                     \
  316. ({                              \
  317.     unsigned long __upper, __low, __high, __mod, __base;    \
  318.     __base = (base);                    \
  319.     asm("":"=a" (__low), "=d" (__high) : "A" (n));      \
  320.     __upper = __high;                   \
  321.     if (__high) {                       \
  322.         __upper = __high % (__base);            \
  323.         __high = __high / (__base);         \
  324.     }                           \
  325.     asm("divl %2":"=a" (__low), "=d" (__mod)        \
  326.         : "rm" (__base), "0" (__low), "1" (__upper));   \
  327.     asm("":"=A" (n) : "a" (__low), "d" (__high));       \
  328.     __mod;                          \
  329. })
  330.  
  331.  
  332.  
  333. #define PCI_DEVICE_ID_ATI_RADEON_QY 0x5159
  334.  
  335. #endif /* _LINUX_TYPES_H */
  336.  
  337.  
  338.  
  339.  
  340.  
  341.