130 lines
2.9 KiB
C
130 lines
2.9 KiB
C
/*
|
|
* Copyright 2002-2012 Haiku, Inc. All Rights Reserved.
|
|
* Distributed under the terms of the MIT License.
|
|
*/
|
|
#ifndef _SYS_TYPES_H
|
|
#define _SYS_TYPES_H
|
|
|
|
|
|
#include <config/types.h>
|
|
|
|
#include <BeBuild.h>
|
|
|
|
|
|
/* BSD compatibility */
|
|
typedef unsigned long u_long;
|
|
typedef unsigned int u_int;
|
|
typedef unsigned short u_short;
|
|
typedef unsigned char u_char;
|
|
|
|
|
|
/* sysV compatibility */
|
|
typedef unsigned long ulong;
|
|
typedef unsigned short ushort;
|
|
typedef unsigned int uint;
|
|
typedef unsigned char unchar;
|
|
|
|
|
|
typedef __haiku_int64 blkcnt_t;
|
|
typedef __haiku_std_int32 blksize_t;
|
|
typedef __haiku_int64 fsblkcnt_t;
|
|
typedef __haiku_int64 fsfilcnt_t;
|
|
typedef __haiku_int64 off_t;
|
|
typedef __haiku_int64 ino_t;
|
|
typedef __haiku_std_int32 cnt_t;
|
|
typedef __haiku_int32 dev_t;
|
|
typedef __haiku_int32 pid_t;
|
|
typedef __haiku_int32 id_t;
|
|
|
|
typedef __haiku_std_uint32 uid_t;
|
|
typedef __haiku_std_uint32 gid_t;
|
|
typedef __haiku_std_uint32 mode_t;
|
|
typedef __haiku_std_uint32 umode_t;
|
|
typedef __haiku_std_int32 nlink_t;
|
|
|
|
#ifdef __HAIKU_BEOS_COMPATIBLE_TYPES
|
|
typedef int daddr_t; /* disk address */
|
|
#else
|
|
typedef off_t daddr_t; /* disk address */
|
|
#endif
|
|
typedef char* caddr_t;
|
|
|
|
typedef __haiku_addr_t addr_t;
|
|
typedef __haiku_int32 key_t;
|
|
|
|
typedef __haiku_std_int32 clockid_t;
|
|
typedef struct __timer_t* timer_t;
|
|
|
|
|
|
/* pthread types */
|
|
|
|
typedef struct _pthread_thread *pthread_t;
|
|
typedef struct _pthread_attr *pthread_attr_t;
|
|
typedef struct _pthread_barrier pthread_barrier_t;
|
|
typedef struct _pthread_barrierattr *pthread_barrierattr_t;
|
|
typedef struct _pthread_mutex pthread_mutex_t;
|
|
typedef struct _pthread_mutexattr *pthread_mutexattr_t;
|
|
typedef struct _pthread_cond pthread_cond_t;
|
|
typedef struct _pthread_condattr *pthread_condattr_t;
|
|
typedef int pthread_key_t;
|
|
typedef struct _pthread_once pthread_once_t;
|
|
typedef struct _pthread_rwlock pthread_rwlock_t;
|
|
typedef struct _pthread_rwlockattr *pthread_rwlockattr_t;
|
|
typedef struct _pthread_spinlock pthread_spinlock_t;
|
|
|
|
struct _pthread_mutex {
|
|
__haiku_std_uint32 flags;
|
|
__haiku_std_int32 lock;
|
|
__haiku_std_int32 unused;
|
|
__haiku_std_int32 owner;
|
|
__haiku_std_int32 owner_count;
|
|
};
|
|
|
|
struct _pthread_barrier {
|
|
__haiku_std_uint32 flags;
|
|
__haiku_std_int32 lock;
|
|
__haiku_std_int32 mutex;
|
|
__haiku_std_int32 waiter_count;
|
|
__haiku_std_int32 waiter_max;
|
|
};
|
|
|
|
struct _pthread_cond {
|
|
__haiku_std_uint32 flags;
|
|
__haiku_std_int32 unused;
|
|
pthread_mutex_t* mutex;
|
|
__haiku_std_int32 waiter_count;
|
|
__haiku_std_int32 lock;
|
|
};
|
|
|
|
struct _pthread_once {
|
|
__haiku_std_int32 state;
|
|
};
|
|
|
|
struct _pthread_rwlock {
|
|
__haiku_std_uint32 flags;
|
|
__haiku_std_int32 owner;
|
|
union {
|
|
struct {
|
|
__haiku_std_int32 mutex;
|
|
__haiku_std_int32 unused;
|
|
__haiku_std_int32 reader_count;
|
|
__haiku_std_int32 writer_count;
|
|
void* waiters[2];
|
|
} local;
|
|
struct {
|
|
__haiku_std_int32 sem;
|
|
} shared;
|
|
} u;
|
|
};
|
|
|
|
struct _pthread_spinlock {
|
|
__haiku_std_int32 lock;
|
|
};
|
|
|
|
|
|
#include <null.h>
|
|
#include <size_t.h>
|
|
#include <time.h>
|
|
|
|
#endif
|