| disk(4) | Device Drivers Manual | disk(4) |
disk — common disk
interfaces
device cd
Common block device IOCTLs
All the block devices in the system should support these disk ioctl(2) commands defined here. Much of this information is also available via the geom(2) attributes.
The following ioctl(2) calls apply to disk
drives, and are defined in the
<sys/disk.h> header
file.
DIOCGSECTORSIZEu_int) Get the sector or block size of the device
in bytes. The sector size is the smallest unit of data which can be
transferred from this device. This is usually a power of 2 but it might
not be (e.g. CDROM audio). Operations to block devices such as
lseek(2), read(2), and
write(2) may only be performed at file offsets that are
integral multiple of this size.DIOCGMEDIASIZEoff_t) Get the size of the entire device in
bytes. This should be a multiple of the sector size.DIOCGFWSECTORSu_int) Return the firmware's notion of number of
sectors per track. This value is mostly used for compatibility with
various ill designed disk label formats. Use this value only when
absolutely required. Its interpretation and use is largely obsolete.DIOCGFWHEADSu_int) Return the firmware's notion of number of
heads per cylinder. This value is mostly used for compatibility with
various ill designed disk label formats. Use this value only when
absolutely required. Its interpretation and use is largely obsolete.DIOCGFLUSHDIOCGDELETEoff_t[2]) Mark data on the device as unused. The
first element is the offset to start deleting. The second element is the
length to delete. Providers may use this information to free storage or
instruct storage devices the contents can be discarded.DIOCGIDENTchar[DISK_IDENT_SIZE]) Get the ident for this
provider. Ident is a unique and fixed identifier for this provider.
Ident's properties are as follow:
DIOCGPROVIDERNAMEchar[MAXPATHLEN]) Store the provider name for the
device in a buffer. The buffer must be at least MAXPATHLEN bytes
long.DIOCGSTRIPESIZEoff_t) Get the size of the device's optimal
access block in bytes. This should be a multiple of the sector size.DIOCGSTRIPEOFFSEToff_t) Get the offset of the first device's
optimal access block in bytes. This should be a multiple of the sector
size.DIOCGPHYSPATHchar[MAXPATHLEN]) Get a string defining the
physical path for a given provider. This has similar rules to ident, but
is intended to uniquely identify the physical location of the device, not
the current occupant of that location. The buffer must be at least
MAXPATHLEN bytes long.DIOCGATTRstruct diocgattr_arg)
struct diocgattr_arg {
char name[64];
int len;
union {
char str[DISK_IDENT_SIZE];
off_t off;
int i;
uint16_t u16;
} value;
};
DIOCZONECMDstruct disk_zone_arg) Send disk zone
commands.DIOCSKERNELDUMPstruct diocskerneldump_arg) Enable/Disable the
device for kernel core dumps.DIOCGKERNELDUMPstruct diocskerneldump_arg) Get current kernel
netdump configuration details for a given index.
/*
* Sentinel values for kda_index.
*
* If kda_index is KDA_REMOVE_ALL, all dump configurations are cleared.
*
* If kda_index is KDA_REMOVE_DEV, all dump configurations for the specified
* device are cleared.
*
* If kda_index is KDA_REMOVE, only the specified dump configuration for the
* given device is removed from the list of fallback dump configurations.
*
* If kda_index is KDA_APPEND, the dump configuration is added after all
* existing dump configurations.
*
* Otherwise, the new configuration is inserted into the fallback dump list at
* index 'kda_index'.
*/
#define KDA_REMOVE UINT8_MAX
#define KDA_REMOVE_ALL (UINT8_MAX - 1)
#define KDA_REMOVE_DEV (UINT8_MAX - 2)
#define KDA_APPEND (UINT8_MAX - 3)
struct diocskerneldump_arg {
uint8_t kda_index;
uint8_t kda_compression;
uint8_t kda_encryption;
uint8_t kda_key[KERNELDUMP_KEY_MAX_SIZE];
uint32_t kda_encryptedkeysize;
uint8_t *kda_encryptedkey;
char kda_iface[IFNAMSIZ];
union kd_ip kda_server;
union kd_ip kda_client;
union kd_ip kda_gateway;
uint8_t kda_af;
};
The manual page was written by M Warner
Losh
<imp@FreeBSD.org> from
text largely derived from
<sys/disk.h>.
| November 20, 2020 | FreeBSD 15.0 |