|
Data Structures |
union | _DriverVariable |
struct | _DriverParam |
struct | _DriverItem |
struct | _Driver |
struct | _DriverContext |
Defines |
#define | DRIVER_ITEM_MAX_LENGTH (64) |
Typedefs |
typedef _DriverItem * | DriverItem |
typedef _Driver * | Driver |
typedef ErrorCode(* | DriverInitFunction )(Driver drv) |
typedef ErrorCode(* | DriverFinalFunction )(Driver drv) |
typedef enum _DriverParamType | DriverParamType |
typedef _DriverVariable | DriverVariable |
typedef _DriverParam * | DriverParam |
typedef DriverVariable(* | DriverItemHandlerFunction )(Driver driver, DriverVariable vars[]) |
typedef _DriverContext * | DriverContext |
Enumerations |
enum | _DriverParamType {
DriverParamVoid,
DriverParamCharacter,
DriverParamString,
DriverParamStringUtf,
DriverParamInteger64,
DriverParamInteger32,
DriverParamInteger16,
DriverParamInteger8,
DriverParamUnsignedInteger64,
DriverParamUnsignedInteger32,
DriverParamUnsignedInteger16,
DriverParamUnsignedInteger8,
DriverParamBoolean,
DriverParamPointer
} |
Functions |
ErrorCode | driverCreate (Driver *driver) |
ErrorCode | driverCreateFromObject (Driver *driver, Object object) |
ErrorCode | driverSetRoot (Driver driver, String loc, DriverItem root) |
ErrorCode | driverSetMetaData (Driver driver, String key, String value) |
ErrorCode | driverGetMessageQueue (Driver driver, MessageQueue *queue) |
ErrorCode | driverReserveIrq (Driver drv, uint32 irq) |
ErrorCode | driverReservePort (Driver drv, uint32 port) |
ErrorCode | driverReserveMemory (Driver drv, uint32 port) |
ErrorCode | driverReserveIrqRange (Driver drv, uint32 lowest, uint32 highest) |
ErrorCode | driverReservePortRange (Driver drv, uint32 lowest, uint32 highest) |
ErrorCode | driverReserveMemoryRange (Driver drv, uint32 lowest, uint32 highest) |
ErrorCode | driverDestroy (Driver *driver) |
ErrorCode | driverItemCreateFunction (DriverItem *dItem, String name, DriverParamType returnType, uint32 numParams, DriverParam params[], DriverItemHandlerFunction func) |
ErrorCode | driverItemCreateParameter (DriverItem *dItem, String name, DriverParamType type, DriverItemHandlerFunction getHandler, DriverItemHandlerFunction setHandler) |
ErrorCode | driverItemCreateNamespace (DriverItem *dItem, String name) |
ErrorCode | driverItemAdd (DriverItem root, DriverItem child) |
ErrorCode | driverParamCreate (DriverParam *param, String name, DriverParamType type) |
ErrorCode | driverParamDestroy (DriverParam *param) |
ErrorCode | driverManagerInit (void) |
ErrorCode | driverManagerFinal (void) |
ErrorCode | driverManagerAdd (Driver driver) |
ErrorCode | driverManagerRemove (Driver driver) |
ErrorCode | driverManagerShowTree (void) |
ErrorCode | driverContextCreate (DriverContext *dc, String url) |
ErrorCode | driverContextExecute (DriverContext dc, String url) |
ErrorCode | driverContextTraverse (DriverContext *to, DriverContext from, String url) |
ErrorCode | driverContextDestroy (DriverContext *dc) |
This specification must be general enough to allow easy use of the drivers both from a programmers perspective, and from a user's perspective (from the command prompt). Not only should the user have full control over every aspect of the driver, but it should be clean and easy to do so, like the following command lines: