Driver
Driver API
Driver Information Structure
typedef struct ethereal_driver_metadata {
char name[256]; // Driver name
char author[256]; // Author
} ethereal_driver_metadata_t;
typedef struct ethereal_driver {
pid_t id; // Driver ID
char filename[256]; // Exact filename of the driver
uintptr_t base; // Base address in memory
size_t size; // Size in memory
ethereal_driver_metadata_t metadata; // Exact metadata copy
} ethereal_driver_t;
ethereal_loadDriver
pid_t ethereal_loadDriver(char *filename, int priority, char **argv);
Load a new driver into the Hexahedron kernel.
Tries to load the driver at filename
with priority priority
and arguments argp
into the kernel.
On success, the driver ID is returned. On failure, an error is set
Root permission is required for this function.
ethereal_unloadDriver
int ethereal_unloadDriver(pid_t id);
Unload a driver from the Hexahedron kernel.
Root permission is required for this function.
ethereal_getDriver
ethereal_driver_t *ethereal_getDriver(pid_t id);
Get the corresponding driver for id
.
On success, the driver structure is returned. On failure, an error is set.
Root permission is required for this function.