diff --git a/headers/os/drivers/Drivers.h b/headers/os/drivers/Drivers.h index 3484dbfdf7..ff4e1e0071 100644 --- a/headers/os/drivers/Drivers.h +++ b/headers/os/drivers/Drivers.h @@ -1,5 +1,5 @@ /* - * Copyright 2002-2011, Haiku Inc. All Rights Reserved. + * Copyright 2002-2013, Haiku Inc. All Rights Reserved. * Distributed under the terms of the MIT License. */ #ifndef _DRIVERS_DRIVERS_H @@ -106,6 +106,7 @@ enum { B_GET_ICON_NAME, /* get an icon name identifier */ B_GET_VECTOR_ICON, /* retrieves the device's vector icon */ B_GET_DEVICE_NAME, /* get name, string buffer */ + B_TRIM_DEVICE, /* trims blocks, see fs_trim_data */ B_GET_NEXT_OPEN_DEVICE = 1000, /* obsolete, will be removed */ B_ADD_FIXED_DRIVER, /* obsolete, will be removed */ @@ -169,6 +170,14 @@ typedef struct { } device_icon; +/* B_TRIM_DEVICE data structure */ +typedef struct { + off_t offset; /* offset (in bytes) */ + off_t size; + off_t trimmed_size; /* filled on return */ +} fs_trim_data; + + #ifdef __cplusplus } #endif diff --git a/headers/private/fs_shell/fssh_api_wrapper.h b/headers/private/fs_shell/fssh_api_wrapper.h index edb40a9458..b0d9a3dcd4 100644 --- a/headers/private/fs_shell/fssh_api_wrapper.h +++ b/headers/private/fs_shell/fssh_api_wrapper.h @@ -435,6 +435,10 @@ #define B_SET_INTERRUPTABLE_IO FSSH_B_SET_INTERRUPTABLE_IO #define B_FLUSH_DRIVE_CACHE FSSH_B_FLUSH_DRIVE_CACHE #define B_GET_PATH_FOR_DEVICE FSSH_B_GET_PATH_FOR_DEVICE +#define B_GET_ICON_NAME FSSH_B_GET_ICON_NAME +#define B_GET_VECTOR_ICON FSSH_B_GET_VECTOR_ICON +#define B_GET_DEVICE_NAME FSSH_B_GET_DEVICE_NAME +#define B_TRIM_DEVICE FSSH_B_TRIM_DEVICE #define B_GET_NEXT_OPEN_DEVICE FSSH_B_GET_NEXT_OPEN_DEVICE #define B_ADD_FIXED_DRIVER FSSH_B_ADD_FIXED_DRIVER #define B_REMOVE_FIXED_DRIVER FSSH_B_REMOVE_FIXED_DRIVER @@ -462,6 +466,7 @@ #define driver_path fssh_driver_path #define open_device_iterator fssh_open_device_iterator #define device_icon fssh_device_icon +#define fs_trim_data fssh_fs_trim_data //////////////////////////////////////////////////////////////////////////////// diff --git a/headers/private/fs_shell/fssh_drivers.h b/headers/private/fs_shell/fssh_drivers.h index a4d25bbd08..aa63da35d7 100644 --- a/headers/private/fs_shell/fssh_drivers.h +++ b/headers/private/fs_shell/fssh_drivers.h @@ -60,7 +60,7 @@ fssh_status_t fssh_init_hardware(void); const char **fssh_publish_devices(void); fssh_device_hooks *fssh_find_device(const char *name); fssh_status_t fssh_init_driver(void); -void fssh_uninit_driver(void); +void fssh_uninit_driver(void); extern int32_t fssh_api_version; @@ -111,17 +111,20 @@ enum { /* B_DEV_MEDIA_CHANGE_REQUESTED: user */ /* pressed button on drive */ /* B_DEV_DOOR_OPEN: door open */ - + FSSH_B_LOAD_MEDIA, /* load the media if supported */ - + FSSH_B_GET_BIOS_DRIVE_ID, /* get bios id for this device */ FSSH_B_SET_UNINTERRUPTABLE_IO, /* prevent cntl-C from interrupting i/o */ FSSH_B_SET_INTERRUPTABLE_IO, /* allow cntl-C to interrupt i/o */ FSSH_B_FLUSH_DRIVE_CACHE, /* flush drive cache */ - FSSH_B_GET_PATH_FOR_DEVICE, /* get the absolute path of the device */ + FSSH_B_GET_ICON_NAME, /* get an icon name identifier */ + FSSH_B_GET_VECTOR_ICON, /* retrieves the device's vector icon */ + FSSH_B_GET_DEVICE_NAME, /* get name, string buffer */ + FSSH_B_TRIM_DEVICE, /* trims blocks, see fs_trim_data */ FSSH_B_GET_NEXT_OPEN_DEVICE = 1000, /* iterate through open devices */ FSSH_B_ADD_FIXED_DRIVER, /* private */ @@ -196,7 +199,7 @@ typedef char fssh_driver_path[256]; typedef struct { uint32_t cookie; /* must be set to 0 before iterating */ - char device[256]; /* device path */ + char device[256]; /* device path */ } fssh_open_device_iterator; @@ -210,6 +213,14 @@ typedef struct { } fssh_device_icon; +/* B_TRIM_DEVICE data structure */ +typedef struct { + fssh_off_t offset; /* offset (in bytes) */ + fssh_off_t size; + fssh_off_t trimmed_size; /* filled on return */ +} fssh_fs_trim_data; + + #ifdef __cplusplus } #endif