1/*
2 * Copyright 2007-2014, Ingo Weinhold, ingo_weinhold@gmx.de.
3 * Distributed under the terms of the MIT License.
4 */
5#ifndef _FSSH_API_WRAPPER_H
6#define _FSSH_API_WRAPPER_H
7
8
9#include <string.h>
10#ifdef __cplusplus
11#include <new>
12#endif
13#include <stdlib.h>
14
15#include "fssh_dirent.h"
16#include "fssh_errno.h"
17#include "fssh_fcntl.h"
18#include "fssh_stat.h"
19#include "fssh_stdio.h"
20#include "fssh_string.h"
21#include "fssh_time.h"
22#include "fssh_uio.h"
23#include "fssh_unistd.h"
24
25#include "fssh_atomic.h"
26#include "fssh_byte_order.h"
27#include "fssh_defs.h"
28#include "fssh_disk_device_defs.h"
29#include "fssh_disk_device_manager.h"
30#include "fssh_driver_settings.h"
31#include "fssh_drivers.h"
32#include "fssh_errors.h"
33#include "fssh_fs_attr.h"
34#include "fssh_fs_cache.h"
35#include "fssh_fs_index.h"
36#include "fssh_fs_info.h"
37#include "fssh_fs_interface.h"
38#include "fssh_fs_query.h"
39#include "fssh_fs_volume.h"
40#include "fssh_kernel_export.h"
41#include "fssh_lock.h"
42#include "fssh_module.h"
43#include "fssh_node_monitor.h"
44#include "fssh_os.h"
45#include "fssh_type_constants.h"
46#include "fssh_types.h"
47
48#include "DoublyLinkedList.h"
49#include "SinglyLinkedList.h"
50#include "Stack.h"
51
52
53////////////////////////////////////////////////////////////////////////////////
54// #pragma mark - fssh_atomic.h
55
56#define atomic_set			fssh_atomic_set
57#define atomic_get_and_Set	fssh_atomic_get_and_set
58#define atomic_test_and_set	fssh_atomic_test_and_set
59#define atomic_add			fssh_atomic_add
60#define atomic_and			fssh_atomic_and
61#define atomic_or			fssh_atomic_or
62#define atomic_get			fssh_atomic_get
63
64
65////////////////////////////////////////////////////////////////////////////////
66// #pragma mark - fssh_bytes_order.h
67
68// swap directions
69#define B_SWAP_HOST_TO_LENDIAN	FSSH_B_SWAP_HOST_TO_LENDIAN
70#define B_SWAP_HOST_TO_BENDIAN	FSSH_B_SWAP_HOST_TO_BENDIAN
71#define B_SWAP_LENDIAN_TO_HOST	FSSH_B_SWAP_LENDIAN_TO_HOST
72#define B_SWAP_BENDIAN_TO_HOST	FSSH_B_SWAP_BENDIAN_TO_HOST
73#define B_SWAP_ALWAYS			FSSH_B_SWAP_ALWAYS
74
75#define swap_action	fssh_swap_action
76
77// BSD/networking macros
78#define htonl(x)	fssh_htonl(x)
79#define ntohl(x)	fssh_ntohl(x)
80#define htons(x)	fssh_htons(x)
81#define ntohs(x)	fssh_ntohs(x)
82
83// always swap macros
84#define B_SWAP_DOUBLE(arg)	FSSH_B_SWAP_DOUBLE(arg)
85#define B_SWAP_FLOAT(arg)	FSSH_B_SWAP_FLOAT(arg)
86#define B_SWAP_INT64(arg)	FSSH_B_SWAP_INT64(arg)
87#define B_SWAP_INT32(arg)	FSSH_B_SWAP_INT32(arg)
88#define B_SWAP_INT16(arg)	FSSH_B_SWAP_INT16(arg)
89
90#define B_HOST_IS_LENDIAN	FSSH_B_HOST_IS_LENDIAN
91#define B_HOST_IS_BENDIAN	FSSH_B_HOST_IS_BENDIAN
92
93// Host native to little endian
94#define B_HOST_TO_LENDIAN_DOUBLE(arg)	FSSH_B_HOST_TO_LENDIAN_DOUBLE(arg)
95#define B_HOST_TO_LENDIAN_FLOAT(arg)	FSSH_B_HOST_TO_LENDIAN_FLOAT(arg)
96#define B_HOST_TO_LENDIAN_INT64(arg)	FSSH_B_HOST_TO_LENDIAN_INT64(arg)
97#define B_HOST_TO_LENDIAN_INT32(arg)	FSSH_B_HOST_TO_LENDIAN_INT32(arg)
98#define B_HOST_TO_LENDIAN_INT16(arg)	FSSH_B_HOST_TO_LENDIAN_INT16(arg)
99
100// Little endian to host native
101#define B_LENDIAN_TO_HOST_DOUBLE(arg)	FSSH_B_LENDIAN_TO_HOST_DOUBLE(arg)
102#define B_LENDIAN_TO_HOST_FLOAT(arg)	FSSH_B_LENDIAN_TO_HOST_FLOAT(arg)
103#define B_LENDIAN_TO_HOST_INT64(arg)	FSSH_B_LENDIAN_TO_HOST_INT64(arg)
104#define B_LENDIAN_TO_HOST_INT32(arg)	FSSH_B_LENDIAN_TO_HOST_INT32(arg)
105#define B_LENDIAN_TO_HOST_INT16(arg)	FSSH_B_LENDIAN_TO_HOST_INT16(arg)
106
107// Host native to big endian
108#define B_HOST_TO_BENDIAN_DOUBLE(arg)	FSSH_B_HOST_TO_BENDIAN_DOUBLE(arg)
109#define B_HOST_TO_BENDIAN_FLOAT(arg)	FSSH_B_HOST_TO_BENDIAN_FLOAT(arg)
110#define B_HOST_TO_BENDIAN_INT64(arg)	FSSH_B_HOST_TO_BENDIAN_INT64(arg)
111#define B_HOST_TO_BENDIAN_INT32(arg)	FSSH_B_HOST_TO_BENDIAN_INT32(arg)
112#define B_HOST_TO_BENDIAN_INT16(arg)	FSSH_B_HOST_TO_BENDIAN_INT16(arg)
113
114// Big endian to host native
115#define B_BENDIAN_TO_HOST_DOUBLE(arg)	FSSH_B_BENDIAN_TO_HOST_DOUBLE(arg)
116#define B_BENDIAN_TO_HOST_FLOAT(arg)	FSSH_B_BENDIAN_TO_HOST_FLOAT(arg)
117#define B_BENDIAN_TO_HOST_INT64(arg)	FSSH_B_BENDIAN_TO_HOST_INT64(arg)
118#define B_BENDIAN_TO_HOST_INT32(arg)	FSSH_B_BENDIAN_TO_HOST_INT32(arg)
119#define B_BENDIAN_TO_HOST_INT16(arg)	FSSH_B_BENDIAN_TO_HOST_INT16(arg)
120
121#define swap_data			fssh_swap_data
122#define is_type_swapped		fssh_is_type_swapped
123
124
125// Private implementations
126#define __swap_double		__fssh_swap_double
127#define __swap_float		__fssh_swap_float
128#define __swap_int64		__fssh_swap_int64
129#define __swap_int32		__fssh_swap_int32
130#define __swap_int16		__fssh_swap_int16
131
132
133////////////////////////////////////////////////////////////////////////////////
134// #pragma mark - fssh_defs.h
135
136// 32/64 bitness
137#undef B_HAIKU_32_BIT
138#undef B_HAIKU_64_BIT
139#ifdef FSSH_B_HAIKU_64_BIT
140#	define B_HAIKU_64_BIT		FSSH_B_HAIKU_64_BIT
141#endif
142#ifdef FSSH_B_HAIKU_32_BIT
143#	define B_HAIKU_32_BIT		FSSH_B_HAIKU_32_BIT
144#endif
145
146// Limits
147#define B_DEV_NAME_LENGTH	FSSH_B_DEV_NAME_LENGTH
148#define B_FILE_NAME_LENGTH	FSSH_B_FILE_NAME_LENGTH
149#define B_PATH_NAME_LENGTH	FSSH_B_PATH_NAME_LENGTH
150#define B_ATTR_NAME_LENGTH	FSSH_B_ATTR_NAME_LENGTH
151#define B_MIME_TYPE_LENGTH	FSSH_B_MIME_TYPE_LENGTH
152#define B_MAX_SYMLINKS		FSSH_B_MAX_SYMLINKS
153
154// Open Modes
155#define B_READ_ONLY			FSSH_B_READ_ONLY
156#define B_WRITE_ONLY		FSSH_B_WRITE_ONLY
157#define B_READ_WRITE		FSSH_B_READ_WRITE
158
159#define	B_FAIL_IF_EXISTS	FSSH_B_FAIL_IF_EXISTS
160#define B_CREATE_FILE		FSSH_B_CREATE_FILE
161#define B_ERASE_FILE		FSSH_B_ERASE_FILE
162#define B_OPEN_AT_END		FSSH_B_OPEN_AT_END
163
164// Node Flavors
165#define node_flavor			fssh_node_flavor
166#define	B_FILE_NODE			FSSH_B_FILE_NODE
167#define	B_SYMLINK_NODE		FSSH_B_SYMLINK_NODE
168#define	B_DIRECTORY_NODE	FSSH_B_DIRECTORY_NODE
169#define	B_ANY_NODE			FSSH_B_ANY_NODE
170
171#undef	offsetof
172#define offsetof(type,member)	fssh_offsetof(type,member)
173
174#define min_c(a,b)				fssh_min_c(a,b)
175#define max_c(a,b)				fssh_max_c(a,b)
176
177#undef	_PACKED
178#define _PACKED	_FSSH_PACKED
179
180
181////////////////////////////////////////////////////////////////////////////////
182// #pragma mark - fssh_dirent.h
183
184#define dirent		fssh_dirent
185#define dirent_t	fssh_dirent_t
186
187#define DIR			fssh_DIR
188
189
190
191////////////////////////////////////////////////////////////////////////////////
192// #pragma mark - fssh_disk_device_defs.h
193
194#define partition_id	fssh_partition_id
195#define disk_system_id	fssh_disk_system_id
196#define disk_job_id		fssh_disk_job_id
197
198// partition flags
199#define B_PARTITION_IS_DEVICE			FSSH_B_PARTITION_IS_DEVICE
200#define B_PARTITION_FILE_SYSTEM			FSSH_B_PARTITION_FILE_SYSTEM
201#define B_PARTITION_PARTITIONING_SYSTEM	FSSH_B_PARTITION_PARTITIONING_SYSTEM
202#define B_PARTITION_READ_ONLY			FSSH_B_PARTITION_READ_ONLY
203#define B_PARTITION_MOUNTED				FSSH_B_PARTITION_MOUNTED
204#define B_PARTITION_BUSY				FSSH_B_PARTITION_BUSY
205#define B_PARTITION_DESCENDANT_BUSY		FSSH_B_PARTITION_DESCENDANT_BUSY
206
207// partition statuses
208#define B_PARTITION_VALID			FSSH_B_PARTITION_VALID
209#define B_PARTITION_CORRUPT			FSSH_B_PARTITION_CORRUPT
210#define B_PARTITION_UNRECOGNIZED	FSSH_B_PARTITION_UNRECOGNIZED
211#define B_PARTITION_UNINITIALIZED	FSSH_B_PARTITION_UNINITIALIZED
212
213// partition change flags
214#define B_PARTITION_CHANGED_OFFSET				FSSH_B_PARTITION_CHANGED_OFFSET
215#define B_PARTITION_CHANGED_SIZE				FSSH_B_PARTITION_CHANGED_SIZE
216#define B_PARTITION_CHANGED_CONTENT_SIZE		FSSH_B_PARTITION_CHANGED_CONTENT_SIZE
217#define B_PARTITION_CHANGED_BLOCK_SIZE			FSSH_B_PARTITION_CHANGED_BLOCK_SIZE
218#define B_PARTITION_CHANGED_STATUS				FSSH_B_PARTITION_CHANGED_STATUS
219#define B_PARTITION_CHANGED_FLAGS				FSSH_B_PARTITION_CHANGED_FLAGS
220#define B_PARTITION_CHANGED_VOLUME				FSSH_B_PARTITION_CHANGED_VOLUME
221#define B_PARTITION_CHANGED_NAME				FSSH_B_PARTITION_CHANGED_NAME
222#define B_PARTITION_CHANGED_CONTENT_NAME		FSSH_B_PARTITION_CHANGED_CONTENT_NAME
223#define B_PARTITION_CHANGED_TYPE				FSSH_B_PARTITION_CHANGED_TYPE
224#define B_PARTITION_CHANGED_CONTENT_TYPE		FSSH_B_PARTITION_CHANGED_CONTENT_TYPE
225#define B_PARTITION_CHANGED_PARAMETERS			FSSH_B_PARTITION_CHANGED_PARAMETERS
226#define B_PARTITION_CHANGED_CONTENT_PARAMETERS	FSSH_B_PARTITION_CHANGED_CONTENT_PARAMETERS
227#define B_PARTITION_CHANGED_CHILDREN			FSSH_B_PARTITION_CHANGED_CHILDREN
228#define B_PARTITION_CHANGED_DESCENDANTS			FSSH_B_PARTITION_CHANGED_DESCENDANTS
229#define B_PARTITION_CHANGED_DEFRAGMENTATION		FSSH_B_PARTITION_CHANGED_DEFRAGMENTATION
230#define B_PARTITION_CHANGED_CHECK				FSSH_B_PARTITION_CHANGED_CHECK
231#define B_PARTITION_CHANGED_REPAIR				FSSH_B_PARTITION_CHANGED_REPAIR
232#define B_PARTITION_CHANGED_INITIALIZATION		FSSH_B_PARTITION_CHANGED_INITIALIZATION
233
234// disk device flags
235#define B_DISK_DEVICE_REMOVABLE		FSSH_B_DISK_DEVICE_REMOVABLE
236#define B_DISK_DEVICE_HAS_MEDIA		FSSH_B_DISK_DEVICE_HAS_MEDIA
237#define B_DISK_DEVICE_READ_ONLY		FSSH_B_DISK_DEVICE_READ_ONLY
238#define B_DISK_DEVICE_WRITE_ONCE	FSSH_B_DISK_DEVICE_WRITE_ONCE
239
240// disk system flags
241#define B_DISK_SYSTEM_IS_FILE_SYSTEM	FSSH_B_DISK_SYSTEM_IS_FILE_SYSTEM
242
243// flags common for both file and partitioning systems
244#define B_DISK_SYSTEM_SUPPORTS_CHECKING						FSSH_B_DISK_SYSTEM_SUPPORTS_CHECKING
245#define B_DISK_SYSTEM_SUPPORTS_REPAIRING					FSSH_B_DISK_SYSTEM_SUPPORTS_REPAIRING
246#define B_DISK_SYSTEM_SUPPORTS_RESIZING						FSSH_B_DISK_SYSTEM_SUPPORTS_RESIZING
247#define B_DISK_SYSTEM_SUPPORTS_MOVING						FSSH_B_DISK_SYSTEM_SUPPORTS_MOVING
248#define B_DISK_SYSTEM_SUPPORTS_SETTING_CONTENT_NAME			FSSH_B_DISK_SYSTEM_SUPPORTS_SETTING_CONTENT_NAME
249#define B_DISK_SYSTEM_SUPPORTS_SETTING_CONTENT_PARAMETERS	FSSH_B_DISK_SYSTEM_SUPPORTS_SETTING_CONTENT_PARAMETERS
250#define B_DISK_SYSTEM_SUPPORTS_INITIALIZING					FSSH_B_DISK_SYSTEM_SUPPORTS_INITIALIZING
251#define B_DISK_SYSTEM_SUPPORTS_CONTENT_NAME					FSSH_B_DISK_SYSTEM_SUPPORTS_CONTENT_NAME
252
253// file system specific flags
254#define B_DISK_SYSTEM_SUPPORTS_DEFRAGMENTING							FSSH_B_DISK_SYSTEM_SUPPORTS_DEFRAGMENTING
255#define B_DISK_SYSTEM_SUPPORTS_DEFRAGMENTING_WHILE_MOUNTED				FSSH_B_DISK_SYSTEM_SUPPORTS_DEFRAGMENTING_WHILE_MOUNTED
256#define B_DISK_SYSTEM_SUPPORTS_CHECKING_WHILE_MOUNTED					FSSH_B_DISK_SYSTEM_SUPPORTS_CHECKING_WHILE_MOUNTED
257#define B_DISK_SYSTEM_SUPPORTS_REPAIRING_WHILE_MOUNTED					FSSH_B_DISK_SYSTEM_SUPPORTS_REPAIRING_WHILE_MOUNTED
258#define B_DISK_SYSTEM_SUPPORTS_RESIZING_WHILE_MOUNTED					FSSH_B_DISK_SYSTEM_SUPPORTS_RESIZING_WHILE_MOUNTED
259#define B_DISK_SYSTEM_SUPPORTS_MOVING_WHILE_MOUNTED						FSSH_B_DISK_SYSTEM_SUPPORTS_MOVING_WHILE_MOUNTED
260#define B_DISK_SYSTEM_SUPPORTS_SETTING_CONTENT_NAME_WHILE_MOUNTED		FSSH_B_DISK_SYSTEM_SUPPORTS_SETTING_CONTENT_NAME_WHILE_MOUNTED
261#define B_DISK_SYSTEM_SUPPORTS_SETTING_CONTENT_PARAMETERS_WHILE_MOUNTED	FSSH_B_DISK_SYSTEM_SUPPORTS_SETTING_CONTENT_PARAMETERS_WHILE_MOUNTED
262#define B_DISK_SYSTEM_SUPPORTS_WRITING									FSSH_B_DISK_SYSTEM_SUPPORTS_WRITING
263
264// partitioning system specific flags
265#define B_DISK_SYSTEM_SUPPORTS_RESIZING_CHILD		FSSH_B_DISK_SYSTEM_SUPPORTS_RESIZING_CHILD
266#define B_DISK_SYSTEM_SUPPORTS_MOVING_CHILD			FSSH_B_DISK_SYSTEM_SUPPORTS_MOVING_CHILD
267#define B_DISK_SYSTEM_SUPPORTS_SETTING_NAME			FSSH_B_DISK_SYSTEM_SUPPORTS_SETTING_NAME
268#define B_DISK_SYSTEM_SUPPORTS_SETTING_TYPE			FSSH_B_DISK_SYSTEM_SUPPORTS_SETTING_TYPE
269#define B_DISK_SYSTEM_SUPPORTS_SETTING_PARAMETERS	FSSH_B_DISK_SYSTEM_SUPPORTS_SETTING_PARAMETERS
270#define B_DISK_SYSTEM_SUPPORTS_CREATING_CHILD		FSSH_B_DISK_SYSTEM_SUPPORTS_CREATING_CHILD
271#define B_DISK_SYSTEM_SUPPORTS_DELETING_CHILD		FSSH_B_DISK_SYSTEM_SUPPORTS_DELETING_CHILD
272#define B_DISK_SYSTEM_SUPPORTS_NAME					FSSH_B_DISK_SYSTEM_SUPPORTS_NAME
273
274// disk device job types
275#define B_DISK_DEVICE_JOB_BAD_TYPE				FSSH_B_DISK_DEVICE_JOB_BAD_TYPE
276#define B_DISK_DEVICE_JOB_DEFRAGMENT			FSSH_B_DISK_DEVICE_JOB_DEFRAGMENT
277#define B_DISK_DEVICE_JOB_REPAIR				FSSH_B_DISK_DEVICE_JOB_REPAIR
278#define B_DISK_DEVICE_JOB_RESIZE				FSSH_B_DISK_DEVICE_JOB_RESIZE
279#define B_DISK_DEVICE_JOB_MOVE					FSSH_B_DISK_DEVICE_JOB_MOVE
280#define B_DISK_DEVICE_JOB_SET_NAME				FSSH_B_DISK_DEVICE_JOB_SET_NAME
281#define B_DISK_DEVICE_JOB_SET_CONTENT_NAME		FSSH_B_DISK_DEVICE_JOB_SET_CONTENT_NAME
282#define B_DISK_DEVICE_JOB_SET_TYPE				FSSH_B_DISK_DEVICE_JOB_SET_TYPE
283#define B_DISK_DEVICE_JOB_SET_PARMETERS			FSSH_B_DISK_DEVICE_JOB_SET_PARMETERS
284#define B_DISK_DEVICE_JOB_SET_CONTENT_PARMETERS	FSSH_B_DISK_DEVICE_JOB_SET_CONTENT_PARMETERS
285#define B_DISK_DEVICE_JOB_INITIALIZE			FSSH_B_DISK_DEVICE_JOB_INITIALIZE
286#define B_DISK_DEVICE_JOB_UNINITIALIZE			FSSH_B_DISK_DEVICE_JOB_UNINITIALIZE
287#define B_DISK_DEVICE_JOB_CREATE				FSSH_B_DISK_DEVICE_JOB_CREATE
288#define B_DISK_DEVICE_JOB_DELETE				FSSH_B_DISK_DEVICE_JOB_DELETE
289#define B_DISK_DEVICE_JOB_SCAN					FSSH_B_DISK_DEVICE_JOB_SCAN
290
291// disk device job statuses
292#define B_DISK_DEVICE_JOB_UNINITIALIZED	FSSH_B_DISK_DEVICE_JOB_UNINITIALIZED
293#define B_DISK_DEVICE_JOB_SCHEDULED		FSSH_B_DISK_DEVICE_JOB_SCHEDULED
294#define B_DISK_DEVICE_JOB_IN_PROGRESS	FSSH_B_DISK_DEVICE_JOB_IN_PROGRESS
295#define B_DISK_DEVICE_JOB_SUCCEEDED		FSSH_B_DISK_DEVICE_JOB_SUCCEEDED
296#define B_DISK_DEVICE_JOB_FAILED		FSSH_B_DISK_DEVICE_JOB_FAILED
297#define B_DISK_DEVICE_JOB_CANCELED		FSSH_B_DISK_DEVICE_JOB_CANCELED
298
299#define disk_device_job_progress_info	fssh_disk_device_job_progress_info
300
301// disk device job interrupt properties
302#define B_DISK_DEVICE_JOB_CAN_CANCEL		FSSH_B_DISK_DEVICE_JOB_CAN_CANCEL
303#define B_DISK_DEVICE_JOB_STOP_ON_CANCEL	FSSH_B_DISK_DEVICE_JOB_STOP_ON_CANCEL
304#define B_DISK_DEVICE_JOB_REVERSE_ON_CANCEL	FSSH_B_DISK_DEVICE_JOB_REVERSE_ON_CANCEL
305#define B_DISK_DEVICE_JOB_CAN_PAUSE			FSSH_B_DISK_DEVICE_JOB_CAN_PAUSE
306
307// string length constants, all of which include the NULL terminator
308#define B_DISK_DEVICE_TYPE_LENGTH	FSSH_B_DISK_DEVICE_TYPE_LENGTH
309#define B_DISK_DEVICE_NAME_LENGTH	FSSH_B_DISK_DEVICE_NAME_LENGTH
310#define B_DISK_SYSTEM_NAME_LENGTH	FSSH_B_DISK_SYSTEM_NAME_LENGTH
311
312// max size of parameter string buffers, including NULL terminator
313#define B_DISK_DEVICE_MAX_PARAMETER_SIZE	FSSH_B_DISK_DEVICE_MAX_PARAMETER_SIZE
314
315
316////////////////////////////////////////////////////////////////////////////////
317// #pragma mark - fssh_disk_device_manager.h
318
319#define partition_data				fssh_partition_data
320#define disk_device_data			fssh_disk_device_data
321#define partitionable_space_data	fssh_partitionable_space_data
322
323// operations on partitions
324#define B_PARTITION_DEFRAGMENT				FSSH_B_PARTITION_DEFRAGMENT
325#define B_PARTITION_REPAIR					FSSH_B_PARTITION_REPAIR
326#define B_PARTITION_RESIZE					FSSH_B_PARTITION_RESIZE
327#define B_PARTITION_RESIZE_CHILD			FSSH_B_PARTITION_RESIZE_CHILD
328#define B_PARTITION_MOVE					FSSH_B_PARTITION_MOVE
329#define B_PARTITION_MOVE_CHILD				FSSH_B_PARTITION_MOVE_CHILD
330#define B_PARTITION_SET_NAME				FSSH_B_PARTITION_SET_NAME
331#define B_PARTITION_SET_CONTENT_NAME		FSSH_B_PARTITION_SET_CONTENT_NAME
332#define B_PARTITION_SET_TYPE				FSSH_B_PARTITION_SET_TYPE
333#define B_PARTITION_SET_PARAMETERS			FSSH_B_PARTITION_SET_PARAMETERS
334#define B_PARTITION_SET_CONTENT_PARAMETERS	FSSH_B_PARTITION_SET_CONTENT_PARAMETERS
335#define B_PARTITION_INITIALIZE				FSSH_B_PARTITION_INITIALIZE
336#define B_PARTITION_CREATE_CHILD			FSSH_B_PARTITION_CREATE_CHILD
337#define B_PARTITION_DELETE_CHILD			FSSH_B_PARTITION_DELETE_CHILD
338
339// disk device job cancel status
340#define B_DISK_DEVICE_JOB_CONTINUE	FSSH_B_DISK_DEVICE_JOB_CONTINUE
341#define B_DISK_DEVICE_JOB_CANCEL	FSSH_B_DISK_DEVICE_JOB_CANCEL
342#define B_DISK_DEVICE_JOB_REVERSE	FSSH_B_DISK_DEVICE_JOB_REVERSE
343
344// disk device locking
345#define write_lock_disk_device		fssh_write_lock_disk_device
346#define write_unlock_disk_device	fssh_write_unlock_disk_device
347#define read_lock_disk_device		fssh_read_lock_disk_device
348#define read_unlock_disk_device		fssh_read_unlock_disk_device
349
350// getting disk devices/partitions by path
351#define find_disk_device	fssh_find_disk_device
352#define find_partition		fssh_find_partition
353
354// disk device/partition read access
355#define get_disk_device			fssh_get_disk_device
356#define get_partition			fssh_get_partition
357#define get_parent_partition	fssh_get_parent_partition
358#define get_child_partition		fssh_get_child_partition
359
360// partition write access
361#define create_child_partition	fssh_create_child_partition
362#define delete_partition		fssh_delete_partition
363#define partition_modified		fssh_partition_modified
364
365#define scan_partition			fssh_scan_partition
366
367// disk systems
368#define find_disk_system		fssh_find_disk_system
369
370// jobs
371#define update_disk_device_job_progress				fssh_update_disk_device_job_progress
372#define update_disk_device_job_extra_progress		fssh_update_disk_device_job_extra_progress
373#define set_disk_device_job_error_message			fssh_set_disk_device_job_error_message
374#define update_disk_device_job_interrupt_properties	fssh_update_disk_device_job_interrupt_properties
375
376
377////////////////////////////////////////////////////////////////////////////////
378// #pragma mark - fssh_driver_settings.h
379
380#define driver_parameter	fssh_driver_parameter
381#define driver_settings		fssh_driver_settings
382
383#define load_driver_settings			fssh_load_driver_settings
384#define unload_driver_settings			fssh_unload_driver_settings
385#define parse_driver_settings_string	fssh_parse_driver_settings_string
386#define get_driver_settings_string		fssh_get_driver_settings_string
387#define delete_driver_settings			fssh_delete_driver_settings
388#define get_driver_parameter			fssh_get_driver_parameter
389#define get_driver_boolean_parameter	fssh_get_driver_boolean_parameter
390#define get_driver_settings				fssh_get_driver_settings
391
392#define B_SAFEMODE_DRIVER_SETTINGS	FSSH_B_SAFEMODE_DRIVER_SETTINGS
393#define B_SAFEMODE_SAFE_MODE		FSSH_B_SAFEMODE_SAFE_MODE
394
395
396////////////////////////////////////////////////////////////////////////////////
397// #pragma mark - fssh_drivers.h
398
399#define device_open_hook		fssh_device_open_hook
400#define device_close_hook		fssh_device_close_hook
401#define device_free_hook		fssh_device_free_hook
402#define device_control_hook		fssh_device_control_hook
403#define device_read_hook		fssh_device_read_hook
404#define device_write_hook		fssh_device_write_hook
405#define device_select_hook		fssh_device_select_hook
406#define device_deselect_hook	fssh_device_deselect_hook
407#define device_read_pages_hook	fssh_device_read_pages_hook
408#define device_write_pages_hook	fssh_device_write_pages_hook
409
410#define B_CUR_DRIVER_API_VERSION	FSSH_B_CUR_DRIVER_API_VERSION
411
412#define device_hooks	fssh_device_hooks
413
414#define init_hardware	fssh_init_hardware
415#define publish_devices	fssh_publish_devices
416#define find_device		fssh_find_device
417#define init_driver		fssh_init_driver
418#define uninit_driver	fssh_uninit_driver
419
420#define api_version		fssh_api_version
421
422#define B_GET_DEVICE_SIZE			FSSH_B_GET_DEVICE_SIZE
423#define B_SET_DEVICE_SIZE			FSSH_B_SET_DEVICE_SIZE
424#define B_SET_NONBLOCKING_IO		FSSH_B_SET_NONBLOCKING_IO
425#define B_SET_BLOCKING_IO			FSSH_B_SET_BLOCKING_IO
426#define B_GET_READ_STATUS			FSSH_B_GET_READ_STATUS
427#define B_GET_WRITE_STATUS			FSSH_B_GET_WRITE_STATUS
428#define B_GET_GEOMETRY				FSSH_B_GET_GEOMETRY
429#define B_GET_DRIVER_FOR_DEVICE		FSSH_B_GET_DRIVER_FOR_DEVICE
430#define B_GET_PARTITION_INFO		FSSH_B_GET_PARTITION_INFO
431#define B_SET_PARTITION				FSSH_B_SET_PARTITION
432#define B_FORMAT_DEVICE				FSSH_B_FORMAT_DEVICE
433#define B_EJECT_DEVICE				FSSH_B_EJECT_DEVICE
434#define B_GET_ICON					FSSH_B_GET_ICON
435#define B_GET_BIOS_GEOMETRY			FSSH_B_GET_BIOS_GEOMETRY
436#define B_GET_MEDIA_STATUS			FSSH_B_GET_MEDIA_STATUS
437#define B_LOAD_MEDIA				FSSH_B_LOAD_MEDIA
438#define B_GET_BIOS_DRIVE_ID			FSSH_B_GET_BIOS_DRIVE_ID
439#define B_SET_UNINTERRUPTABLE_IO	FSSH_B_SET_UNINTERRUPTABLE_IO
440#define B_SET_INTERRUPTABLE_IO		FSSH_B_SET_INTERRUPTABLE_IO
441#define B_FLUSH_DRIVE_CACHE			FSSH_B_FLUSH_DRIVE_CACHE
442#define B_GET_PATH_FOR_DEVICE		FSSH_B_GET_PATH_FOR_DEVICE
443#define B_GET_ICON_NAME				FSSH_B_GET_ICON_NAME
444#define B_GET_VECTOR_ICON			FSSH_B_GET_VECTOR_ICON
445#define B_GET_DEVICE_NAME			FSSH_B_GET_DEVICE_NAME
446#define B_TRIM_DEVICE				FSSH_B_TRIM_DEVICE
447#define B_GET_NEXT_OPEN_DEVICE		FSSH_B_GET_NEXT_OPEN_DEVICE
448#define B_ADD_FIXED_DRIVER			FSSH_B_ADD_FIXED_DRIVER
449#define B_REMOVE_FIXED_DRIVER		FSSH_B_REMOVE_FIXED_DRIVER
450#define B_AUDIO_DRIVER_BASE			FSSH_B_AUDIO_DRIVER_BASE
451#define B_MIDI_DRIVER_BASE			FSSH_B_MIDI_DRIVER_BASE
452#define B_JOYSTICK_DRIVER_BASE		FSSH_B_JOYSTICK_DRIVER_BASE
453#define B_GRAPHIC_DRIVER_BASE		FSSH_B_GRAPHIC_DRIVER_BASE
454#define B_DEVICE_OP_CODES_END		FSSH_B_DEVICE_OP_CODES_END
455
456#define device_geometry	fssh_device_geometry
457
458#define B_DISK		FSSH_B_DISK
459#define B_TAPE		FSSH_B_TAPE
460#define B_PRINTER	FSSH_B_PRINTER
461#define B_CPU		FSSH_B_CPU
462#define B_WORM		FSSH_B_WORM
463#define B_CD		FSSH_B_CD
464#define B_SCANNER	FSSH_B_SCANNER
465#define B_OPTICAL	FSSH_B_OPTICAL
466#define B_JUKEBOX	FSSH_B_JUKEBOX
467#define B_NETWORK	FSSH_B_NETWORK
468
469
470#define partition_info			fssh_partition_info
471#define driver_path				fssh_driver_path
472#define open_device_iterator	fssh_open_device_iterator
473#define device_icon				fssh_device_icon
474#define fs_trim_data			fssh_fs_trim_data
475
476
477////////////////////////////////////////////////////////////////////////////////
478// #pragma mark - fssh_errors.h
479
480/* Error baselines */
481#define B_GENERAL_ERROR_BASE		FSSH_B_GENERAL_ERROR_BASE
482#define B_OS_ERROR_BASE				FSSH_B_OS_ERROR_BASE
483#define B_APP_ERROR_BASE			FSSH_B_APP_ERROR_BASE
484#define B_INTERFACE_ERROR_BASE		FSSH_B_INTERFACE_ERROR_BASE
485#define B_MEDIA_ERROR_BASE			FSSH_B_MEDIA_ERROR_BASE
486#define B_TRANSLATION_ERROR_BASE	FSSH_B_TRANSLATION_ERROR_BASE
487#define B_MIDI_ERROR_BASE			FSSH_B_MIDI_ERROR_BASE
488#define B_STORAGE_ERROR_BASE		FSSH_B_STORAGE_ERROR_BASE
489#define B_POSIX_ERROR_BASE			FSSH_B_POSIX_ERROR_BASE
490#define B_MAIL_ERROR_BASE			FSSH_B_MAIL_ERROR_BASE
491#define B_PRINT_ERROR_BASE			FSSH_B_PRINT_ERROR_BASE
492#define B_DEVICE_ERROR_BASE			FSSH_B_DEVICE_ERROR_BASE
493
494/* Developer-defined errors start at (B_ERRORS_END+1) */
495#define B_ERRORS_END				FSSH_B_ERRORS_END
496
497/* General Errors */
498#define B_NO_MEMORY			FSSH_B_NO_MEMORY
499#define B_IO_ERROR			FSSH_B_IO_ERROR
500#define B_PERMISSION_DENIED	FSSH_B_PERMISSION_DENIED
501#define B_BAD_INDEX			FSSH_B_BAD_INDEX
502#define B_BAD_TYPE			FSSH_B_BAD_TYPE
503#define B_BAD_VALUE			FSSH_B_BAD_VALUE
504#define B_MISMATCHED_VALUES	FSSH_B_MISMATCHED_VALUES
505#define B_NAME_NOT_FOUND	FSSH_B_NAME_NOT_FOUND
506#define B_NAME_IN_USE		FSSH_B_NAME_IN_USE
507#define B_TIMED_OUT			FSSH_B_TIMED_OUT
508#define B_INTERRUPTED		FSSH_B_INTERRUPTED
509#define B_WOULD_BLOCK		FSSH_B_WOULD_BLOCK
510#define B_CANCELED			FSSH_B_CANCELED
511#define B_NO_INIT			FSSH_B_NO_INIT
512#define B_BUSY				FSSH_B_BUSY
513#define B_NOT_ALLOWED		FSSH_B_NOT_ALLOWED
514#define B_BAD_DATA			FSSH_B_BAD_DATA
515#define B_DONT_DO_THAT		FSSH_B_DONT_DO_THAT
516
517#define B_ERROR				FSSH_B_ERROR
518#define B_OK				FSSH_B_OK
519#define B_NO_ERROR			FSSH_B_NO_ERROR
520
521/* Kernel Kit Errors */
522#define B_BAD_SEM_ID		FSSH_B_BAD_SEM_ID
523#define B_NO_MORE_SEMS		FSSH_B_NO_MORE_SEMS
524
525#define B_BAD_THREAD_ID		FSSH_B_BAD_THREAD_ID
526#define B_NO_MORE_THREADS	FSSH_B_NO_MORE_THREADS
527#define B_BAD_THREAD_STATE	FSSH_B_BAD_THREAD_STATE
528#define B_BAD_TEAM_ID		FSSH_B_BAD_TEAM_ID
529#define B_NO_MORE_TEAMS		FSSH_B_NO_MORE_TEAMS
530
531#define B_BAD_PORT_ID		FSSH_B_BAD_PORT_ID
532#define B_NO_MORE_PORTS		FSSH_B_NO_MORE_PORTS
533
534#define B_BAD_IMAGE_ID		FSSH_B_BAD_IMAGE_ID
535#define B_BAD_ADDRESS		FSSH_B_BAD_ADDRESS
536#define B_NOT_AN_EXECUTABLE	FSSH_B_NOT_AN_EXECUTABLE
537#define B_MISSING_LIBRARY	FSSH_B_MISSING_LIBRARY
538#define B_MISSING_SYMBOL	FSSH_B_MISSING_SYMBOL
539
540#define B_DEBUGGER_ALREADY_INSTALLED	FSSH_B_DEBUGGER_ALREADY_INSTALLED
541
542/* Application Kit Errors */
543#define B_BAD_REPLY							FSSH_B_BAD_REPLY
544#define B_DUPLICATE_REPLY					FSSH_B_DUPLICATE_REPLY
545#define B_MESSAGE_TO_SELF					FSSH_B_MESSAGE_TO_SELF
546#define B_BAD_HANDLER						FSSH_B_BAD_HANDLER
547#define B_ALREADY_RUNNING					FSSH_B_ALREADY_RUNNING
548#define B_LAUNCH_FAILED						FSSH_B_LAUNCH_FAILED
549#define B_AMBIGUOUS_APP_LAUNCH				FSSH_B_AMBIGUOUS_APP_LAUNCH
550#define B_UNKNOWN_MIME_TYPE					FSSH_B_UNKNOWN_MIME_TYPE
551#define B_BAD_SCRIPT_SYNTAX					FSSH_B_BAD_SCRIPT_SYNTAX
552#define B_LAUNCH_FAILED_NO_RESOLVE_LINK		FSSH_B_LAUNCH_FAILED_NO_RESOLVE_LINK
553#define B_LAUNCH_FAILED_EXECUTABLE			FSSH_B_LAUNCH_FAILED_EXECUTABLE
554#define B_LAUNCH_FAILED_APP_NOT_FOUND		FSSH_B_LAUNCH_FAILED_APP_NOT_FOUND
555#define B_LAUNCH_FAILED_APP_IN_TRASH		FSSH_B_LAUNCH_FAILED_APP_IN_TRASH
556#define B_LAUNCH_FAILED_NO_PREFERRED_APP	FSSH_B_LAUNCH_FAILED_NO_PREFERRED_APP
557#define B_LAUNCH_FAILED_FILES_APP_NOT_FOUND	FSSH_B_LAUNCH_FAILED_FILES_APP_NOT_FOUND
558#define B_BAD_MIME_SNIFFER_RULE				FSSH_B_BAD_MIME_SNIFFER_RULE
559#define B_NOT_A_MESSAGE						FSSH_B_NOT_A_MESSAGE
560#define B_SHUTDOWN_CANCELLED				FSSH_B_SHUTDOWN_CANCELLED
561#define B_SHUTTING_DOWN						FSSH_B_SHUTTING_DOWN
562
563/* Storage Kit/File System Errors */
564#define B_FILE_ERROR			FSSH_B_FILE_ERROR
565#define B_FILE_NOT_FOUND		FSSH_B_FILE_NOT_FOUND
566#define B_FILE_EXISTS			FSSH_B_FILE_EXISTS
567#define B_ENTRY_NOT_FOUND		FSSH_B_ENTRY_NOT_FOUND
568#define B_NAME_TOO_LONG			FSSH_B_NAME_TOO_LONG
569#define B_NOT_A_DIRECTORY		FSSH_B_NOT_A_DIRECTORY
570#define B_DIRECTORY_NOT_EMPTY	FSSH_B_DIRECTORY_NOT_EMPTY
571#define B_DEVICE_FULL			FSSH_B_DEVICE_FULL
572#define B_READ_ONLY_DEVICE		FSSH_B_READ_ONLY_DEVICE
573#define B_IS_A_DIRECTORY		FSSH_B_IS_A_DIRECTORY
574#define B_NO_MORE_FDS			FSSH_B_NO_MORE_FDS
575#define B_CROSS_DEVICE_LINK		FSSH_B_CROSS_DEVICE_LINK
576#define B_LINK_LIMIT			FSSH_B_LINK_LIMIT
577#define B_BUSTED_PIPE			FSSH_B_BUSTED_PIPE
578#define B_UNSUPPORTED			FSSH_B_UNSUPPORTED
579#define B_PARTITION_TOO_SMALL	FSSH_B_PARTITION_TOO_SMALL
580#define B_PARTIAL_READ			FSSH_B_PARTIAL_READ
581#define B_PARTIAL_WRITE			FSSH_B_PARTIAL_WRITE
582
583/* POSIX Errors */
584#define E2BIG			FSSH_E2BIG
585#define ECHILD			FSSH_ECHILD
586#define EDEADLK			FSSH_EDEADLK
587#define EFBIG			FSSH_EFBIG
588#define EMLINK			FSSH_EMLINK
589#define ENFILE			FSSH_ENFILE
590#define ENODEV			FSSH_ENODEV
591#define ENOLCK			FSSH_ENOLCK
592#define ENOSYS			FSSH_ENOSYS
593#define ENOTTY			FSSH_ENOTTY
594#define ENXIO			FSSH_ENXIO
595#define ESPIPE			FSSH_ESPIPE
596#define ESRCH			FSSH_ESRCH
597#define EFPOS			FSSH_EFPOS
598#define ESIGPARM		FSSH_ESIGPARM
599#define EDOM			FSSH_EDOM
600#define ERANGE			FSSH_ERANGE
601#define EPROTOTYPE		FSSH_EPROTOTYPE
602#define EPROTONOSUPPORT	FSSH_EPROTONOSUPPORT
603#define EPFNOSUPPORT	FSSH_EPFNOSUPPORT
604#define EAFNOSUPPORT	FSSH_EAFNOSUPPORT
605#define EADDRINUSE		FSSH_EADDRINUSE
606#define EADDRNOTAVAIL	FSSH_EADDRNOTAVAIL
607#define ENETDOWN		FSSH_ENETDOWN
608#define ENETUNREACH		FSSH_ENETUNREACH
609#define ENETRESET		FSSH_ENETRESET
610#define ECONNABORTED	FSSH_ECONNABORTED
611#define ECONNRESET		FSSH_ECONNRESET
612#define EISCONN			FSSH_EISCONN
613#define ENOTCONN		FSSH_ENOTCONN
614#define ESHUTDOWN		FSSH_ESHUTDOWN
615#define ECONNREFUSED	FSSH_ECONNREFUSED
616#define EHOSTUNREACH	FSSH_EHOSTUNREACH
617#define ENOPROTOOPT		FSSH_ENOPROTOOPT
618#define ENOBUFS			FSSH_ENOBUFS
619#define EINPROGRESS		FSSH_EINPROGRESS
620#define EALREADY		FSSH_EALREADY
621#define EILSEQ			FSSH_EILSEQ
622#define ENOMSG			FSSH_ENOMSG
623#define ESTALE			FSSH_ESTALE
624#define EOVERFLOW		FSSH_EOVERFLOW
625#define EMSGSIZE		FSSH_EMSGSIZE
626#define EOPNOTSUPP		FSSH_EOPNOTSUPP
627#define ENOTSOCK		FSSH_ENOTSOCK
628#define EHOSTDOWN		FSSH_EHOSTDOWN
629#define EBADMSG			FSSH_EBADMSG
630#define ECANCELED		FSSH_ECANCELED
631#define EDESTADDRREQ	FSSH_EDESTADDRREQ
632#define EDQUOT			FSSH_EDQUOT
633#define EIDRM			FSSH_EIDRM
634#define EMULTIHOP		FSSH_EMULTIHOP
635#define ENODATA			FSSH_ENODATA
636#define ENOLINK			FSSH_ENOLINK
637#define ENOSR			FSSH_ENOSR
638#define ENOSTR			FSSH_ENOSTR
639#define ENOTSUP			FSSH_ENOTSUP
640#define EPROTO			FSSH_EPROTO
641#define ETIME			FSSH_ETIME
642#define ETXTBSY			FSSH_ETXTBSY
643
644/* POSIX errors that can be mapped to BeOS error codes */
645#define ENOMEM			FSSH_ENOMEM
646#define EACCES			FSSH_EACCES
647#define EINTR			FSSH_EINTR
648#define EIO				FSSH_EIO
649#define EBUSY			FSSH_EBUSY
650#define EFAULT			FSSH_EFAULT
651#define ETIMEDOUT		FSSH_ETIMEDOUT
652#define EAGAIN			FSSH_EAGAIN
653#define EWOULDBLOCK		FSSH_EWOULDBLOCK
654#define EBADF			FSSH_EBADF
655#define EEXIST			FSSH_EEXIST
656#define EINVAL			FSSH_EINVAL
657#define ENAMETOOLONG	FSSH_ENAMETOOLONG
658#define ENOENT			FSSH_ENOENT
659#define EPERM			FSSH_EPERM
660#define ENOTDIR			FSSH_ENOTDIR
661#define EISDIR			FSSH_EISDIR
662#define ENOTEMPTY		FSSH_ENOTEMPTY
663#define ENOSPC			FSSH_ENOSPC
664#define EROFS			FSSH_EROFS
665#define EMFILE			FSSH_EMFILE
666#define EXDEV			FSSH_EXDEV
667#define ELOOP			FSSH_ELOOP
668#define ENOEXEC			FSSH_ENOEXEC
669#define EPIPE			FSSH_EPIPE
670
671/* new error codes that can be mapped to POSIX errors */
672#define B_BUFFER_OVERFLOW			FSSH_B_BUFFER_OVERFLOW
673#define B_TOO_MANY_ARGS				FSSH_B_TOO_MANY_ARGS
674#define	B_FILE_TOO_LARGE			FSSH_B_FILE_TOO_LARGE
675#define B_RESULT_NOT_REPRESENTABLE	FSSH_B_RESULT_NOT_REPRESENTABLE
676#define	B_DEVICE_NOT_FOUND			FSSH_B_DEVICE_NOT_FOUND
677#define B_NOT_SUPPORTED				FSSH_B_NOT_SUPPORTED
678
679/* Media Kit Errors */
680#define B_STREAM_NOT_FOUND			FSSH_B_STREAM_NOT_FOUND
681#define B_SERVER_NOT_FOUND			FSSH_B_SERVER_NOT_FOUND
682#define B_RESOURCE_NOT_FOUND		FSSH_B_RESOURCE_NOT_FOUND
683#define B_RESOURCE_UNAVAILABLE		FSSH_B_RESOURCE_UNAVAILABLE
684#define B_BAD_SUBSCRIBER			FSSH_B_BAD_SUBSCRIBER
685#define B_SUBSCRIBER_NOT_ENTERED	FSSH_B_SUBSCRIBER_NOT_ENTERED
686#define B_BUFFER_NOT_AVAILABLE		FSSH_B_BUFFER_NOT_AVAILABLE
687#define B_LAST_BUFFER_ERROR			FSSH_B_LAST_BUFFER_ERROR
688
689/* Mail Kit Errors */
690#define B_MAIL_NO_DAEMON		FSSH_B_MAIL_NO_DAEMON
691#define B_MAIL_UNKNOWN_USER		FSSH_B_MAIL_UNKNOWN_USER
692#define B_MAIL_WRONG_PASSWORD	FSSH_B_MAIL_WRONG_PASSWORD
693#define B_MAIL_UNKNOWN_HOST		FSSH_B_MAIL_UNKNOWN_HOST
694#define B_MAIL_ACCESS_ERROR		FSSH_B_MAIL_ACCESS_ERROR
695#define B_MAIL_UNKNOWN_FIELD	FSSH_B_MAIL_UNKNOWN_FIELD
696#define B_MAIL_NO_RECIPIENT		FSSH_B_MAIL_NO_RECIPIENT
697#define B_MAIL_INVALID_MAIL		FSSH_B_MAIL_INVALID_MAIL
698
699/* Printing Errors */
700#define B_NO_PRINT_SERVER		FSSH_B_NO_PRINT_SERVER
701
702/* Device Kit Errors */
703#define B_DEV_INVALID_IOCTL				FSSH_B_DEV_INVALID_IOCTL
704#define B_DEV_NO_MEMORY					FSSH_B_DEV_NO_MEMORY
705#define B_DEV_BAD_DRIVE_NUM				FSSH_B_DEV_BAD_DRIVE_NUM
706#define B_DEV_NO_MEDIA					FSSH_B_DEV_NO_MEDIA
707#define B_DEV_UNREADABLE				FSSH_B_DEV_UNREADABLE
708#define B_DEV_FORMAT_ERROR				FSSH_B_DEV_FORMAT_ERROR
709#define B_DEV_TIMEOUT					FSSH_B_DEV_TIMEOUT
710#define B_DEV_RECALIBRATE_ERROR			FSSH_B_DEV_RECALIBRATE_ERROR
711#define B_DEV_SEEK_ERROR				FSSH_B_DEV_SEEK_ERROR
712#define B_DEV_ID_ERROR					FSSH_B_DEV_ID_ERROR
713#define B_DEV_READ_ERROR				FSSH_B_DEV_READ_ERROR
714#define B_DEV_WRITE_ERROR				FSSH_B_DEV_WRITE_ERROR
715#define B_DEV_NOT_READY					FSSH_B_DEV_NOT_READY
716#define B_DEV_MEDIA_CHANGED				FSSH_B_DEV_MEDIA_CHANGED
717#define B_DEV_MEDIA_CHANGE_REQUESTED	FSSH_B_DEV_MEDIA_CHANGE_REQUESTED
718#define B_DEV_RESOURCE_CONFLICT			FSSH_B_DEV_RESOURCE_CONFLICT
719#define B_DEV_CONFIGURATION_ERROR		FSSH_B_DEV_CONFIGURATION_ERROR
720#define B_DEV_DISABLED_BY_USER			FSSH_B_DEV_DISABLED_BY_USER
721#define B_DEV_DOOR_OPEN					FSSH_B_DEV_DOOR_OPEN
722
723#define B_DEV_INVALID_PIPE				FSSH_B_DEV_INVALID_PIPE
724#define B_DEV_CRC_ERROR					FSSH_B_DEV_CRC_ERROR
725#define B_DEV_STALLED					FSSH_B_DEV_STALLED
726#define B_DEV_BAD_PID					FSSH_B_DEV_BAD_PID
727#define B_DEV_UNEXPECTED_PID			FSSH_B_DEV_UNEXPECTED_PID
728#define B_DEV_DATA_OVERRUN				FSSH_B_DEV_DATA_OVERRUN
729#define B_DEV_DATA_UNDERRUN				FSSH_B_DEV_DATA_UNDERRUN
730#define B_DEV_FIFO_OVERRUN				FSSH_B_DEV_FIFO_OVERRUN
731#define B_DEV_FIFO_UNDERRUN				FSSH_B_DEV_FIFO_UNDERRUN
732#define B_DEV_PENDING					FSSH_B_DEV_PENDING
733#define B_DEV_MULTIPLE_ERRORS			FSSH_B_DEV_MULTIPLE_ERRORS
734#define B_DEV_TOO_LATE					FSSH_B_DEV_TOO_LATE
735
736
737////////////////////////////////////////////////////////////////////////////////
738// #pragma mark - fssh_errno.h
739
740#define ENOERR	FSSH_ENOERR
741#define EOK		FSSH_EOK
742
743#define errno	fssh_errno
744
745
746////////////////////////////////////////////////////////////////////////////////
747// #pragma mark - fssh_fcntl.h
748
749/* commands that can be passed to fcntl() */
750#define F_DUPFD		FSSH_F_DUPFD
751#define F_GETFD		FSSH_F_GETFD
752#define F_SETFD		FSSH_F_SETFD
753#define F_GETFL		FSSH_F_GETFL
754#define F_SETFL		FSSH_F_SETFL
755#define F_GETLK		FSSH_F_GETLK
756#define F_SETLK		FSSH_F_SETLK
757#define F_SETLKW	FSSH_F_SETLKW
758
759/* advisory locking types */
760#define F_RDLCK	FSSH_F_RDLCK
761#define F_UNLCK	FSSH_F_UNLCK
762#define F_WRLCK	FSSH_F_WRLCK
763
764/* file descriptor flags for fcntl() */
765#define FD_CLOEXEC	FSSH_FD_CLOEXEC
766
767/* file access modes for open() */
768#define O_RDONLY	FSSH_O_RDONLY
769#define O_WRONLY	FSSH_O_WRONLY
770#define O_RDWR		FSSH_O_RDWR
771#define O_ACCMODE	FSSH_O_ACCMODE
772#define O_RWMASK	FSSH_O_RWMASK
773
774/* flags for open() */
775#define O_EXCL			FSSH_O_EXCL
776#define O_CREAT			FSSH_O_CREAT
777#define O_TRUNC			FSSH_O_TRUNC
778#define O_NOCTTY		FSSH_O_NOCTTY
779#define O_NOTRAVERSE	FSSH_O_NOTRAVERSE
780
781/* flags for open() and fcntl() */
782#define O_CLOEXEC	FSSH_O_CLOEXEC
783#define O_NONBLOCK	FSSH_O_NONBLOCK
784#define O_APPEND	FSSH_O_APPEND
785#define O_TEXT		FSSH_O_TEXT
786#define O_BINARY	FSSH_O_BINARY
787#define O_SYNC		FSSH_O_SYNC
788#define O_RSYNC		FSSH_O_RSYNC
789#define O_DSYNC		FSSH_O_DSYNC
790
791#define O_NOFOLLOW	FSSH_O_NOFOLLOW
792#define O_NOCACHE	FSSH_O_NOCACHE
793#define O_DIRECT	FSSH_O_DIRECT
794#define O_DIRECTORY	FSSH_O_DIRECTORY
795#define O_TEMPORARY	FSSH_O_TEMPORARY
796
797#define S_IREAD		FSSH_S_IREAD
798#define S_IWRITE	FSSH_S_IWRITE
799
800#define creat	fssh_creat
801#define open	fssh_open
802#define fcntl	fssh_fcntl
803
804
805////////////////////////////////////////////////////////////////////////////////
806// #pragma mark - fssh_fs_attr.h
807
808#define attr_info	fssh_attr_info
809
810
811////////////////////////////////////////////////////////////////////////////////
812// #pragma mark - fssh_fs_cache.h
813
814#define TRANSACTION_WRITTEN				FSSH_TRANSACTION_WRITTEN
815#define TRANSACTION_ABORTED				FSSH_TRANSACTION_ABORTED
816#define TRANSACTION_ENDED				FSSH_TRANSACTION_ENDED
817#define TRANSACTION_IDLE				FSSH_TRANSACTION_IDLE
818
819#define FILE_MAP_CACHE_ON_DEMAND		FSSH_FILE_MAP_CACHE_ON_DEMAND
820#define FILE_MAP_CACHE_ALL				FSSH_FILE_MAP_CACHE_ALL
821
822#define transaction_notification_hook	fssh_transaction_notification_hook
823
824/* transactions */
825#define cache_start_transaction			fssh_cache_start_transaction
826#define cache_sync_transaction			fssh_cache_sync_transaction
827#define cache_end_transaction			fssh_cache_end_transaction
828#define cache_abort_transaction			fssh_cache_abort_transaction
829#define cache_detach_sub_transaction	fssh_cache_detach_sub_transaction
830#define cache_abort_sub_transaction		fssh_cache_abort_sub_transaction
831#define cache_start_sub_transaction		fssh_cache_start_sub_transaction
832#define cache_add_transaction_listener	fssh_cache_add_transaction_listener
833#define cache_remove_transaction_listener fssh_cache_remove_transaction_listener
834#define cache_next_block_in_transaction	fssh_cache_next_block_in_transaction
835#define cache_blocks_in_transaction		fssh_cache_blocks_in_transaction
836#define cache_blocks_in_main_transaction fssh_cache_blocks_in_main_transaction
837#define cache_blocks_in_sub_transaction	fssh_cache_blocks_in_sub_transaction
838#define cache_has_block_in_transaction	fssh_cache_has_block_in_transaction
839
840/* block cache */
841#define block_cache_delete				fssh_block_cache_delete
842#define block_cache_create				fssh_block_cache_create
843#define block_cache_sync				fssh_block_cache_sync
844#define block_cache_sync_etc			fssh_block_cache_sync_etc
845#define block_cache_discard				fssh_block_cache_discard
846#define block_cache_make_writable		fssh_block_cache_make_writable
847#define block_cache_get_writable_etc	fssh_block_cache_get_writable_etc
848#define block_cache_get_writable		fssh_block_cache_get_writable
849#define block_cache_get_empty			fssh_block_cache_get_empty
850#define block_cache_get_etc				fssh_block_cache_get_etc
851#define block_cache_get					fssh_block_cache_get
852#define block_cache_set_dirty			fssh_block_cache_set_dirty
853#define block_cache_put					fssh_block_cache_put
854
855/* file cache */
856#define file_cache_create				fssh_file_cache_create
857#define file_cache_delete				fssh_file_cache_delete
858#define file_cache_enable				fssh_file_cache_enable
859#define file_cache_disable				fssh_file_cache_disable
860#define file_cache_set_size				fssh_file_cache_set_size
861#define file_cache_sync					fssh_file_cache_sync
862
863#define file_cache_read					fssh_file_cache_read
864#define file_cache_write				fssh_file_cache_write
865
866/* file map */
867#define file_map_create					fssh_file_map_create
868#define file_map_delete					fssh_file_map_delete
869#define file_map_set_size				fssh_file_map_set_size
870#define file_map_invalidate				fssh_file_map_invalidate
871#define file_map_translate				fssh_file_map_translate
872
873/* entry cache */
874#define entry_cache_add					fssh_entry_cache_add
875#define entry_cache_add_missing			fssh_entry_cache_add_missing
876#define entry_cache_remove				fssh_entry_cache_remove
877
878////////////////////////////////////////////////////////////////////////////////
879// #pragma mark - fssh_fs_index.h
880
881#define index_info	fssh_index_info
882
883
884////////////////////////////////////////////////////////////////////////////////
885// #pragma mark - fssh_fs_info.h
886
887/* fs_info.flags */
888#define	B_FS_IS_READONLY				FSSH_B_FS_IS_READONLY
889#define	B_FS_IS_REMOVABLE				FSSH_B_FS_IS_REMOVABLE
890#define	B_FS_IS_PERSISTENT				FSSH_B_FS_IS_PERSISTENT
891#define	B_FS_IS_SHARED					FSSH_B_FS_IS_SHARED
892#define	B_FS_HAS_MIME					FSSH_B_FS_HAS_MIME
893#define	B_FS_HAS_ATTR					FSSH_B_FS_HAS_ATTR
894#define	B_FS_HAS_QUERY					FSSH_B_FS_HAS_QUERY
895// those additions are preliminary and may be removed
896#define B_FS_HAS_SELF_HEALING_LINKS		FSSH_B_FS_HAS_SELF_HEALING_LINKS
897#define B_FS_HAS_ALIASES				FSSH_B_FS_HAS_ALIASES
898#define B_FS_SUPPORTS_NODE_MONITORING	FSSH_B_FS_SUPPORTS_NODE_MONITORING
899#define B_FS_SUPPORTS_MONITOR_CHILDREN	FSSH_B_FS_SUPPORTS_MONITOR_CHILDREN
900
901#define fs_info	fssh_fs_info
902
903
904////////////////////////////////////////////////////////////////////////////////
905// #pragma mark - fssh_fs_interface.h
906
907#define mount_id	fssh_mount_id
908#define vnode_id	fssh_vnode_id
909
910// TODO: These two don't belong here!
911#define IORequest	FSSHIORequest
912#define io_request	fssh_io_request
913
914/* additional flags passed to write_stat() */
915#define B_STAT_SIZE_INSECURE	FSSH_B_STAT_SIZE_INSECURE
916
917/* passed to write_fs_info() */
918#define FS_WRITE_FSINFO_NAME	FSSH_FS_WRITE_FSINFO_NAME
919
920#define file_io_vec	fssh_file_io_vec
921
922#define B_CURRENT_FS_API_VERSION	FSSH_B_CURRENT_FS_API_VERSION
923
924// flags for publish_vnode() and fs_volume_ops::get_vnode()
925#define B_VNODE_PUBLISH_REMOVED					FSSH_B_VNODE_PUBLISH_REMOVED
926#define B_VNODE_DONT_CREATE_SPECIAL_SUB_NODE	FSSH_B_VNODE_DONT_CREATE_SPECIAL_SUB_NODE
927
928#define fs_volume				fssh_fs_volume
929#define fs_volume_ops			fssh_fs_volume_ops
930#define fs_vnode				fssh_fs_vnode
931#define fs_vnode_ops			fssh_fs_vnode_ops
932#define file_system_module_info	fssh_file_system_module_info
933
934
935/* file system add-ons only prototypes */
936#define iterative_io_get_vecs		fssh_iterative_io_get_vecs
937#define iterative_io_finished		fssh_iterative_io_finished
938
939#define new_vnode 					fssh_new_vnode
940#define publish_vnode				fssh_publish_vnode
941#define get_vnode					fssh_get_vnode
942#define put_vnode					fssh_put_vnode
943#define acquire_vnode				fssh_acquire_vnode
944#define remove_vnode				fssh_remove_vnode
945#define unremove_vnode				fssh_unremove_vnode
946#define get_vnode_removed			fssh_get_vnode_removed
947#define mark_vnode_busy				fssh_mark_vnode_busy
948#define change_vnode_id				fssh_change_vnode_id
949#define volume_for_vnode			fssh_volume_for_vnode
950#define check_access_permissions	fssh_check_access_permissions
951#define read_pages					fssh_read_pages
952#define write_pages					fssh_write_pages
953#define read_file_io_vec_pages		fssh_read_file_io_vec_pages
954#define write_file_io_vec_pages		fssh_write_file_io_vec_pages
955#define do_fd_io					fssh_do_fd_io
956#define do_iterative_fd_io			fssh_do_iterative_fd_io
957
958#define notify_entry_created		fssh_notify_entry_created
959#define notify_entry_removed		fssh_notify_entry_removed
960#define notify_entry_moved			fssh_notify_entry_moved
961#define notify_stat_changed			fssh_notify_stat_changed
962#define notify_attribute_changed	fssh_notify_attribute_changed
963
964#define notify_query_entry_created	fssh_notify_query_entry_created
965#define notify_query_entry_removed	fssh_notify_query_entry_removed
966#define notify_query_attr_changed	fssh_notify_query_attr_changed
967
968
969////////////////////////////////////////////////////////////////////////////////
970// #pragma mark - fssh_fs_query.h
971
972#define B_LIVE_QUERY		FSSH_B_LIVE_QUERY
973#define B_QUERY_NON_INDEXED	FSSH_B_QUERY_NON_INDEXED
974
975
976////////////////////////////////////////////////////////////////////////////////
977// #pragma mark - fssh_fs_volume.h
978
979#define B_MOUNT_READ_ONLY		FSSH_B_MOUNT_READ_ONLY
980#define B_MOUNT_VIRTUAL_DEVICE	FSSH_B_MOUNT_VIRTUAL_DEVICE
981
982/* unmount flags */
983#define B_FORCE_UNMOUNT			FSSH_B_FORCE_UNMOUNT
984
985
986////////////////////////////////////////////////////////////////////////////////
987// #pragma mark - fssh_kernel_export.h
988
989/* kernel threads */
990#define spawn_kernel_thread	fssh_spawn_kernel_thread
991
992/* misc */
993#define user_memcpy			fssh_user_memcpy
994
995/* primitive kernel debugging facilities */
996#define dprintf				fssh_dprintf
997#define kprintf				fssh_kprintf
998#define dump_block			fssh_dump_block
999#define panic				fssh_panic
1000#define kernel_debugger		fssh_kernel_debugger
1001#define parse_expression	fssh_parse_expression
1002
1003#define debugger_command_hook	fssh_debugger_command_hook
1004#define add_debugger_command	fssh_add_debugger_command
1005#define remove_debugger_command	fssh_remove_debugger_command
1006
1007
1008////////////////////////////////////////////////////////////////////////////////
1009// #pragma mark - fssh_lock.h
1010
1011#define mutex						fssh_mutex
1012#define rw_lock						fssh_rw_lock
1013#define recursive_lock				fssh_recursive_lock
1014
1015#define MUTEX_FLAG_CLONE_NAME		FSSH_MUTEX_FLAG_CLONE_NAME
1016#define RW_LOCK_FLAG_CLONE_NAME		FSSH_RW_LOCK_FLAG_CLONE_NAME
1017
1018#define ASSERT_LOCKED_RECURSIVE(r)	FSSH_ASSERT_LOCKED_RECURSIVE(r)
1019#define ASSERT_LOCKED_MUTEX(m)		FSSH_ASSERT_LOCKED_MUTEX(m)
1020#define ASSERT_WRITE_LOCKED_RW_LOCK(l) FSSH_ASSERT_WRITE_LOCKED_RW_LOCK(l)
1021#define ASSERT_READ_LOCKED_RW_LOCK(l) FSSH_ASSERT_READ_LOCKED_RW_LOCK(l)
1022
1023#define MUTEX_INITIALIZER(name)		FSSH_MUTEX_INITIALIZER(name)
1024#define RECURSIVE_LOCK_INITIALIZER(name) FSSH_RECURSIVE_LOCK_INITIALIZER(name)
1025#define RW_LOCK_INITIALIZER(name)	FSSH_RW_LOCK_INITIALIZER(name)
1026
1027#define	recursive_lock_init			fssh_recursive_lock_init
1028#define recursive_lock_init_etc		fssh_recursive_lock_init_etc
1029#define recursive_lock_destroy		fssh_recursive_lock_destroy
1030#define recursive_lock_lock			fssh_recursive_lock_lock
1031#define recursive_lock_trylock		fssh_recursive_lock_trylock
1032#define recursive_lock_unlock		fssh_recursive_lock_unlock
1033#define recursive_lock_get_recursion fssh_recursive_lock_get_recursion
1034#define recursive_lock_transfer_lock fssh_recursive_lock_transfer_lock
1035
1036#define rw_lock_init				fssh_rw_lock_init
1037#define rw_lock_init_etc			fssh_rw_lock_init_etc
1038#define rw_lock_destroy				fssh_rw_lock_destroy
1039#define rw_lock_read_lock			fssh_rw_lock_read_lock
1040#define rw_lock_read_unlock			fssh_rw_lock_read_unlock
1041#define rw_lock_write_lock			fssh_rw_lock_write_lock
1042#define rw_lock_write_unlock		fssh_rw_lock_write_unlock
1043
1044#define mutex_init					fssh_mutex_init
1045#define mutex_init_etc				fssh_mutex_init_etc
1046#define mutex_destroy				fssh_mutex_destroy
1047#define mutex_lock					fssh_mutex_lock
1048#define mutex_trylock				fssh_mutex_trylock
1049#define mutex_unlock				fssh_mutex_unlock
1050#define mutex_transfer_lock			fssh_mutex_transfer_lock
1051
1052
1053////////////////////////////////////////////////////////////////////////////////
1054// #pragma mark - fssh_module.h
1055
1056#define module_info	fssh_module_info
1057
1058/* module standard operations */
1059#define B_MODULE_INIT	FSSH_B_MODULE_INIT
1060#define B_MODULE_UNINIT	FSSH_B_MODULE_UNINIT
1061
1062/* module flags */
1063#define B_KEEP_LOADED	FSSH_B_KEEP_LOADED
1064
1065
1066#define module_dependency	fssh_module_dependency
1067
1068
1069////////////////////////////////////////////////////////////////////////////////
1070// #pragma mark - fssh_node_monitor.h
1071
1072#define B_STOP_WATCHING			FSSH_B_STOP_WATCHING
1073#define B_WATCH_NAME			FSSH_B_WATCH_NAME
1074#define B_WATCH_STAT			FSSH_B_WATCH_STAT
1075#define B_WATCH_ATTR			FSSH_B_WATCH_ATTR
1076#define B_WATCH_DIRECTORY		FSSH_B_WATCH_DIRECTORY
1077#define B_WATCH_ALL				FSSH_B_WATCH_ALL
1078#define B_WATCH_MOUNT			FSSH_B_WATCH_MOUNT
1079#define B_WATCH_INTERIM_STAT	FSSH_B_WATCH_INTERIM_STAT
1080
1081#define B_ENTRY_CREATED		FSSH_B_ENTRY_CREATED
1082#define B_ENTRY_REMOVED		FSSH_B_ENTRY_REMOVED
1083#define B_ENTRY_MOVED		FSSH_B_ENTRY_MOVED
1084#define B_STAT_CHANGED		FSSH_B_STAT_CHANGED
1085#define B_ATTR_CHANGED		FSSH_B_ATTR_CHANGED
1086#define B_DEVICE_MOUNTED	FSSH_B_DEVICE_MOUNTED
1087#define B_DEVICE_UNMOUNTED	FSSH_B_DEVICE_UNMOUNTED
1088
1089#define B_ATTR_CREATED		FSSH_B_ATTR_CREATED
1090#define B_ATTR_REMOVED		FSSH_B_ATTR_REMOVED
1091
1092#define B_STAT_MODE					FSSH_B_STAT_MODE
1093#define B_STAT_UID					FSSH_B_STAT_UID
1094#define B_STAT_GID					FSSH_B_STAT_GID
1095#define B_STAT_SIZE					FSSH_B_STAT_SIZE
1096#define B_STAT_ACCESS_TIME			FSSH_B_STAT_ACCESS_TIME
1097#define B_STAT_MODIFICATION_TIME	FSSH_B_STAT_MODIFICATION_TIME
1098#define B_STAT_CREATION_TIME		FSSH_B_STAT_CREATION_TIME
1099#define B_STAT_CHANGE_TIME			FSSH_B_STAT_CHANGE_TIME
1100#define B_STAT_INTERIM_UPDATE		FSSH_B_STAT_INTERIM_UPDATE
1101
1102
1103////////////////////////////////////////////////////////////////////////////////
1104// #pragma mark - fssh_os.h
1105
1106/* System constants */
1107
1108#define B_OS_NAME_LENGTH	FSSH_B_OS_NAME_LENGTH
1109#define B_PAGE_SIZE			FSSH_B_PAGE_SIZE
1110#define B_INFINITE_TIMEOUT	FSSH_B_INFINITE_TIMEOUT
1111
1112
1113/* Types */
1114
1115#define area_id		fssh_area_id
1116#define port_id		fssh_port_id
1117#define sem_id		fssh_sem_id
1118#define team_id		fssh_team_id
1119#define thread_id	fssh_thread_id
1120
1121
1122/* Semaphores */
1123
1124#define sem_info	fssh_sem_info
1125
1126/* semaphore flags */
1127#define B_CAN_INTERRUPT			FSSH_B_CAN_INTERRUPT
1128#define B_CHECK_PERMISSION		FSSH_B_CHECK_PERMISSION
1129#define B_KILL_CAN_INTERRUPT	FSSH_B_KILL_CAN_INTERRUPT
1130
1131#define B_DO_NOT_RESCHEDULE			FSSH_B_DO_NOT_RESCHEDULE
1132#define B_RELEASE_ALL				FSSH_B_RELEASE_ALL
1133#define B_RELEASE_IF_WAITING_ONLY	FSSH_B_RELEASE_IF_WAITING_ONLY
1134
1135#define create_sem		fssh_create_sem
1136#define delete_sem		fssh_delete_sem
1137#define acquire_sem		fssh_acquire_sem
1138#define acquire_sem_etc	fssh_acquire_sem_etc
1139#define release_sem		fssh_release_sem
1140#define release_sem_etc	fssh_release_sem_etc
1141#define get_sem_count	fssh_get_sem_count
1142#define set_sem_owner	fssh_set_sem_owner
1143
1144#define get_sem_info(sem, info)					fssh_get_sem_info(sem, info)
1145#define get_next_sem_info(team, cookie, info)	fssh_get_next_sem_info(team, cookie, info)
1146
1147#define B_TIMEOUT			FSSH_B_TIMEOUT
1148#define B_RELATIVE_TIMEOUT	FSSH_B_RELATIVE_TIMEOUT
1149#define B_ABSOLUTE_TIMEOUT	FSSH_B_ABSOLUTE_TIMEOUT
1150
1151
1152/* Teams */
1153
1154#define B_CURRENT_TEAM	FSSH_B_CURRENT_TEAM
1155#define B_SYSTEM_TEAM	FSSH_B_SYSTEM_TEAM
1156
1157
1158/* Threads */
1159
1160#define B_THREAD_RUNNING	FSSH_B_THREAD_RUNNING
1161#define B_THREAD_READY		FSSH_B_THREAD_READY
1162#define B_THREAD_RECEIVING	FSSH_B_THREAD_RECEIVING
1163#define B_THREAD_ASLEEP		FSSH_B_THREAD_ASLEEP
1164#define B_THREAD_SUSPENDED	FSSH_B_THREAD_SUSPENDED
1165#define B_THREAD_WAITING	FSSH_B_THREAD_WAITING
1166
1167#define thread_state		fssh_thread_state
1168#define thread_info			fssh_thread_info
1169
1170#define B_IDLE_PRIORITY					FSSH_B_IDLE_PRIORITY
1171#define B_LOWEST_ACTIVE_PRIORITY		FSSH_B_LOWEST_ACTIVE_PRIORITY
1172#define B_LOW_PRIORITY					FSSH_B_LOW_PRIORITY
1173#define B_NORMAL_PRIORITY				FSSH_B_NORMAL_PRIORITY
1174#define B_DISPLAY_PRIORITY				FSSH_B_DISPLAY_PRIORITY
1175#define B_URGENT_DISPLAY_PRIORITY		FSSH_B_URGENT_DISPLAY_PRIORITY
1176#define B_REAL_TIME_DISPLAY_PRIORITY	FSSH_B_REAL_TIME_DISPLAY_PRIORITY
1177#define B_URGENT_PRIORITY				FSSH_B_URGENT_PRIORITY
1178#define B_REAL_TIME_PRIORITY			FSSH_B_REAL_TIME_PRIORITY
1179
1180#define B_FIRST_REAL_TIME_PRIORITY		FSSH_B_FIRST_REAL_TIME_PRIORITY
1181#define B_MIN_PRIORITY					FSSH_B_MIN_PRIORITY
1182#define B_MAX_PRIORITY					FSSH_B_MAX_PRIORITY
1183
1184#define B_SYSTEM_TIMEBASE				FSSH_B_SYSTEM_TIMEBASE
1185
1186#define thread_func			fssh_thread_func
1187#define thread_entry		fssh_thread_entry
1188
1189#define spawn_thread		fssh_spawn_thread
1190#define kill_thread			fssh_kill_thread
1191#define resume_thread		fssh_resume_thread
1192#define suspend_thread		fssh_suspend_thread
1193
1194#define rename_thread		fssh_rename_thread
1195#define set_thread_priority	fssh_set_thread_priority
1196#define exit_thread			fssh_exit_thread
1197#define wait_for_thread 	fssh_wait_for_thread
1198#define on_exit_thread		fssh_on_exit_thread
1199
1200#define find_thread			fssh_find_thread
1201
1202#define send_data			fssh_send_data
1203#define receive_data		fssh_receive_data
1204#define has_data			fssh_has_data
1205
1206#define snooze				fssh_snooze
1207#define snooze_etc			fssh_snooze_etc
1208#define snooze_until		fssh_snooze_until
1209
1210#define get_thread_info(id, info)					fssh_get_thread_info(id, info)
1211#define get_next_thread_info(team, cookie, info)	fssh_get_next_thread_info(team, cookie, info)
1212
1213
1214/* Time */
1215
1216#define real_time_clock			fssh_real_time_clock
1217#define set_real_time_clock		fssh_set_real_time_clock
1218#define real_time_clock_usecs	fssh_real_time_clock_usecs
1219#define set_timezone			fssh_set_timezone
1220#define system_time				fssh_system_time
1221
1222
1223////////////////////////////////////////////////////////////////////////////////
1224// #pragma mark - fssh_stat.h
1225
1226#define stat	fssh_stat
1227
1228// struct stat fields
1229#undef st_dev
1230#undef st_ino
1231#undef st_mode
1232#undef st_nlink
1233#undef st_uid
1234#undef st_gid
1235#undef st_size
1236#undef st_rdev
1237#undef st_blksize
1238#undef st_atime
1239#undef st_mtime
1240#undef st_ctime
1241#undef st_crtime
1242#undef st_type
1243
1244#define st_dev		fssh_st_dev
1245#define st_ino		fssh_st_ino
1246#define st_mode		fssh_st_mode
1247#define st_nlink	fssh_st_nlink
1248#define st_uid		fssh_st_uid
1249#define st_gid		fssh_st_gid
1250#define st_size		fssh_st_size
1251#define st_rdev		fssh_st_rdev
1252#define st_blksize	fssh_st_blksize
1253#define st_atim		fssh_st_atim
1254#define st_mtim		fssh_st_mtim
1255#define st_ctim		fssh_st_ctim
1256#define st_crtim	fssh_st_crtim
1257#define st_atime	fssh_st_atime
1258#define st_mtime	fssh_st_mtime
1259#define st_ctime	fssh_st_ctime
1260#define st_crtime	fssh_st_crtime
1261#define st_type		fssh_st_type
1262#define st_blocks	fssh_st_blocks
1263
1264/* extended file types */
1265#define S_ATTR_DIR			FSSH_S_ATTR_DIR
1266#define S_ATTR				FSSH_S_ATTR
1267#define S_INDEX_DIR			FSSH_S_INDEX_DIR
1268#define S_STR_INDEX			FSSH_S_STR_INDEX
1269#define S_INT_INDEX			FSSH_S_INT_INDEX
1270#define S_UINT_INDEX		FSSH_S_UINT_INDEX
1271#define S_LONG_LONG_INDEX	FSSH_S_LONG_LONG_INDEX
1272#define S_ULONG_LONG_INDEX	FSSH_S_ULONG_LONG_INDEX
1273#define S_FLOAT_INDEX		FSSH_S_FLOAT_INDEX
1274#define S_DOUBLE_INDEX		FSSH_S_DOUBLE_INDEX
1275#define S_ALLOW_DUPS		FSSH_S_ALLOW_DUPS
1276
1277/* link types */
1278#define S_LINK_SELF_HEALING	FSSH_S_LINK_SELF_HEALING
1279#define S_LINK_AUTO_DELETE	FSSH_S_LINK_AUTO_DELETE
1280
1281/* standard file types */
1282#define S_IFMT		FSSH_S_IFMT
1283#define S_IFSOCK	FSSH_S_IFSOCK
1284#define S_IFLNK		FSSH_S_IFLNK
1285#define S_IFREG		FSSH_S_IFREG
1286#define S_IFBLK		FSSH_S_IFBLK
1287#define S_IFDIR		FSSH_S_IFDIR
1288#define S_IFCHR		FSSH_S_IFCHR
1289#define S_IFIFO		FSSH_S_IFIFO
1290
1291#define S_ISREG(mode)	FSSH_S_ISREG(mode)
1292#define S_ISLNK(mode)	FSSH_S_ISLNK(mode)
1293#define S_ISBLK(mode)	FSSH_S_ISBLK(mode)
1294#define S_ISDIR(mode)	FSSH_S_ISDIR(mode)
1295#define S_ISCHR(mode)	FSSH_S_ISCHR(mode)
1296#define S_ISFIFO(mode)	FSSH_S_ISFIFO(mode)
1297#define S_ISINDEX(mode)	FSSH_S_ISINDEX(mode)
1298
1299#define S_IUMSK	FSSH_S_IUMSK
1300
1301#define S_ISUID	FSSH_S_ISUID
1302#define S_ISGID	FSSH_S_ISGID
1303
1304#define S_ISVTX	FSSH_S_ISVTX
1305
1306#define S_IRWXU	FSSH_S_IRWXU
1307#define S_IRUSR	FSSH_S_IRUSR
1308#define S_IWUSR	FSSH_S_IWUSR
1309#define S_IXUSR	FSSH_S_IXUSR
1310#define S_IRWXG	FSSH_S_IRWXG
1311#define S_IRGRP	FSSH_S_IRGRP
1312#define S_IWGRP	FSSH_S_IWGRP
1313#define S_IXGRP	FSSH_S_IXGRP
1314#define S_IRWXO	FSSH_S_IRWXO
1315#define S_IROTH	FSSH_S_IROTH
1316#define S_IWOTH	FSSH_S_IWOTH
1317#define S_IXOTH	FSSH_S_IXOTH
1318
1319#define ACCESSPERMS	FSSH_ACCESSPERMS
1320#define ALLPERMS	FSSH_ALLPERMS
1321#define DEFFILEMODE	FSSH_DEFFILEMODE
1322
1323#define chmod	fssh_chmod
1324#define fchmod	fssh_fchmod
1325#define mkdir	fssh_mkdir
1326#define mkfifo	fssh_mkfifo
1327#define umask	fssh_umask
1328
1329//#define stat	fssh_stat
1330	// Already mapped above for "struct stat".
1331#define fstat	fssh_fstat
1332#define lstat	fssh_lstat
1333
1334
1335////////////////////////////////////////////////////////////////////////////////
1336// #pragma mark - fssh_stdio.h
1337
1338#define EOF	FSSH_EOF
1339
1340/* file operations */
1341#define remove		fssh_remove
1342#define rename		fssh_rename
1343
1344/* formatted I/O */
1345#define sprintf		fssh_sprintf
1346#define snprintf	fssh_snprintf
1347#define vsprintf	fssh_vsprintf
1348#define vsnprintf	fssh_vsnprintf
1349
1350#define sscanf		fssh_sscanf
1351#define vsscanf		fssh_vsscanf
1352
1353
1354////////////////////////////////////////////////////////////////////////////////
1355// #pragma mark - fssh_string.h
1356
1357/* memXXX() functions */
1358#define memchr		fssh_memchr
1359#define memcmp		fssh_memcmp
1360#define memcpy		fssh_memcpy
1361#define memccpy		fssh_memccpy
1362#define memmove		fssh_memmove
1363#define memset		fssh_memset
1364
1365/* string functions */
1366#define strcpy		fssh_strcpy
1367#define strncpy		fssh_strncpy
1368#define strcat		fssh_strcat
1369#define strncat		fssh_strncat
1370#define strlen		fssh_strlen
1371#define strcmp		fssh_strcmp
1372#define strncmp		fssh_strncmp
1373#define strchr		fssh_strchr
1374#define strrchr		fssh_strrchr
1375#define strstr		fssh_strstr
1376#define strchrnul	fssh_strchrnul
1377#define strpbrk		fssh_strpbrk
1378#define strtok		fssh_strtok
1379#define strtok_r	fssh_strtok_r
1380#define strspn		fssh_strspn
1381#define strcspn		fssh_strcspn
1382#define strcoll		fssh_strcoll
1383#define strxfrm		fssh_strxfrm
1384#define strerror	fssh_strerror
1385#define strerror_r	fssh_strerror_r
1386
1387/* non-standard string functions */
1388#define strcasecmp	fssh_strcasecmp
1389#define strncasecmp	fssh_strncasecmp
1390#define strcasestr	fssh_strcasestr
1391#define strdup		fssh_strdup
1392#define stpcpy		fssh_stpcpy
1393#define strtcopy	fssh_strtcopy
1394#define strlcat		fssh_strlcat
1395#define strlcpy		fssh_strlcpy
1396#define strnlen		fssh_strnlen
1397
1398#define ffs			fssh_ffs
1399#define index		fssh_index
1400#define rindex		fssh_rindex
1401
1402
1403////////////////////////////////////////////////////////////////////////////////
1404// #pragma mark - fssh_time.h
1405
1406#define clock_t		fssh_clock_t
1407#define time_t		fssh_time_t
1408#define suseconds_t	fssh_suseconds_t
1409#define useconds_t	fssh_useconds_t
1410
1411#undef CLOCKS_PER_SEC
1412#undef CLK_TCK
1413#undef MAX_TIMESTR
1414
1415#define CLOCKS_PER_SEC	FSSH_CLOCKS_PER_SEC
1416#define CLK_TCK			FSSH_CLK_TCK
1417#define MAX_TIMESTR		FSSH_MAX_TIMESTR
1418
1419#define timespec	fssh_timespec
1420#define itimerspec	fssh_itimerspec
1421#define tm			fssh_tm
1422
1423/* special timezone support */
1424#define tzname		fssh_tzname
1425#define daylight	fssh_daylight
1426#define timezone	fssh_timezone
1427
1428#define clock		fssh_clock
1429#define difftime	fssh_difftime
1430#define mktime		fssh_mktime
1431#define time		fssh_time
1432#define asctime		fssh_asctime
1433#define asctime_r	fssh_asctime_r
1434#define ctime		fssh_ctime
1435#define ctime_r		fssh_ctime_r
1436#define gmtime		fssh_gmtime
1437#define gmtime_r	fssh_gmtime_r
1438#define localtime	fssh_localtime
1439#define localtime_r	fssh_localtime_r
1440#define strftime	fssh_strftime
1441#define strptime	fssh_strptime
1442
1443/* special timezone support */
1444#define tzset	fssh_tzset
1445#define stime	fssh_stime
1446
1447
1448////////////////////////////////////////////////////////////////////////////////
1449// #pragma mark - fssh_type_constants.h
1450
1451#define B_ANY_TYPE						FSSH_B_ANY_TYPE
1452#define B_ATOM_TYPE						FSSH_B_ATOM_TYPE
1453#define B_ATOMREF_TYPE					FSSH_B_ATOMREF_TYPE
1454#define B_BOOL_TYPE						FSSH_B_BOOL_TYPE
1455#define B_CHAR_TYPE						FSSH_B_CHAR_TYPE
1456#define B_COLOR_8_BIT_TYPE				FSSH_B_COLOR_8_BIT_TYPE
1457#define B_DOUBLE_TYPE					FSSH_B_DOUBLE_TYPE
1458#define B_FLOAT_TYPE					FSSH_B_FLOAT_TYPE
1459#define B_GRAYSCALE_8_BIT_TYPE			FSSH_B_GRAYSCALE_8_BIT_TYPE
1460#define B_INT16_TYPE					FSSH_B_INT16_TYPE
1461#define B_INT32_TYPE					FSSH_B_INT32_TYPE
1462#define B_INT64_TYPE					FSSH_B_INT64_TYPE
1463#define B_INT8_TYPE						FSSH_B_INT8_TYPE
1464#define B_LARGE_ICON_TYPE				FSSH_B_LARGE_ICON_TYPE
1465#define B_MEDIA_PARAMETER_GROUP_TYPE	FSSH_B_MEDIA_PARAMETER_GROUP_TYPE
1466#define B_MEDIA_PARAMETER_TYPE			FSSH_B_MEDIA_PARAMETER_TYPE
1467#define B_MEDIA_PARAMETER_WEB_TYPE		FSSH_B_MEDIA_PARAMETER_WEB_TYPE
1468#define B_MESSAGE_TYPE					FSSH_B_MESSAGE_TYPE
1469#define B_MESSENGER_TYPE				FSSH_B_MESSENGER_TYPE
1470#define B_MIME_TYPE						FSSH_B_MIME_TYPE
1471#define B_MINI_ICON_TYPE				FSSH_B_MINI_ICON_TYPE
1472#define B_MONOCHROME_1_BIT_TYPE			FSSH_B_MONOCHROME_1_BIT_TYPE
1473#define B_OBJECT_TYPE					FSSH_B_OBJECT_TYPE
1474#define B_OFF_T_TYPE					FSSH_B_OFF_T_TYPE
1475#define B_PATTERN_TYPE					FSSH_B_PATTERN_TYPE
1476#define B_POINTER_TYPE					FSSH_B_POINTER_TYPE
1477#define B_POINT_TYPE					FSSH_B_POINT_TYPE
1478#define B_PROPERTY_INFO_TYPE			FSSH_B_PROPERTY_INFO_TYPE
1479#define B_RAW_TYPE						FSSH_B_RAW_TYPE
1480#define B_RECT_TYPE						FSSH_B_RECT_TYPE
1481#define B_REF_TYPE						FSSH_B_REF_TYPE
1482#define B_RGB_32_BIT_TYPE				FSSH_B_RGB_32_BIT_TYPE
1483#define B_RGB_COLOR_TYPE				FSSH_B_RGB_COLOR_TYPE
1484#define B_SIZE_T_TYPE					FSSH_B_SIZE_T_TYPE
1485#define B_SSIZE_T_TYPE					FSSH_B_SSIZE_T_TYPE
1486#define B_STRING_TYPE					FSSH_B_STRING_TYPE
1487#define B_TIME_TYPE						FSSH_B_TIME_TYPE
1488#define B_UINT16_TYPE					FSSH_B_UINT16_TYPE
1489#define B_UINT32_TYPE					FSSH_B_UINT32_TYPE
1490#define B_UINT64_TYPE					FSSH_B_UINT64_TYPE
1491#define B_UINT8_TYPE					FSSH_B_UINT8_TYPE
1492#define B_VECTOR_ICON_TYPE				FSSH_B_VECTOR_ICON_TYPE
1493#define B_ASCII_TYPE					FSSH_B_ASCII_TYPE
1494#define B_XATTR_TYPE					FSSH_B_XATTR_TYPE
1495#define B_NETWORK_ADDRESS_TYPE			FSSH_B_NETWORK_ADDRESS_TYPE
1496#define B_MIME_STRING_TYPE				FSSH_B_MIME_STRING_TYPE
1497
1498//----- System-wide MIME types for handling URL's ------------------------------
1499
1500#define B_URL_HTTP		FSSH_B_URL_HTTP
1501#define B_URL_HTTPS		FSSH_B_URL_HTTPS
1502#define B_URL_FTP		FSSH_B_URL_FTP
1503#define B_URL_GOPHER	FSSH_B_URL_GOPHER
1504#define B_URL_MAILTO	FSSH_B_URL_MAILTO
1505#define B_URL_NEWS		FSSH_B_URL_NEWS
1506#define B_URL_NNTP		FSSH_B_URL_NNTP
1507#define B_URL_TELNET	FSSH_B_URL_TELNET
1508#define B_URL_RLOGIN	FSSH_B_URL_RLOGIN
1509#define B_URL_TN3270	FSSH_B_URL_TN3270
1510#define B_URL_WAIS		FSSH_B_URL_WAIS
1511#define B_URL_FILE		FSSH_B_URL_FILE
1512
1513
1514////////////////////////////////////////////////////////////////////////////////
1515// #pragma mark - fssh_types.h
1516
1517#define addr_t			fssh_addr_t
1518#define phys_addr_t		fssh_phys_addr_t
1519#define phys_size_t		fssh_phys_size_t
1520#define generic_addr_t	fssh_generic_addr_t
1521#define generic_size_t	fssh_generic_size_t
1522
1523#define dev_t			fssh_dev_t
1524#define ino_t			fssh_ino_t
1525
1526#define size_t			fssh_size_t
1527#define ssize_t			fssh_ssize_t
1528#define off_t			fssh_off_t
1529
1530#define bigtime_t		fssh_bigtime_t
1531
1532#define status_t		fssh_status_t
1533#define type_code		fssh_type_code
1534
1535#define mode_t			fssh_mode_t
1536#define nlink_t			fssh_nlink_t
1537#define uid_t			fssh_uid_t
1538#define gid_t			fssh_gid_t
1539#define pid_t			fssh_pid_t
1540
1541/* printf()/scanf() format strings for [u]int* types */
1542#define B_PRId8			FSSH_B_PRId8
1543#define B_PRIi8			FSSH_B_PRIi8
1544#define B_PRId16		FSSH_B_PRId16
1545#define B_PRIi16		FSSH_B_PRIi16
1546#define B_PRId32		FSSH_B_PRId32
1547#define B_PRIi32		FSSH_B_PRIi32
1548#define B_PRId64		FSSH_B_PRId64
1549#define B_PRIi64		FSSH_B_PRIi64
1550#define B_PRIu8			FSSH_B_PRIu8
1551#define B_PRIo8			FSSH_B_PRIo8
1552#define B_PRIx8			FSSH_B_PRIx8
1553#define B_PRIX8			FSSH_B_PRIX8
1554#define B_PRIu16		FSSH_B_PRIu16
1555#define B_PRIo16		FSSH_B_PRIo16
1556#define B_PRIx16		FSSH_B_PRIx16
1557#define B_PRIX16		FSSH_B_PRIX16
1558#define B_PRIu32		FSSH_B_PRIu32
1559#define B_PRIo32		FSSH_B_PRIo32
1560#define B_PRIx32		FSSH_B_PRIx32
1561#define B_PRIX32		FSSH_B_PRIX32
1562#define B_PRIu64		FSSH_B_PRIu64
1563#define B_PRIo64		FSSH_B_PRIo64
1564#define B_PRIx64		FSSH_B_PRIx64
1565#define B_PRIX64		FSSH_B_PRIX64
1566
1567#define B_SCNd8			FSSH_B_SCNd8
1568#define B_SCNi8			FSSH_B_SCNi8
1569#define B_SCNd16		FSSH_B_SCNd16
1570#define B_SCNi16		FSSH_B_SCNi16
1571#define B_SCNd32		FSSH_B_SCNd32
1572#define B_SCNi32		FSSH_B_SCNi32
1573#define B_SCNd64		FSSH_B_SCNd64
1574#define B_SCNi64		FSSH_B_SCNi64
1575#define B_SCNu8			FSSH_B_SCNu8
1576#define B_SCNo8			FSSH_B_SCNo8
1577#define B_SCNx8			FSSH_B_SCNx8
1578#define B_SCNu16		FSSH_B_SCNu16
1579#define B_SCNu16		FSSH_B_SCNu16
1580#define B_SCNx16		FSSH_B_SCNx16
1581#define B_SCNu32		FSSH_B_SCNu32
1582#define B_SCNo32		FSSH_B_SCNo32
1583#define B_SCNx32		FSSH_B_SCNx32
1584#define B_SCNu64		FSSH_B_SCNu64
1585#define B_SCNo64		FSSH_B_SCNo64
1586#define B_SCNx64		FSSH_B_SCNx64
1587
1588/* printf() format strings for some standard types */
1589/* size_t */
1590#define B_PRIuSIZE		FSSH_B_PRIuSIZE
1591#define B_PRIoSIZE		FSSH_B_PRIoSIZE
1592#define B_PRIxSIZE		FSSH_B_PRIxSIZE
1593#define B_PRIXSIZE		FSSH_B_PRIXSIZE
1594/* ssize_t */
1595#define B_PRIdSSIZE		FSSH_B_PRIdSSIZE
1596#define B_PRIiSSIZE		FSSH_B_PRIiSSIZE
1597/* addr_t */
1598#define B_PRIuADDR		FSSH_B_PRIuADDR
1599#define B_PRIoADDR		FSSH_B_PRIoADDR
1600#define B_PRIxADDR		FSSH_B_PRIxADDR
1601#define B_PRIXADDR		FSSH_B_PRIXADDR
1602/* phys_addr_t */
1603#define B_PRIuPHYSADDR	FSSH_B_PRIuPHYSADDR
1604#define B_PRIoPHYSADDR	FSSH_B_PRIoPHYSADDR
1605#define B_PRIxPHYSADDR	FSSH_B_PRIxPHYSADDR
1606#define B_PRIXPHYSADDR	FSSH_B_PRIXPHYSADDR
1607/* generic_addr_t */
1608#define B_PRIuGENADDR	FSSH_B_PRIuGENADDR
1609#define B_PRIoGENADDR	FSSH_B_PRIoGENADDR
1610#define B_PRIxGENADDR	FSSH_B_PRIxGENADDR
1611#define B_PRIXGENADDR	FSSH_B_PRIXGENADDR
1612/* off_t */
1613#define B_PRIdOFF		FSSH_B_PRIdOFF
1614#define B_PRIiOFF		FSSH_B_PRIiOFF
1615/* dev_t */
1616#define B_PRIdDEV		FSSH_B_PRIdDEV
1617#define B_PRIiDEV		FSSH_B_PRIiDEV
1618/* ino_t */
1619#define B_PRIdINO		FSSH_B_PRIdINO
1620#define B_PRIiINO		FSSH_B_PRIiINO
1621/* time_t */
1622#if defined(__i386__) && !defined(__x86_64__)
1623#	define B_PRIdTIME		FSSH_B_PRId32
1624#	define B_PRIiTIME		FSSH_B_PRIi32
1625#else
1626#	define B_PRIdTIME		FSSH_B_PRId64
1627#	define B_PRIiTIME		FSSH_B_PRIi64
1628#endif
1629
1630
1631////////////////////////////////////////////////////////////////////////////////
1632// #pragma mark - fssh_uio.h
1633
1634#define iovec		fssh_iovec
1635
1636#define readv		fssh_readv
1637#define readv_pos	fssh_readv_pos
1638#define writev		fssh_writev
1639#define writev_pos	fssh_writev_pos
1640
1641
1642////////////////////////////////////////////////////////////////////////////////
1643// #pragma mark - fssh_unistd.h
1644
1645/* access modes */
1646#define R_OK	FSSH_R_OK
1647#define W_OK	FSSH_W_OK
1648#define X_OK	FSSH_X_OK
1649#define F_OK	FSSH_F_OK
1650
1651/* standard file descriptors */
1652#define STDIN_FILENO	FSSH_STDIN_FILENO
1653#define STDOUT_FILENO	FSSH_STDOUT_FILENO
1654#define STDERR_FILENO	FSSH_STDERR_FILENO
1655
1656/* lseek() constants */
1657#define SEEK_SET	FSSH_SEEK_SET
1658#define SEEK_CUR	FSSH_SEEK_CUR
1659#define SEEK_END	FSSH_SEEK_END
1660
1661/* file functions */
1662#define access		fssh_access
1663
1664#define chdir		fssh_chdir
1665#define fchdir		fssh_fchdir
1666#define getcwd		fssh_getcwd
1667
1668#define dup			fssh_dup
1669#define dup2		fssh_dup2
1670#define close		fssh_close
1671#define link		fssh_link
1672#define unlink		fssh_unlink
1673#define rmdir		fssh_rmdir
1674
1675#define readlink	fssh_readlink
1676#define symlink		fssh_symlink
1677
1678#define ftruncate	fssh_ftruncate
1679#define truncate	fssh_truncate
1680#define ioctl		fssh_ioctl
1681
1682#define read		fssh_read
1683#define read_pos	fssh_read_pos
1684#define pread		fssh_pread
1685#define write		fssh_write
1686#define write_pos	fssh_write_pos
1687#define pwrite		fssh_pwrite
1688#define lseek		fssh_lseek
1689
1690#define sync		fssh_sync
1691#define fsync		fssh_fsync
1692
1693/* access permissions */
1694#define getegid		fssh_getegid
1695#define geteuid		fssh_geteuid
1696#define getgid		fssh_getgid
1697#define getgroups	fssh_getgroups
1698#define getuid		fssh_getuid
1699
1700
1701////////////////////////////////////////////////////////////////////////////////
1702// int types
1703
1704#define int8	int8_t
1705#define uint8	uint8_t
1706#define int16	int16_t
1707#define uint16	uint16_t
1708#define int32	int32_t
1709#define uint32	uint32_t
1710#define int64	int64_t
1711#define uint64	uint64_t
1712
1713#define vint32	vint32_t
1714
1715
1716#endif	// _FSSH_API_WRAPPER_H
1717