#include <stdint.h>
#include <stddef.h>
#include <audrv.h>
#include <drvctl.h>
Go to the source code of this file.
|
| AuDriver * | AuDriverOwnerOf (uint64_t addr) |
| | AuDriverOwnerOf – the loaded driver whose image contains addr.
|
| |
| AuDriver * | AuDriverFindByName (const char *name) |
| |
| int | AuDriverRef (AuDriver *drv) |
| |
| void | AuDriverUnref (AuDriver *drv) |
| |
| void | AuDriverTrack (AuDriver *drv, uint8_t kind, uint64_t value, uint64_t extra, uint64_t extra2) |
| |
| void | AuDriverUntrack (AuDriver *drv, uint8_t kind, uint64_t value) |
| |
| void | AuDriverUntrackAny (uint8_t kind, uint64_t value) |
| |
| void * | AuDriverImportOverride (const char *name) |
| |
| int | AuDriverLoadByName (const char *name) |
| | AuDriverLoadByName – (re)load a driver that is not currently loaded, then run its AuDriverMain. Returns 0 on success.
|
| |
| bool | AuDriverClaimsPci (int bus, int dev, int func) |
| |
| void | AuDriverCtlInitialize (void) |
| |
| int | AuDriverUnload (AuDriver *drv) |
| | AuDriverUnload – unload a running driver.
|
| |
| int | AuDriverUnloadByName (const char *name) |
| |
◆ AuResource
◆ AuResKind
Component model: runtime load/unload bookkeeping for loadable drivers.
A driver is a component with an explicit lifecycle: load -> AuDriverMain() -> [running, refcounted] -> AuDriverUnload() -> freed The kernel records what a driver acquires (IRQ handlers today) keyed by the caller's return address, so unloading releases everything even if the driver forgot to. Physical pages, MMIO and timers are tracked next.
| Enumerator |
|---|
| AU_RES_IRQ_SPI | |
| AU_RES_PHYS_PAGE | |
| AU_RES_PHYS_RUN | |
| AU_RES_MMIO | |
◆ AuDriverClaimsPci()
| bool AuDriverClaimsPci |
( |
int |
bus, |
|
|
int |
dev, |
|
|
int |
func |
|
) |
| |
|
extern |
◆ AuDriverCtlInitialize()
| void AuDriverCtlInitialize |
( |
void |
| ) |
|
|
extern |
◆ AuDriverFindByName()
| AuDriver * AuDriverFindByName |
( |
const char * |
name | ) |
|
|
extern |
◆ AuDriverImportOverride()
| void * AuDriverImportOverride |
( |
const char * |
name | ) |
|
|
extern |
◆ AuDriverLoadByName()
| int AuDriverLoadByName |
( |
const char * |
name | ) |
|
|
extern |
AuDriverLoadByName – (re)load a driver that is not currently loaded, then run its AuDriverMain. Returns 0 on success.
◆ AuDriverOwnerOf()
AuDriverOwnerOf – the loaded driver whose image contains addr.
◆ AuDriverRef()
◆ AuDriverTrack()
◆ AuDriverUnload()
AuDriverUnload – unload a running driver.
Order matters: ask the driver first (it may veto), then cut every kernel -> driver path BEFORE the image is unmapped: IRQ handlers are cleared and the driver's MMIO mappings removed. Physical pages the driver still owns are only REPORTED, never force-freed: the kernel may have taken them over without telling the ledger, and a leak is safe where a double free is not. Returns an AU_UNLOAD_* code.
◆ AuDriverUnloadByName()
| int AuDriverUnloadByName |
( |
const char * |
name | ) |
|
|
extern |
◆ AuDriverUnref()
◆ AuDriverUntrack()
◆ AuDriverUntrackAny()