13 Devices and their properties

Ironclad exposes a number of physical and virtual devices to userland. All of them are exposed under the /dev location, and support a series of standard operations, like being manipulated by the usual file-related syscalls like read or write, while sporting device-specific interfaces in the form of device-specific ioctl requests.

When querying device-specific information, Ironclad exposes information a bit different than other kernels like Linux. Here is a quick list of the most notable differences:

All devices in Ironclad have the ioctl call DEV_PARTUUID implemented, with the signature:

#define DEV_PARTUUID 0x9821

ioctl(fd, DEV_PARTUUID, &pointer_to_uuid); -- uuids being uint8_t[16];

This call will write the UUID of the device pointed to by fd. If all zeros, will mean that the device has no associated UUID. This UUID is the UUID of the partition, not of the FS, like, for example, the GPT’s partition UUID.