whoops - forgot to commit header files
[reactos.git] / posix / include / sys / types.h
1 /*
2 * sys/types.h
3 *
4 * data types. Based on the Single UNIX(r) Specification, Version 2
5 *
6 * This file is part of the ReactOS Operating System.
7 *
8 * Contributors:
9 * Created by KJK::Hyperion <noog@libero.it>
10 *
11 * THIS SOFTWARE IS NOT COPYRIGHTED
12 *
13 * This source code is offered for use in the public domain. You may
14 * use, modify or distribute it freely.
15 *
16 * This code is distributed in the hope that it will be useful but
17 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
18 * DISCLAMED. This includes but is not limited to warranties of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
20 *
21 */
22 #ifndef __SYS_TYPES_H_INCLUDED__
23 #define __SYS_TYPES_H_INCLUDED__
24
25 /* INCLUDES */
26 #include <inttypes.h>
27
28 /* OBJECTS */
29
30 /* TYPES */
31 /* FIXME: all these types need to be checked */
32 typedef unsigned long int blkcnt_t; /* Used for file block counts */
33 typedef unsigned long int blksize_t; /* Used for block sizes */
34 typedef long long clock_t; /* Used for system times in clock ticks or CLOCKS_PER_SEC */
35 typedef int clockid_t; /* Used for clock ID type in the clock and timer functions. */
36 typedef int dev_t; /* Used for device IDs. */
37 typedef long long fsblkcnt_t; /* Used for file system block counts */
38 typedef long long fsfilcnt_t; /* Used for file system file counts */
39 typedef int gid_t; /* Used for group IDs. */
40 typedef int id_t; /* Used as a general identifier; can be used to contain at least a
41 pid_t, uid_t or a gid_t. */
42 typedef uint64_t ino_t; /* Used for file serial numbers. */
43 typedef int key_t; /* Used for interprocess communication. */
44 typedef int mode_t; /* Used for some file attributes. */
45 typedef int nlink_t; /* Used for link counts. */
46 typedef int64_t off_t; /* Used for file sizes. */
47 typedef unsigned long int pid_t; /* Used for process IDs and process group IDs. */
48
49 /* pthread types */
50 typedef void * pthread_cond_t; /* Used for condition variables. */
51 typedef void * pthread_condattr_t; /* Used to identify a condition attribute object. */
52 typedef void * pthread_key_t; /* Used for thread-specific data keys. */
53 typedef void * pthread_attr_t; /* Used to identify a thread attribute object. */
54
55 typedef void * pthread_mutex_t;
56 typedef void * pthread_mutexattr_t;
57
58 typedef void * pthread_once_t; /* Used for dynamic package initialisation. */
59 typedef void * pthread_rwlock_t; /* Used for read-write locks. */
60 typedef void * pthread_rwlockattr_t; /* Used for read-write lock attributes. */
61 typedef unsigned long int pthread_t; /* Used to identify a thread. */
62
63 typedef unsigned long int size_t; /* Used for sizes of objects. */
64 typedef long int ssize_t; /* Used for a count of bytes or an error indication. */
65 typedef long long suseconds_t; /* Used for time in microseconds */
66 typedef unsigned long int time_t; /* Used for time in seconds. */
67 typedef void * timer_t; /* Used for timer ID returned by timer_create(). */
68 typedef int uid_t; /* Used for user IDs. */
69 typedef unsigned long long useconds_t; /* Used for time in microseconds. */
70
71 /* CONSTANTS */
72
73 /* PROTOTYPES */
74
75 /* MACROS */
76
77 #endif /* __SYS_TYPES_H_INCLUDED__ */
78
79 /* EOF */
80