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 lstat(f, s) stat(f, s) 40#define S_ISDIR(m) ((m) & _S_IFDIR) 41 42typedef char int8; 43typedef long int32; 44typedef LONGLONG int64; 45typedef unsigned char uint8; 46typedef unsigned long uint32; 47typedef ULONGLONG uint64; 48 49typedef uint64 vnode_id; 50typedef uint64 beos_ino_t; 51typedef uint64 beos_off_t; 52typedef unsigned long beos_dev_t; 53typedef HANDLE sem_id; 54typedef HANDLE thread_id; 55 56#define LITTLE_ENDIAN 57 58#ifdef LITTLE_ENDIAN 59#define B_LENDIAN_TO_HOST_INT32(x) (x) 60#define B_LENDIAN_TO_HOST_INT64(x) (x) 61#define B_HOST_TO_LENDIAN_INT32(x) (x) 62#define B_HOST_TO_LENDIAN_INT64(x) (x) 63#else 64#define B_LENDIAN_TO_HOST_INT32(x) btSwapInt32(x) 65#define B_LENDIAN_TO_HOST_INT64(x) btSwapInt64(x) 66#define B_HOST_TO_LENDIAN_INT32(x) btSwapInt32(x) 67#define B_HOST_TO_LENDIAN_INT64(x) btSwapInt64(x) 68#endif 69 70uint32 btSwapInt32(uint32 num); 71uint64 btSwapInt64(uint64 num); 72 73 74enum { 75 B_ANY_TYPE = 'ANYT', 76 B_BOOL_TYPE = 'BOOL', 77 B_CHAR_TYPE = 'CHAR', 78 B_COLOR_8_BIT_TYPE = 'CLRB', 79 B_DOUBLE_TYPE = 'DBLE', 80 B_FLOAT_TYPE = 'FLOT', 81 B_GRAYSCALE_8_BIT_TYPE = 'GRYB', 82 B_INT64_TYPE = 'LLNG', 83 B_INT32_TYPE = 'LONG', 84 B_INT16_TYPE = 'SHRT', 85 B_INT8_TYPE = 'BYTE', 86 B_MESSAGE_TYPE = 'MSGG', 87 B_MESSENGER_TYPE = 'MSNG', 88 B_MIME_TYPE = 'MIME', 89 B_MONOCHROME_1_BIT_TYPE = 'MNOB', 90 B_OBJECT_TYPE = 'OPTR', 91 B_OFF_T_TYPE = 'OFFT', 92 B_PATTERN_TYPE = 'PATN', 93 B_POINTER_TYPE = 'PNTR', 94 B_POINT_TYPE = 'BPNT', 95 B_RAW_TYPE = 'RAWT', 96 B_RECT_TYPE = 'RECT', 97 B_REF_TYPE = 'RREF', 98 B_RGB_32_BIT_TYPE = 'RGBB', 99 B_RGB_COLOR_TYPE = 'RGBC', 100 B_SIZE_T_TYPE = 'SIZT', 101 B_SSIZE_T_TYPE = 'SSZT', 102 B_STRING_TYPE = 'CSTR', 103 B_TIME_TYPE = 'TIME', 104 B_UINT64_TYPE = 'ULLG', 105 B_UINT32_TYPE = 'ULNG', 106 B_UINT16_TYPE = 'USHT', 107 B_UINT8_TYPE = 'UBYT', 108 B_MEDIA_PARAMETER_TYPE = 'BMCT', 109 B_MEDIA_PARAMETER_WEB_TYPE = 'BMCW', 110 B_MEDIA_PARAMETER_GROUP_TYPE= 'BMCG', 111 112 /* deprecated, do not use */ 113 B_ASCII_TYPE = 'TEXT' /* use B_STRING_TYPE instead */ 114}; 115 116 117typedef struct fs_info 118{ 119 beos_dev_t dev; 120 beos_ino_t root; 121 uint32 flags; 122// beos_off_t block_size; 123 uint32 block_size; 124 beos_off_t io_size; 125// beos_off_t total_blocks; 126// beos_off_t free_blocks; 127 uint32 total_blocks; 128 uint32 free_blocks; 129 beos_off_t total_nodes; 130 beos_off_t free_nodes; 131 char device_name[128]; 132 char volume_name[B_FILE_NAME_LENGTH]; 133 char fsh_name[B_OS_NAME_LENGTH]; 134} fs_info; 135 136typedef struct beos_stat 137{ 138 uint32 st_dev; 139 uint32 st_nlink; 140 uint32 st_uid; 141 uint32 st_gid; 142 uint32 st_size; 143 uint32 st_blksize; 144 uint32 st_rdev; 145 uint32 st_ino; 146 uint32 st_mode; 147 uint32 st_atime; 148 uint32 st_mtime; 149 uint32 st_ctime; 150} beos_stat; 151 152#endif 153