2 * Copyright 2007-2014, Ingo Weinhold, ingo_weinhold@gmx.de.
3 * Distributed under the terms of the MIT License.
5 #ifndef _FSSH_API_WRAPPER_H
6 #define _FSSH_API_WRAPPER_H
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"
23 #include "fssh_unistd.h"
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"
45 #include "fssh_type_constants.h"
46 #include "fssh_types.h"
48 #include "DoublyLinkedList.h"
49 #include "SinglyLinkedList.h"
53 ////////////////////////////////////////////////////////////////////////////////
54 // #pragma mark - fssh_atomic.h
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
65 ////////////////////////////////////////////////////////////////////////////////
66 // #pragma mark - fssh_bytes_order.h
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
75 #define swap_action fssh_swap_action
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)
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)
90 #define B_HOST_IS_LENDIAN FSSH_B_HOST_IS_LENDIAN
91 #define B_HOST_IS_BENDIAN FSSH_B_HOST_IS_BENDIAN
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)
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)
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)
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)
121 #define swap_data fssh_swap_data
122 #define is_type_swapped fssh_is_type_swapped
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
133 ////////////////////////////////////////////////////////////////////////////////
134 // #pragma mark - fssh_defs.h
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
142 #ifdef FSSH_B_HAIKU_32_BIT
143 # define B_HAIKU_32_BIT FSSH_B_HAIKU_32_BIT
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
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
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
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
172 #define offsetof(type,member) fssh_offsetof(type,member)
174 #define min_c(a,b) fssh_min_c(a,b)
175 #define max_c(a,b) fssh_max_c(a,b)
178 #define _PACKED _FSSH_PACKED
181 ////////////////////////////////////////////////////////////////////////////////
182 // #pragma mark - fssh_dirent.h
184 #define dirent fssh_dirent
185 #define dirent_t fssh_dirent_t
191 ////////////////////////////////////////////////////////////////////////////////
192 // #pragma mark - fssh_disk_device_defs.h
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
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
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
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
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
241 #define B_DISK_SYSTEM_IS_FILE_SYSTEM FSSH_B_DISK_SYSTEM_IS_FILE_SYSTEM
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
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
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
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
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
299 #define disk_device_job_progress_info fssh_disk_device_job_progress_info
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
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
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
316 ////////////////////////////////////////////////////////////////////////////////
317 // #pragma mark - fssh_disk_device_manager.h
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
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
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
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
350 // getting disk devices/partitions by path
351 #define find_disk_device fssh_find_disk_device
352 #define find_partition fssh_find_partition
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
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
365 #define scan_partition fssh_scan_partition
368 #define find_disk_system fssh_find_disk_system
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
377 ////////////////////////////////////////////////////////////////////////////////
378 // #pragma mark - fssh_driver_settings.h
380 #define driver_parameter fssh_driver_parameter
381 #define driver_settings fssh_driver_settings
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
392 #define B_SAFEMODE_DRIVER_SETTINGS FSSH_B_SAFEMODE_DRIVER_SETTINGS
393 #define B_SAFEMODE_SAFE_MODE FSSH_B_SAFEMODE_SAFE_MODE
396 ////////////////////////////////////////////////////////////////////////////////
397 // #pragma mark - fssh_drivers.h
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
410 #define B_CUR_DRIVER_API_VERSION FSSH_B_CUR_DRIVER_API_VERSION
412 #define device_hooks fssh_device_hooks
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
420 #define api_version fssh_api_version
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
456 #define device_geometry fssh_device_geometry
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
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
477 ////////////////////////////////////////////////////////////////////////////////
478 // #pragma mark - fssh_errors.h
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
494 /* Developer-defined errors start at (B_ERRORS_END+1) */
495 #define B_ERRORS_END FSSH_B_ERRORS_END
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
517 #define B_ERROR FSSH_B_ERROR
518 #define B_OK FSSH_B_OK
519 #define B_NO_ERROR FSSH_B_NO_ERROR
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
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
531 #define B_BAD_PORT_ID FSSH_B_BAD_PORT_ID
532 #define B_NO_MORE_PORTS FSSH_B_NO_MORE_PORTS
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
540 #define B_DEBUGGER_ALREADY_INSTALLED FSSH_B_DEBUGGER_ALREADY_INSTALLED
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
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
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
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
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
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
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
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
699 /* Printing Errors */
700 #define B_NO_PRINT_SERVER FSSH_B_NO_PRINT_SERVER
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
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
737 ////////////////////////////////////////////////////////////////////////////////
738 // #pragma mark - fssh_errno.h
740 #define ENOERR FSSH_ENOERR
743 #define errno fssh_errno
746 ////////////////////////////////////////////////////////////////////////////////
747 // #pragma mark - fssh_fcntl.h
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
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
764 /* file descriptor flags for fcntl() */
765 #define FD_CLOEXEC FSSH_FD_CLOEXEC
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
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
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
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
797 #define S_IREAD FSSH_S_IREAD
798 #define S_IWRITE FSSH_S_IWRITE
800 #define creat fssh_creat
801 #define open fssh_open
802 #define fcntl fssh_fcntl
805 ////////////////////////////////////////////////////////////////////////////////
806 // #pragma mark - fssh_fs_attr.h
808 #define attr_info fssh_attr_info
811 ////////////////////////////////////////////////////////////////////////////////
812 // #pragma mark - fssh_fs_cache.h
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
819 #define FILE_MAP_CACHE_ON_DEMAND FSSH_FILE_MAP_CACHE_ON_DEMAND
820 #define FILE_MAP_CACHE_ALL FSSH_FILE_MAP_CACHE_ALL
822 #define transaction_notification_hook fssh_transaction_notification_hook
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
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
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
863 #define file_cache_read fssh_file_cache_read
864 #define file_cache_write fssh_file_cache_write
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
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
878 ////////////////////////////////////////////////////////////////////////////////
879 // #pragma mark - fssh_fs_index.h
881 #define index_info fssh_index_info
884 ////////////////////////////////////////////////////////////////////////////////
885 // #pragma mark - fssh_fs_info.h
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
901 #define fs_info fssh_fs_info
904 ////////////////////////////////////////////////////////////////////////////////
905 // #pragma mark - fssh_fs_interface.h
907 #define mount_id fssh_mount_id
908 #define vnode_id fssh_vnode_id
910 // TODO: These two don't belong here!
911 #define IORequest FSSHIORequest
912 #define io_request fssh_io_request
914 /* additional flags passed to write_stat() */
915 #define B_STAT_SIZE_INSECURE FSSH_B_STAT_SIZE_INSECURE
917 /* passed to write_fs_info() */
918 #define FS_WRITE_FSINFO_NAME FSSH_FS_WRITE_FSINFO_NAME
920 #define file_io_vec fssh_file_io_vec
922 #define B_CURRENT_FS_API_VERSION FSSH_B_CURRENT_FS_API_VERSION
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
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
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
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 volume_for_vnode fssh_volume_for_vnode
948 #define check_access_permissions fssh_check_access_permissions
949 #define read_pages fssh_read_pages
950 #define write_pages fssh_write_pages
951 #define read_file_io_vec_pages fssh_read_file_io_vec_pages
952 #define write_file_io_vec_pages fssh_write_file_io_vec_pages
953 #define do_fd_io fssh_do_fd_io
954 #define do_iterative_fd_io fssh_do_iterative_fd_io
956 #define notify_entry_created fssh_notify_entry_created
957 #define notify_entry_removed fssh_notify_entry_removed
958 #define notify_entry_moved fssh_notify_entry_moved
959 #define notify_stat_changed fssh_notify_stat_changed
960 #define notify_attribute_changed fssh_notify_attribute_changed
962 #define notify_query_entry_created fssh_notify_query_entry_created
963 #define notify_query_entry_removed fssh_notify_query_entry_removed
964 #define notify_query_attr_changed fssh_notify_query_attr_changed
967 ////////////////////////////////////////////////////////////////////////////////
968 // #pragma mark - fssh_fs_query.h
970 #define B_LIVE_QUERY FSSH_B_LIVE_QUERY
971 #define B_QUERY_NON_INDEXED FSSH_B_QUERY_NON_INDEXED
974 ////////////////////////////////////////////////////////////////////////////////
975 // #pragma mark - fssh_fs_volume.h
977 #define B_MOUNT_READ_ONLY FSSH_B_MOUNT_READ_ONLY
978 #define B_MOUNT_VIRTUAL_DEVICE FSSH_B_MOUNT_VIRTUAL_DEVICE
981 #define B_FORCE_UNMOUNT FSSH_B_FORCE_UNMOUNT
984 ////////////////////////////////////////////////////////////////////////////////
985 // #pragma mark - fssh_kernel_export.h
988 #define spawn_kernel_thread fssh_spawn_kernel_thread
991 #define user_memcpy fssh_user_memcpy
993 /* primitive kernel debugging facilities */
994 #define dprintf fssh_dprintf
995 #define kprintf fssh_kprintf
996 #define dump_block fssh_dump_block
997 #define panic fssh_panic
998 #define kernel_debugger fssh_kernel_debugger
999 #define parse_expression fssh_parse_expression
1001 #define debugger_command_hook fssh_debugger_command_hook
1002 #define add_debugger_command fssh_add_debugger_command
1003 #define remove_debugger_command fssh_remove_debugger_command
1006 ////////////////////////////////////////////////////////////////////////////////
1007 // #pragma mark - fssh_lock.h
1009 #define mutex fssh_mutex
1010 #define rw_lock fssh_rw_lock
1011 #define recursive_lock fssh_recursive_lock
1013 #define MUTEX_FLAG_CLONE_NAME FSSH_MUTEX_FLAG_CLONE_NAME
1014 #define RW_LOCK_FLAG_CLONE_NAME FSSH_RW_LOCK_FLAG_CLONE_NAME
1016 #define ASSERT_LOCKED_RECURSIVE(r) FSSH_ASSERT_LOCKED_RECURSIVE(r)
1017 #define ASSERT_LOCKED_MUTEX(m) FSSH_ASSERT_LOCKED_MUTEX(m)
1018 #define ASSERT_WRITE_LOCKED_RW_LOCK(l) FSSH_ASSERT_WRITE_LOCKED_RW_LOCK(l)
1019 #define ASSERT_READ_LOCKED_RW_LOCK(l) FSSH_ASSERT_READ_LOCKED_RW_LOCK(l)
1021 #define MUTEX_INITIALIZER(name) FSSH_MUTEX_INITIALIZER(name)
1022 #define RECURSIVE_LOCK_INITIALIZER(name) FSSH_RECURSIVE_LOCK_INITIALIZER(name)
1023 #define RW_LOCK_INITIALIZER(name) FSSH_RW_LOCK_INITIALIZER(name)
1025 #define recursive_lock_init fssh_recursive_lock_init
1026 #define recursive_lock_init_etc fssh_recursive_lock_init_etc
1027 #define recursive_lock_destroy fssh_recursive_lock_destroy
1028 #define recursive_lock_lock fssh_recursive_lock_lock
1029 #define recursive_lock_trylock fssh_recursive_lock_trylock
1030 #define recursive_lock_unlock fssh_recursive_lock_unlock
1031 #define recursive_lock_get_recursion fssh_recursive_lock_get_recursion
1032 #define recursive_lock_transfer_lock fssh_recursive_lock_transfer_lock
1034 #define rw_lock_init fssh_rw_lock_init
1035 #define rw_lock_init_etc fssh_rw_lock_init_etc
1036 #define rw_lock_destroy fssh_rw_lock_destroy
1037 #define rw_lock_read_lock fssh_rw_lock_read_lock
1038 #define rw_lock_read_unlock fssh_rw_lock_read_unlock
1039 #define rw_lock_write_lock fssh_rw_lock_write_lock
1040 #define rw_lock_write_unlock fssh_rw_lock_write_unlock
1042 #define mutex_init fssh_mutex_init
1043 #define mutex_init_etc fssh_mutex_init_etc
1044 #define mutex_destroy fssh_mutex_destroy
1045 #define mutex_lock fssh_mutex_lock
1046 #define mutex_trylock fssh_mutex_trylock
1047 #define mutex_unlock fssh_mutex_unlock
1048 #define mutex_transfer_lock fssh_mutex_transfer_lock
1051 ////////////////////////////////////////////////////////////////////////////////
1052 // #pragma mark - fssh_module.h
1054 #define module_info fssh_module_info
1056 /* module standard operations */
1057 #define B_MODULE_INIT FSSH_B_MODULE_INIT
1058 #define B_MODULE_UNINIT FSSH_B_MODULE_UNINIT
1061 #define B_KEEP_LOADED FSSH_B_KEEP_LOADED
1064 #define module_dependency fssh_module_dependency
1067 ////////////////////////////////////////////////////////////////////////////////
1068 // #pragma mark - fssh_node_monitor.h
1070 #define B_STOP_WATCHING FSSH_B_STOP_WATCHING
1071 #define B_WATCH_NAME FSSH_B_WATCH_NAME
1072 #define B_WATCH_STAT FSSH_B_WATCH_STAT
1073 #define B_WATCH_ATTR FSSH_B_WATCH_ATTR
1074 #define B_WATCH_DIRECTORY FSSH_B_WATCH_DIRECTORY
1075 #define B_WATCH_ALL FSSH_B_WATCH_ALL
1076 #define B_WATCH_MOUNT FSSH_B_WATCH_MOUNT
1077 #define B_WATCH_INTERIM_STAT FSSH_B_WATCH_INTERIM_STAT
1079 #define B_ENTRY_CREATED FSSH_B_ENTRY_CREATED
1080 #define B_ENTRY_REMOVED FSSH_B_ENTRY_REMOVED
1081 #define B_ENTRY_MOVED FSSH_B_ENTRY_MOVED
1082 #define B_STAT_CHANGED FSSH_B_STAT_CHANGED
1083 #define B_ATTR_CHANGED FSSH_B_ATTR_CHANGED
1084 #define B_DEVICE_MOUNTED FSSH_B_DEVICE_MOUNTED
1085 #define B_DEVICE_UNMOUNTED FSSH_B_DEVICE_UNMOUNTED
1087 #define B_ATTR_CREATED FSSH_B_ATTR_CREATED
1088 #define B_ATTR_REMOVED FSSH_B_ATTR_REMOVED
1090 #define B_STAT_MODE FSSH_B_STAT_MODE
1091 #define B_STAT_UID FSSH_B_STAT_UID
1092 #define B_STAT_GID FSSH_B_STAT_GID
1093 #define B_STAT_SIZE FSSH_B_STAT_SIZE
1094 #define B_STAT_ACCESS_TIME FSSH_B_STAT_ACCESS_TIME
1095 #define B_STAT_MODIFICATION_TIME FSSH_B_STAT_MODIFICATION_TIME
1096 #define B_STAT_CREATION_TIME FSSH_B_STAT_CREATION_TIME
1097 #define B_STAT_CHANGE_TIME FSSH_B_STAT_CHANGE_TIME
1098 #define B_STAT_INTERIM_UPDATE FSSH_B_STAT_INTERIM_UPDATE
1101 ////////////////////////////////////////////////////////////////////////////////
1102 // #pragma mark - fssh_os.h
1104 /* System constants */
1106 #define B_OS_NAME_LENGTH FSSH_B_OS_NAME_LENGTH
1107 #define B_PAGE_SIZE FSSH_B_PAGE_SIZE
1108 #define B_INFINITE_TIMEOUT FSSH_B_INFINITE_TIMEOUT
1113 #define area_id fssh_area_id
1114 #define port_id fssh_port_id
1115 #define sem_id fssh_sem_id
1116 #define team_id fssh_team_id
1117 #define thread_id fssh_thread_id
1122 #define sem_info fssh_sem_info
1124 /* semaphore flags */
1125 #define B_CAN_INTERRUPT FSSH_B_CAN_INTERRUPT
1126 #define B_CHECK_PERMISSION FSSH_B_CHECK_PERMISSION
1127 #define B_KILL_CAN_INTERRUPT FSSH_B_KILL_CAN_INTERRUPT
1129 #define B_DO_NOT_RESCHEDULE FSSH_B_DO_NOT_RESCHEDULE
1130 #define B_RELEASE_ALL FSSH_B_RELEASE_ALL
1131 #define B_RELEASE_IF_WAITING_ONLY FSSH_B_RELEASE_IF_WAITING_ONLY
1133 #define create_sem fssh_create_sem
1134 #define delete_sem fssh_delete_sem
1135 #define acquire_sem fssh_acquire_sem
1136 #define acquire_sem_etc fssh_acquire_sem_etc
1137 #define release_sem fssh_release_sem
1138 #define release_sem_etc fssh_release_sem_etc
1139 #define get_sem_count fssh_get_sem_count
1140 #define set_sem_owner fssh_set_sem_owner
1142 #define get_sem_info(sem, info) fssh_get_sem_info(sem, info)
1143 #define get_next_sem_info(team, cookie, info) fssh_get_next_sem_info(team, cookie, info)
1145 #define B_TIMEOUT FSSH_B_TIMEOUT
1146 #define B_RELATIVE_TIMEOUT FSSH_B_RELATIVE_TIMEOUT
1147 #define B_ABSOLUTE_TIMEOUT FSSH_B_ABSOLUTE_TIMEOUT
1152 #define B_CURRENT_TEAM FSSH_B_CURRENT_TEAM
1153 #define B_SYSTEM_TEAM FSSH_B_SYSTEM_TEAM
1158 #define B_THREAD_RUNNING FSSH_B_THREAD_RUNNING
1159 #define B_THREAD_READY FSSH_B_THREAD_READY
1160 #define B_THREAD_RECEIVING FSSH_B_THREAD_RECEIVING
1161 #define B_THREAD_ASLEEP FSSH_B_THREAD_ASLEEP
1162 #define B_THREAD_SUSPENDED FSSH_B_THREAD_SUSPENDED
1163 #define B_THREAD_WAITING FSSH_B_THREAD_WAITING
1165 #define thread_state fssh_thread_state
1166 #define thread_info fssh_thread_info
1168 #define B_IDLE_PRIORITY FSSH_B_IDLE_PRIORITY
1169 #define B_LOWEST_ACTIVE_PRIORITY FSSH_B_LOWEST_ACTIVE_PRIORITY
1170 #define B_LOW_PRIORITY FSSH_B_LOW_PRIORITY
1171 #define B_NORMAL_PRIORITY FSSH_B_NORMAL_PRIORITY
1172 #define B_DISPLAY_PRIORITY FSSH_B_DISPLAY_PRIORITY
1173 #define B_URGENT_DISPLAY_PRIORITY FSSH_B_URGENT_DISPLAY_PRIORITY
1174 #define B_REAL_TIME_DISPLAY_PRIORITY FSSH_B_REAL_TIME_DISPLAY_PRIORITY
1175 #define B_URGENT_PRIORITY FSSH_B_URGENT_PRIORITY
1176 #define B_REAL_TIME_PRIORITY FSSH_B_REAL_TIME_PRIORITY
1178 #define B_FIRST_REAL_TIME_PRIORITY FSSH_B_FIRST_REAL_TIME_PRIORITY
1179 #define B_MIN_PRIORITY FSSH_B_MIN_PRIORITY
1180 #define B_MAX_PRIORITY FSSH_B_MAX_PRIORITY
1182 #define B_SYSTEM_TIMEBASE FSSH_B_SYSTEM_TIMEBASE
1184 #define thread_func fssh_thread_func
1185 #define thread_entry fssh_thread_entry
1187 #define spawn_thread fssh_spawn_thread
1188 #define kill_thread fssh_kill_thread
1189 #define resume_thread fssh_resume_thread
1190 #define suspend_thread fssh_suspend_thread
1192 #define rename_thread fssh_rename_thread
1193 #define set_thread_priority fssh_set_thread_priority
1194 #define exit_thread fssh_exit_thread
1195 #define wait_for_thread fssh_wait_for_thread
1196 #define on_exit_thread fssh_on_exit_thread
1198 #define find_thread fssh_find_thread
1200 #define send_data fssh_send_data
1201 #define receive_data fssh_receive_data
1202 #define has_data fssh_has_data
1204 #define snooze fssh_snooze
1205 #define snooze_etc fssh_snooze_etc
1206 #define snooze_until fssh_snooze_until
1208 #define get_thread_info(id, info) fssh_get_thread_info(id, info)
1209 #define get_next_thread_info(team, cookie, info) fssh_get_next_thread_info(team, cookie, info)
1214 #define real_time_clock fssh_real_time_clock
1215 #define set_real_time_clock fssh_set_real_time_clock
1216 #define real_time_clock_usecs fssh_real_time_clock_usecs
1217 #define set_timezone fssh_set_timezone
1218 #define system_time fssh_system_time
1221 ////////////////////////////////////////////////////////////////////////////////
1222 // #pragma mark - fssh_stat.h
1224 #define stat fssh_stat
1226 // struct stat fields
1242 #define st_dev fssh_st_dev
1243 #define st_ino fssh_st_ino
1244 #define st_mode fssh_st_mode
1245 #define st_nlink fssh_st_nlink
1246 #define st_uid fssh_st_uid
1247 #define st_gid fssh_st_gid
1248 #define st_size fssh_st_size
1249 #define st_rdev fssh_st_rdev
1250 #define st_blksize fssh_st_blksize
1251 #define st_atim fssh_st_atim
1252 #define st_mtim fssh_st_mtim
1253 #define st_ctim fssh_st_ctim
1254 #define st_crtim fssh_st_crtim
1255 #define st_atime fssh_st_atime
1256 #define st_mtime fssh_st_mtime
1257 #define st_ctime fssh_st_ctime
1258 #define st_crtime fssh_st_crtime
1259 #define st_type fssh_st_type
1260 #define st_blocks fssh_st_blocks
1262 /* extended file types */
1263 #define S_ATTR_DIR FSSH_S_ATTR_DIR
1264 #define S_ATTR FSSH_S_ATTR
1265 #define S_INDEX_DIR FSSH_S_INDEX_DIR
1266 #define S_STR_INDEX FSSH_S_STR_INDEX
1267 #define S_INT_INDEX FSSH_S_INT_INDEX
1268 #define S_UINT_INDEX FSSH_S_UINT_INDEX
1269 #define S_LONG_LONG_INDEX FSSH_S_LONG_LONG_INDEX
1270 #define S_ULONG_LONG_INDEX FSSH_S_ULONG_LONG_INDEX
1271 #define S_FLOAT_INDEX FSSH_S_FLOAT_INDEX
1272 #define S_DOUBLE_INDEX FSSH_S_DOUBLE_INDEX
1273 #define S_ALLOW_DUPS FSSH_S_ALLOW_DUPS
1276 #define S_LINK_SELF_HEALING FSSH_S_LINK_SELF_HEALING
1277 #define S_LINK_AUTO_DELETE FSSH_S_LINK_AUTO_DELETE
1279 /* standard file types */
1280 #define S_IFMT FSSH_S_IFMT
1281 #define S_IFSOCK FSSH_S_IFSOCK
1282 #define S_IFLNK FSSH_S_IFLNK
1283 #define S_IFREG FSSH_S_IFREG
1284 #define S_IFBLK FSSH_S_IFBLK
1285 #define S_IFDIR FSSH_S_IFDIR
1286 #define S_IFCHR FSSH_S_IFCHR
1287 #define S_IFIFO FSSH_S_IFIFO
1289 #define S_ISREG(mode) FSSH_S_ISREG(mode)
1290 #define S_ISLNK(mode) FSSH_S_ISLNK(mode)
1291 #define S_ISBLK(mode) FSSH_S_ISBLK(mode)
1292 #define S_ISDIR(mode) FSSH_S_ISDIR(mode)
1293 #define S_ISCHR(mode) FSSH_S_ISCHR(mode)
1294 #define S_ISFIFO(mode) FSSH_S_ISFIFO(mode)
1295 #define S_ISINDEX(mode) FSSH_S_ISINDEX(mode)
1297 #define S_IUMSK FSSH_S_IUMSK
1299 #define S_ISUID FSSH_S_ISUID
1300 #define S_ISGID FSSH_S_ISGID
1302 #define S_ISVTX FSSH_S_ISVTX
1304 #define S_IRWXU FSSH_S_IRWXU
1305 #define S_IRUSR FSSH_S_IRUSR
1306 #define S_IWUSR FSSH_S_IWUSR
1307 #define S_IXUSR FSSH_S_IXUSR
1308 #define S_IRWXG FSSH_S_IRWXG
1309 #define S_IRGRP FSSH_S_IRGRP
1310 #define S_IWGRP FSSH_S_IWGRP
1311 #define S_IXGRP FSSH_S_IXGRP
1312 #define S_IRWXO FSSH_S_IRWXO
1313 #define S_IROTH FSSH_S_IROTH
1314 #define S_IWOTH FSSH_S_IWOTH
1315 #define S_IXOTH FSSH_S_IXOTH
1317 #define ACCESSPERMS FSSH_ACCESSPERMS
1318 #define ALLPERMS FSSH_ALLPERMS
1319 #define DEFFILEMODE FSSH_DEFFILEMODE
1321 #define chmod fssh_chmod
1322 #define fchmod fssh_fchmod
1323 #define mkdir fssh_mkdir
1324 #define mkfifo fssh_mkfifo
1325 #define umask fssh_umask
1327 //#define stat fssh_stat
1328 // Already mapped above for "struct stat".
1329 #define fstat fssh_fstat
1330 #define lstat fssh_lstat
1333 ////////////////////////////////////////////////////////////////////////////////
1334 // #pragma mark - fssh_stdio.h
1336 #define EOF FSSH_EOF
1338 /* file operations */
1339 #define remove fssh_remove
1340 #define rename fssh_rename
1343 #define sprintf fssh_sprintf
1344 #define snprintf fssh_snprintf
1345 #define vsprintf fssh_vsprintf
1346 #define vsnprintf fssh_vsnprintf
1348 #define sscanf fssh_sscanf
1349 #define vsscanf fssh_vsscanf
1352 ////////////////////////////////////////////////////////////////////////////////
1353 // #pragma mark - fssh_string.h
1355 /* memXXX() functions */
1356 #define memchr fssh_memchr
1357 #define memcmp fssh_memcmp
1358 #define memcpy fssh_memcpy
1359 #define memccpy fssh_memccpy
1360 #define memmove fssh_memmove
1361 #define memset fssh_memset
1363 /* string functions */
1364 #define strcpy fssh_strcpy
1365 #define strncpy fssh_strncpy
1366 #define strcat fssh_strcat
1367 #define strncat fssh_strncat
1368 #define strlen fssh_strlen
1369 #define strcmp fssh_strcmp
1370 #define strncmp fssh_strncmp
1371 #define strchr fssh_strchr
1372 #define strrchr fssh_strrchr
1373 #define strstr fssh_strstr
1374 #define strchrnul fssh_strchrnul
1375 #define strpbrk fssh_strpbrk
1376 #define strtok fssh_strtok
1377 #define strtok_r fssh_strtok_r
1378 #define strspn fssh_strspn
1379 #define strcspn fssh_strcspn
1380 #define strcoll fssh_strcoll
1381 #define strxfrm fssh_strxfrm
1382 #define strerror fssh_strerror
1383 #define strerror_r fssh_strerror_r
1385 /* non-standard string functions */
1386 #define strcasecmp fssh_strcasecmp
1387 #define strncasecmp fssh_strncasecmp
1388 #define strcasestr fssh_strcasestr
1389 #define strdup fssh_strdup
1390 #define stpcpy fssh_stpcpy
1391 #define strtcopy fssh_strtcopy
1392 #define strlcat fssh_strlcat
1393 #define strlcpy fssh_strlcpy
1394 #define strnlen fssh_strnlen
1396 #define ffs fssh_ffs
1397 #define index fssh_index
1398 #define rindex fssh_rindex
1401 ////////////////////////////////////////////////////////////////////////////////
1402 // #pragma mark - fssh_time.h
1404 #define clock_t fssh_clock_t
1405 #define time_t fssh_time_t
1406 #define suseconds_t fssh_suseconds_t
1407 #define useconds_t fssh_useconds_t
1409 #undef CLOCKS_PER_SEC
1413 #define CLOCKS_PER_SEC FSSH_CLOCKS_PER_SEC
1414 #define CLK_TCK FSSH_CLK_TCK
1415 #define MAX_TIMESTR FSSH_MAX_TIMESTR
1417 #define timespec fssh_timespec
1418 #define itimerspec fssh_itimerspec
1421 /* special timezone support */
1422 #define tzname fssh_tzname
1423 #define daylight fssh_daylight
1424 #define timezone fssh_timezone
1426 #define clock fssh_clock
1427 #define difftime fssh_difftime
1428 #define mktime fssh_mktime
1429 #define time fssh_time
1430 #define asctime fssh_asctime
1431 #define asctime_r fssh_asctime_r
1432 #define ctime fssh_ctime
1433 #define ctime_r fssh_ctime_r
1434 #define gmtime fssh_gmtime
1435 #define gmtime_r fssh_gmtime_r
1436 #define localtime fssh_localtime
1437 #define localtime_r fssh_localtime_r
1438 #define strftime fssh_strftime
1439 #define strptime fssh_strptime
1441 /* special timezone support */
1442 #define tzset fssh_tzset
1443 #define stime fssh_stime
1446 ////////////////////////////////////////////////////////////////////////////////
1447 // #pragma mark - fssh_type_constants.h
1449 #define B_ANY_TYPE FSSH_B_ANY_TYPE
1450 #define B_ATOM_TYPE FSSH_B_ATOM_TYPE
1451 #define B_ATOMREF_TYPE FSSH_B_ATOMREF_TYPE
1452 #define B_BOOL_TYPE FSSH_B_BOOL_TYPE
1453 #define B_CHAR_TYPE FSSH_B_CHAR_TYPE
1454 #define B_COLOR_8_BIT_TYPE FSSH_B_COLOR_8_BIT_TYPE
1455 #define B_DOUBLE_TYPE FSSH_B_DOUBLE_TYPE
1456 #define B_FLOAT_TYPE FSSH_B_FLOAT_TYPE
1457 #define B_GRAYSCALE_8_BIT_TYPE FSSH_B_GRAYSCALE_8_BIT_TYPE
1458 #define B_INT16_TYPE FSSH_B_INT16_TYPE
1459 #define B_INT32_TYPE FSSH_B_INT32_TYPE
1460 #define B_INT64_TYPE FSSH_B_INT64_TYPE
1461 #define B_INT8_TYPE FSSH_B_INT8_TYPE
1462 #define B_LARGE_ICON_TYPE FSSH_B_LARGE_ICON_TYPE
1463 #define B_MEDIA_PARAMETER_GROUP_TYPE FSSH_B_MEDIA_PARAMETER_GROUP_TYPE
1464 #define B_MEDIA_PARAMETER_TYPE FSSH_B_MEDIA_PARAMETER_TYPE
1465 #define B_MEDIA_PARAMETER_WEB_TYPE FSSH_B_MEDIA_PARAMETER_WEB_TYPE
1466 #define B_MESSAGE_TYPE FSSH_B_MESSAGE_TYPE
1467 #define B_MESSENGER_TYPE FSSH_B_MESSENGER_TYPE
1468 #define B_MIME_TYPE FSSH_B_MIME_TYPE
1469 #define B_MINI_ICON_TYPE FSSH_B_MINI_ICON_TYPE
1470 #define B_MONOCHROME_1_BIT_TYPE FSSH_B_MONOCHROME_1_BIT_TYPE
1471 #define B_OBJECT_TYPE FSSH_B_OBJECT_TYPE
1472 #define B_OFF_T_TYPE FSSH_B_OFF_T_TYPE
1473 #define B_PATTERN_TYPE FSSH_B_PATTERN_TYPE
1474 #define B_POINTER_TYPE FSSH_B_POINTER_TYPE
1475 #define B_POINT_TYPE FSSH_B_POINT_TYPE
1476 #define B_PROPERTY_INFO_TYPE FSSH_B_PROPERTY_INFO_TYPE
1477 #define B_RAW_TYPE FSSH_B_RAW_TYPE
1478 #define B_RECT_TYPE FSSH_B_RECT_TYPE
1479 #define B_REF_TYPE FSSH_B_REF_TYPE
1480 #define B_RGB_32_BIT_TYPE FSSH_B_RGB_32_BIT_TYPE
1481 #define B_RGB_COLOR_TYPE FSSH_B_RGB_COLOR_TYPE
1482 #define B_SIZE_T_TYPE FSSH_B_SIZE_T_TYPE
1483 #define B_SSIZE_T_TYPE FSSH_B_SSIZE_T_TYPE
1484 #define B_STRING_TYPE FSSH_B_STRING_TYPE
1485 #define B_TIME_TYPE FSSH_B_TIME_TYPE
1486 #define B_UINT16_TYPE FSSH_B_UINT16_TYPE
1487 #define B_UINT32_TYPE FSSH_B_UINT32_TYPE
1488 #define B_UINT64_TYPE FSSH_B_UINT64_TYPE
1489 #define B_UINT8_TYPE FSSH_B_UINT8_TYPE
1490 #define B_VECTOR_ICON_TYPE FSSH_B_VECTOR_ICON_TYPE
1491 #define B_ASCII_TYPE FSSH_B_ASCII_TYPE
1492 #define B_XATTR_TYPE FSSH_B_XATTR_TYPE
1493 #define B_NETWORK_ADDRESS_TYPE FSSH_B_NETWORK_ADDRESS_TYPE
1494 #define B_MIME_STRING_TYPE FSSH_B_MIME_STRING_TYPE
1496 //----- System-wide MIME types for handling URL's ------------------------------
1498 #define B_URL_HTTP FSSH_B_URL_HTTP
1499 #define B_URL_HTTPS FSSH_B_URL_HTTPS
1500 #define B_URL_FTP FSSH_B_URL_FTP
1501 #define B_URL_GOPHER FSSH_B_URL_GOPHER
1502 #define B_URL_MAILTO FSSH_B_URL_MAILTO
1503 #define B_URL_NEWS FSSH_B_URL_NEWS
1504 #define B_URL_NNTP FSSH_B_URL_NNTP
1505 #define B_URL_TELNET FSSH_B_URL_TELNET
1506 #define B_URL_RLOGIN FSSH_B_URL_RLOGIN
1507 #define B_URL_TN3270 FSSH_B_URL_TN3270
1508 #define B_URL_WAIS FSSH_B_URL_WAIS
1509 #define B_URL_FILE FSSH_B_URL_FILE
1512 ////////////////////////////////////////////////////////////////////////////////
1513 // #pragma mark - fssh_types.h
1515 #define addr_t fssh_addr_t
1516 #define phys_addr_t fssh_phys_addr_t
1517 #define phys_size_t fssh_phys_size_t
1518 #define generic_addr_t fssh_generic_addr_t
1519 #define generic_size_t fssh_generic_size_t
1521 #define dev_t fssh_dev_t
1522 #define ino_t fssh_ino_t
1524 #define size_t fssh_size_t
1525 #define ssize_t fssh_ssize_t
1526 #define off_t fssh_off_t
1528 #define bigtime_t fssh_bigtime_t
1530 #define status_t fssh_status_t
1531 #define type_code fssh_type_code
1533 #define mode_t fssh_mode_t
1534 #define nlink_t fssh_nlink_t
1535 #define uid_t fssh_uid_t
1536 #define gid_t fssh_gid_t
1537 #define pid_t fssh_pid_t
1539 /* printf()/scanf() format strings for [u]int* types */
1540 #define B_PRId8 FSSH_B_PRId8
1541 #define B_PRIi8 FSSH_B_PRIi8
1542 #define B_PRId16 FSSH_B_PRId16
1543 #define B_PRIi16 FSSH_B_PRIi16
1544 #define B_PRId32 FSSH_B_PRId32
1545 #define B_PRIi32 FSSH_B_PRIi32
1546 #define B_PRId64 FSSH_B_PRId64
1547 #define B_PRIi64 FSSH_B_PRIi64
1548 #define B_PRIu8 FSSH_B_PRIu8
1549 #define B_PRIo8 FSSH_B_PRIo8
1550 #define B_PRIx8 FSSH_B_PRIx8
1551 #define B_PRIX8 FSSH_B_PRIX8
1552 #define B_PRIu16 FSSH_B_PRIu16
1553 #define B_PRIo16 FSSH_B_PRIo16
1554 #define B_PRIx16 FSSH_B_PRIx16
1555 #define B_PRIX16 FSSH_B_PRIX16
1556 #define B_PRIu32 FSSH_B_PRIu32
1557 #define B_PRIo32 FSSH_B_PRIo32
1558 #define B_PRIx32 FSSH_B_PRIx32
1559 #define B_PRIX32 FSSH_B_PRIX32
1560 #define B_PRIu64 FSSH_B_PRIu64
1561 #define B_PRIo64 FSSH_B_PRIo64
1562 #define B_PRIx64 FSSH_B_PRIx64
1563 #define B_PRIX64 FSSH_B_PRIX64
1565 #define B_SCNd8 FSSH_B_SCNd8
1566 #define B_SCNi8 FSSH_B_SCNi8
1567 #define B_SCNd16 FSSH_B_SCNd16
1568 #define B_SCNi16 FSSH_B_SCNi16
1569 #define B_SCNd32 FSSH_B_SCNd32
1570 #define B_SCNi32 FSSH_B_SCNi32
1571 #define B_SCNd64 FSSH_B_SCNd64
1572 #define B_SCNi64 FSSH_B_SCNi64
1573 #define B_SCNu8 FSSH_B_SCNu8
1574 #define B_SCNo8 FSSH_B_SCNo8
1575 #define B_SCNx8 FSSH_B_SCNx8
1576 #define B_SCNu16 FSSH_B_SCNu16
1577 #define B_SCNu16 FSSH_B_SCNu16
1578 #define B_SCNx16 FSSH_B_SCNx16
1579 #define B_SCNu32 FSSH_B_SCNu32
1580 #define B_SCNo32 FSSH_B_SCNo32
1581 #define B_SCNx32 FSSH_B_SCNx32
1582 #define B_SCNu64 FSSH_B_SCNu64
1583 #define B_SCNo64 FSSH_B_SCNo64
1584 #define B_SCNx64 FSSH_B_SCNx64
1586 /* printf() format strings for some standard types */
1588 #define B_PRIuSIZE FSSH_B_PRIuSIZE
1589 #define B_PRIoSIZE FSSH_B_PRIoSIZE
1590 #define B_PRIxSIZE FSSH_B_PRIxSIZE
1591 #define B_PRIXSIZE FSSH_B_PRIXSIZE
1593 #define B_PRIdSSIZE FSSH_B_PRIdSSIZE
1594 #define B_PRIiSSIZE FSSH_B_PRIiSSIZE
1596 #define B_PRIuADDR FSSH_B_PRIuADDR
1597 #define B_PRIoADDR FSSH_B_PRIoADDR
1598 #define B_PRIxADDR FSSH_B_PRIxADDR
1599 #define B_PRIXADDR FSSH_B_PRIXADDR
1601 #define B_PRIuPHYSADDR FSSH_B_PRIuPHYSADDR
1602 #define B_PRIoPHYSADDR FSSH_B_PRIoPHYSADDR
1603 #define B_PRIxPHYSADDR FSSH_B_PRIxPHYSADDR
1604 #define B_PRIXPHYSADDR FSSH_B_PRIXPHYSADDR
1605 /* generic_addr_t */
1606 #define B_PRIuGENADDR FSSH_B_PRIuGENADDR
1607 #define B_PRIoGENADDR FSSH_B_PRIoGENADDR
1608 #define B_PRIxGENADDR FSSH_B_PRIxGENADDR
1609 #define B_PRIXGENADDR FSSH_B_PRIXGENADDR
1611 #define B_PRIdOFF FSSH_B_PRIdOFF
1612 #define B_PRIiOFF FSSH_B_PRIiOFF
1614 #define B_PRIdDEV FSSH_B_PRIdDEV
1615 #define B_PRIiDEV FSSH_B_PRIiDEV
1617 #define B_PRIdINO FSSH_B_PRIdINO
1618 #define B_PRIiINO FSSH_B_PRIiINO
1620 #if defined(__i386__) && !defined(__x86_64__)
1621 # define B_PRIdTIME FSSH_B_PRId32
1622 # define B_PRIiTIME FSSH_B_PRIi32
1624 # define B_PRIdTIME FSSH_B_PRId64
1625 # define B_PRIiTIME FSSH_B_PRIi64
1629 ////////////////////////////////////////////////////////////////////////////////
1630 // #pragma mark - fssh_uio.h
1632 #define iovec fssh_iovec
1634 #define readv fssh_readv
1635 #define readv_pos fssh_readv_pos
1636 #define writev fssh_writev
1637 #define writev_pos fssh_writev_pos
1640 ////////////////////////////////////////////////////////////////////////////////
1641 // #pragma mark - fssh_unistd.h
1644 #define R_OK FSSH_R_OK
1645 #define W_OK FSSH_W_OK
1646 #define X_OK FSSH_X_OK
1647 #define F_OK FSSH_F_OK
1649 /* standard file descriptors */
1650 #define STDIN_FILENO FSSH_STDIN_FILENO
1651 #define STDOUT_FILENO FSSH_STDOUT_FILENO
1652 #define STDERR_FILENO FSSH_STDERR_FILENO
1654 /* lseek() constants */
1655 #define SEEK_SET FSSH_SEEK_SET
1656 #define SEEK_CUR FSSH_SEEK_CUR
1657 #define SEEK_END FSSH_SEEK_END
1659 /* file functions */
1660 #define access fssh_access
1662 #define chdir fssh_chdir
1663 #define fchdir fssh_fchdir
1664 #define getcwd fssh_getcwd
1666 #define dup fssh_dup
1667 #define dup2 fssh_dup2
1668 #define close fssh_close
1669 #define link fssh_link
1670 #define unlink fssh_unlink
1671 #define rmdir fssh_rmdir
1673 #define readlink fssh_readlink
1674 #define symlink fssh_symlink
1676 #define ftruncate fssh_ftruncate
1677 #define truncate fssh_truncate
1678 #define ioctl fssh_ioctl
1680 #define read fssh_read
1681 #define read_pos fssh_read_pos
1682 #define pread fssh_pread
1683 #define write fssh_write
1684 #define write_pos fssh_write_pos
1685 #define pwrite fssh_pwrite
1686 #define lseek fssh_lseek
1688 #define sync fssh_sync
1689 #define fsync fssh_fsync
1691 /* access permissions */
1692 #define getegid fssh_getegid
1693 #define geteuid fssh_geteuid
1694 #define getgid fssh_getgid
1695 #define getgroups fssh_getgroups
1696 #define getuid fssh_getuid
1699 ////////////////////////////////////////////////////////////////////////////////
1703 #define uint8 uint8_t
1704 #define int16 int16_t
1705 #define uint16 uint16_t
1706 #define int32 int32_t
1707 #define uint32 uint32_t
1708 #define int64 int64_t
1709 #define uint64 uint64_t
1711 #define vint32 vint32_t
1714 #endif // _FSSH_API_WRAPPER_H