Added the DDM syscalls.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9631 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold
2004-10-29 01:27:44 +00:00
parent c0e501e020
commit 2956802960
+165
View File
@@ -13,6 +13,8 @@
#include <image.h>
#include <sys/select.h>
#include <disk_device_manager/ddm_userland_interface.h>
#ifdef __cplusplus
extern "C" {
@@ -245,6 +247,169 @@ void _kern_debug_output(const char *message);
*/
//int sys_getdtablesize();
/* DDM syscalls */
// iterating, retrieving device/partition data
partition_id _kern_get_next_disk_device_id(int32 *cookie, size_t *neededSize);
partition_id _kern_find_disk_device(const char *filename, size_t *neededSize);
partition_id _kern_find_partition(const char *filename, size_t *neededSize);
status_t _kern_get_disk_device_data(partition_id deviceID, bool deviceOnly,
bool shadow, user_disk_device_data *buffer,
size_t bufferSize, size_t *neededSize);
partition_id _kern_register_file_device(const char *filename);
status_t _kern_unregister_file_device(partition_id deviceID,
const char *filename);
// Only a valid deviceID or filename need to be passed. The other one
// is -1/NULL. If both is given only filename is ignored.
// disk systems
status_t _kern_get_disk_system_info(disk_system_id id,
user_disk_system_info *info);
status_t _kern_get_next_disk_system_info(int32 *cookie,
user_disk_system_info *info);
status_t _kern_find_disk_system(const char *name, user_disk_system_info *info);
bool _kern_supports_defragmenting_partition(partition_id partitionID,
int32 changeCounter,
bool *whileMounted);
bool _kern_supports_repairing_partition(partition_id partitionID,
int32 changeCounter, bool checkOnly,
bool *whileMounted);
bool _kern_supports_resizing_partition(partition_id partitionID,
int32 changeCounter,
bool *canResizeContents,
bool *whileMounted);
bool _kern_supports_moving_partition(partition_id partitionID,
int32 changeCounter,
partition_id *unmovable,
partition_id *needUnmounting,
size_t bufferSize);
bool _kern_supports_setting_partition_name(partition_id partitionID,
int32 changeCounter);
bool _kern_supports_setting_partition_content_name(partition_id partitionID,
int32 changeCounter,
bool *whileMounted);
bool _kern_supports_setting_partition_type(partition_id partitionID,
int32 changeCounter);
bool _kern_supports_setting_partition_parameters(partition_id partitionID,
int32 changeCounter);
bool _kern_supports_setting_partition_content_parameters(
partition_id partitionID, int32 changeCounter, bool *whileMounted);
bool _kern_supports_initializing_partition(partition_id partitionID,
int32 changeCounter,
const char *diskSystemName);
bool _kern_supports_creating_child_partition(partition_id partitionID,
int32 changeCounter);
bool _kern_supports_deleting_child_partition(partition_id partitionID,
int32 changeCounter);
bool _kern_is_sub_disk_system_for(disk_system_id diskSystemID,
partition_id partitionID,
int32 changeCounter);
status_t _kern_validate_resize_partition(partition_id partitionID,
int32 changeCounter, off_t *size);
status_t _kern_validate_move_partition(partition_id partitionID,
int32 changeCounter, off_t *newOffset);
status_t _kern_validate_set_partition_name(partition_id partitionID,
int32 changeCounter, char *name);
status_t _kern_validate_set_partition_content_name(partition_id partitionID,
int32 changeCounter,
char *name);
status_t _kern_validate_set_partition_type(partition_id partitionID,
int32 changeCounter,
const char *type);
status_t _kern_validate_initialize_partition(partition_id partitionID,
int32 changeCounter,
const char *diskSystemName,
char *name,
const char *parameters,
size_t parametersSize);
status_t _kern_validate_create_child_partition(partition_id partitionID,
int32 changeCounter,
off_t *offset, off_t *size,
const char *type,
const char *parameters,
size_t parametersSize);
status_t _kern_get_partitionable_spaces(partition_id partitionID,
int32 changeCounter,
partitionable_space_data *buffer,
int32 count, int32 *actualCount);
status_t _kern_get_next_supported_partition_type(partition_id partitionID,
int32 changeCounter,
int32 *cookie, char *type);
status_t _kern_get_partition_type_for_content_type(disk_system_id diskSystemID,
const char *contentType,
char *type);
// disk device modification
status_t _kern_prepare_disk_device_modifications(partition_id deviceID);
status_t _kern_commit_disk_device_modifications(partition_id deviceID,
port_id port, int32 token,
bool completeProgress);
status_t _kern_cancel_disk_device_modifications(partition_id deviceID);
bool _kern_is_disk_device_modified(partition_id deviceID);
status_t _kern_defragment_partition(partition_id partitionID,
int32 changeCounter);
status_t _kern_repair_partition(partition_id partitionID, int32 changeCounter,
bool checkOnly);
status_t _kern_resize_partition(partition_id partitionID, int32 changeCounter,
off_t size);
status_t _kern_move_partition(partition_id partitionID, int32 changeCounter,
off_t newOffset);
status_t _kern_set_partition_name(partition_id partitionID,
int32 changeCounter, const char *name);
status_t _kern_set_partition_content_name(partition_id partitionID,
int32 changeCounter,
const char *name);
status_t _kern_set_partition_type(partition_id partitionID,
int32 changeCounter, const char *type);
status_t _kern_set_partition_parameters(partition_id partitionID,
int32 changeCounter,
const char *parameters,
size_t parametersSize);
status_t _kern_set_partition_content_parameters(partition_id partitionID,
int32 changeCounter,
const char *parameters,
size_t parametersSize);
status_t _kern_initialize_partition(partition_id partitionID,
int32 changeCounter,
const char *diskSystemName,
const char *name, const char *parameters,
size_t parametersSize);
status_t _kern_uninitialize_partition(partition_id partitionID,
int32 changeCounter);
status_t _kern_create_child_partition(partition_id partitionID,
int32 changeCounter, off_t offset,
off_t size, const char *type,
const char *parameters,
size_t parametersSize,
partition_id *childID);
status_t _kern_delete_partition(partition_id partitionID, int32 changeCounter);
// jobs
status_t _kern_get_next_disk_device_job_info(int32 *cookie,
user_disk_device_job_info *info);
status_t _kern_get_disk_device_job_info(disk_job_id id,
user_disk_device_job_info *info);
status_t _kern_get_disk_device_job_progress_info(disk_job_id id,
disk_device_job_progress_info *info);
status_t _kern_pause_disk_device_job(disk_job_id id);
status_t _kern_cancel_disk_device_job(disk_job_id id, bool reverse);
#if 0
// watching
status_t start_disk_device_watching(port_id, int32 token, uint32 flags);
status_t start_disk_device_job_watching(disk_job_id job, port_id, int32 token,
uint32 flags);
status_t stop_disk_device_watching(port_id, int32 token);
#endif // 0
// The end mark for gensyscallinfos.
#ifdef GEN_SYSCALL_INFOS_PROCESSING
#pragma syscalls end