Small changes in the header, and implemented everything needed for scanning.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3480 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold
2003-06-11 22:04:34 +00:00
parent 1bf21e6a40
commit ac63679417
2 changed files with 169 additions and 11 deletions
@@ -9,6 +9,10 @@
#include <Drivers.h>
#ifdef __cplusplus
extern "C" {
#endif
// TODO: These don't belong here. partition_id and disk_job_id are
// public (exposed by the userland API), while disk_system_id is at least
// known to the userland API, but probably exposed as well, as type of a
@@ -53,10 +57,10 @@ typedef struct partitionable_space_data {
} partitionable_space_data;
// disk device locking
disk_device_data *write_lock_disk_device(partition_id partition);
void write_unlock_disk_device(partition_id partition);
disk_device_data *read_lock_disk_device(partition_id partition);
void read_unlock_disk_device(partition_id partition);
disk_device_data *write_lock_disk_device(partition_id partitionID);
void write_unlock_disk_device(partition_id partitionID);
disk_device_data *read_lock_disk_device(partition_id partitionID);
void read_unlock_disk_device(partition_id partitionID);
// parameter is the ID of any partition on the device
// getting disk devices/partitions by path
@@ -66,19 +70,19 @@ int32 find_partition(const char *path);
// disk device/partition read access
// (read lock required)
disk_device_data *get_disk_device(partition_id partition);
partition_data *get_partition(partition_id partition);
partition_data *get_parent_partition(partition_id partition);
partition_data *get_child_partition(partition_id partition, int32 index);
disk_device_data *get_disk_device(partition_id partitionID);
partition_data *get_partition(partition_id partitionID);
partition_data *get_parent_partition(partition_id partitionID);
partition_data *get_child_partition(partition_id partitionID, int32 index);
// partition write access
// (write lock required)
partition_data *create_child_partition(partition_id partition, int32 index,
partition_data *create_child_partition(partition_id partitionID, int32 index,
partition_id *childID);
// childID is used for the return value, but is also an optional input
// parameter -- -1 to be ignored
bool delete_partition(partition_id partition);
void partition_modified(partition_id partition);
bool delete_partition(partition_id partitionID);
void partition_modified(partition_id partitionID);
// tells the disk device manager, that the parition has been modified
// jobs
@@ -88,4 +92,8 @@ uint32 get_disk_device_job_status(disk_job_id job);
bool update_disk_device_job_progress(disk_job_id job, float progress);
bool update_disk_device_job_extra_progress(disk_job_id job, const char *info);
#ifdef __cplusplus
}
#endif
#endif // _DISK_DEVICE_MANAGER_H