1#ifndef B_OK
2
3#include <windows.h>
4#include <winnt.h>
5//#include <semaphore.h>
6//#include <pthread.h>
7//#include <sys/utsname.h>
8
9#define B_OK				0
10#define B_ENTRY_NOT_FOUND	ENOENT
11#define B_PATH_NAME_LENGTH	1024
12#define B_FILE_NAME_LENGTH	256
13#define B_OS_NAME_LENGTH	32
14#define B_INTERRUPTED		1
15
16#define BEOS_ENOENT			2147508227
17#define BEOS_EACCES			2147483650
18#define BEOS_ENOMEM			2147483648
19#define BEOS_EINVAL			0
20
21#ifndef true
22#define true				1
23#define false				0
24#endif
25
26#define WSTAT_MODE			0x0001
27#define WSTAT_UID			0x0002
28#define WSTAT_GID			0x0004
29#define WSTAT_SIZE			0x0008
30#define WSTAT_ATIME			0x0010
31#define WSTAT_MTIME			0x0020
32#define WSTAT_CRTIME		0x0040
33
34#define B_COMMON_SETTINGS_DIRECTORY		".\\"
35#define B_COMMON_SYSTEM_DIRECTORY		".\\"
36
37#define ENOTSUP				1
38
39#define B_HOST_TO_LENDIAN_INT32(x)	(x)
40#define B_HOST_TO_LENDIAN_INT64(x)	(x)
41#define B_HOST_TO_BENDIAN_INT32(x)	(x)
42#define B_HOST_TO_BENDIAN_INT64(x)	(x)
43#define B_LENDIAN_TO_HOST_INT32(x)	(x)
44#define B_LENDIAN_TO_HOST_INT64(x)	(x)
45#define B_BENDIAN_TO_HOST_INT32(x)	(x)
46#define B_BENDIAN_TO_HOST_INT64(x)	(x)
47
48#define lstat(f, s)			stat(f, s)
49#define S_ISDIR(m)			((m) & _S_IFDIR)
50
51typedef char int8;
52typedef long int32;
53typedef LONGLONG int64;
54typedef unsigned char uint8;
55typedef unsigned long uint32;
56typedef ULONGLONG uint64;
57
58typedef uint64 vnode_id;
59typedef uint64 beos_ino_t;
60typedef uint64 beos_off_t;
61typedef unsigned long beos_dev_t;
62typedef long sem_id;
63typedef long thread_id;
64
65
66enum {
67	B_ANY_TYPE 					= 'ANYT',
68	B_BOOL_TYPE 				= 'BOOL',
69	B_CHAR_TYPE 				= 'CHAR',
70	B_COLOR_8_BIT_TYPE 			= 'CLRB',
71	B_DOUBLE_TYPE 				= 'DBLE',
72	B_FLOAT_TYPE 				= 'FLOT',
73	B_GRAYSCALE_8_BIT_TYPE		= 'GRYB',
74	B_INT64_TYPE 				= 'LLNG',
75	B_INT32_TYPE 				= 'LONG',
76	B_INT16_TYPE 				= 'SHRT',
77	B_INT8_TYPE 				= 'BYTE',
78	B_MESSAGE_TYPE				= 'MSGG',
79	B_MESSENGER_TYPE			= 'MSNG',
80	B_MIME_TYPE					= 'MIME',
81	B_MONOCHROME_1_BIT_TYPE 	= 'MNOB',
82	B_OBJECT_TYPE 				= 'OPTR',
83	B_OFF_T_TYPE 				= 'OFFT',
84	B_PATTERN_TYPE 				= 'PATN',
85	B_POINTER_TYPE 				= 'PNTR',
86	B_POINT_TYPE 				= 'BPNT',
87	B_RAW_TYPE 					= 'RAWT',
88	B_RECT_TYPE 				= 'RECT',
89	B_REF_TYPE 					= 'RREF',
90	B_RGB_32_BIT_TYPE 			= 'RGBB',
91	B_RGB_COLOR_TYPE 			= 'RGBC',
92	B_SIZE_T_TYPE	 			= 'SIZT',
93	B_SSIZE_T_TYPE	 			= 'SSZT',
94	B_STRING_TYPE 				= 'CSTR',
95	B_TIME_TYPE 				= 'TIME',
96	B_UINT64_TYPE				= 'ULLG',
97	B_UINT32_TYPE				= 'ULNG',
98	B_UINT16_TYPE 				= 'USHT',
99	B_UINT8_TYPE 				= 'UBYT',
100	B_MEDIA_PARAMETER_TYPE		= 'BMCT',
101	B_MEDIA_PARAMETER_WEB_TYPE	= 'BMCW',
102	B_MEDIA_PARAMETER_GROUP_TYPE= 'BMCG',
103
104	/* deprecated, do not use */
105	B_ASCII_TYPE 				= 'TEXT'	/* use B_STRING_TYPE instead */
106};
107
108
109typedef struct fs_info
110{
111	beos_dev_t	dev;
112	beos_ino_t	root;
113	uint32		flags;
114//	beos_off_t	block_size;
115	uint32		block_size;
116	beos_off_t	io_size;
117//	beos_off_t	total_blocks;
118//	beos_off_t	free_blocks;
119	uint32		total_blocks;
120	uint32		free_blocks;
121	beos_off_t	total_nodes;
122	beos_off_t	free_nodes;
123	char		device_name[128];
124	char		volume_name[B_FILE_NAME_LENGTH];
125	char		fsh_name[B_OS_NAME_LENGTH];
126} fs_info;
127
128typedef struct beos_stat
129{
130	uint32		st_dev;
131	uint32		st_nlink;
132	uint32		st_uid;
133	uint32		st_gid;
134	uint32		st_size;
135	uint32		st_blksize;
136	uint32		st_rdev;
137	uint32		st_ino;
138	uint32		st_mode;
139	uint32		st_atime;
140	uint32		st_mtime;
141	uint32		st_ctime;
142} beos_stat;
143
144
145bool IsValidUser(char *user, char *domain, char *password);
146
147#endif
148