XenevaOS
Loading...
Searching...
No Matches
core.h
Go to the documentation of this file.
1
32#ifndef __CORE_H__
33#define __CORE_H__
34
35#include <stdint.h>
36#include <aurora.h>
37
38/* core system with all device driver registration
39 * and data structures
40 */
41
42#define BORDOISILA_DRIVER_RES_CLK 0
43#define BORDOISILA_DRIVER_RES_GATE 1
44#define BORDOISILA_DRIVER_RES_POWER 2
45#define BORDOISILA_DRIVER_RES_REGULATOR 3
46#define BORDOISILA_DRIVER_RES_PIN 4
47#define BORDOISILA_DRIVER_RES_BUS 5
48
49#define BORDOISILA_DRIVER_ALREADY_REGISTERED -2
50
59
60#define B_DRIVER_STATE_PROBED 0
61#define B_DRIVER_STATE_FAILED 1
62#define B_DRIVER_STATE_UNBOUND 2
63
70
71
72typedef struct _bordoisila_driver_ {
73 const char* name;
74 const char* compat; //match list in DT/acpi bindings
78
79 /* Ops*/
80 int (*scan)(struct _bordoisila_driver_* dev);
81 int (*probe)(struct _bordoisila_driver_* dev);
82 int (*remove)(struct _bordoisila_driver_* dev);
83 int (*suspend)(struct _bordoisila_driver_* dev);
84 int (*resume)(struct _bordoisila_driver_* dev);
85
86 void* priv;
92
93
99
106
112
116extern void BordoisilaDriverProbeAll();
117
124
126
128
130
132
133
134#endif
#define AU_EXTERN
Definition aurora.h:55
#define AU_EXPORT
Definition aurora.h:41
unsigned char uint8_t
Definition acefiex.h:161
AU_EXTERN AU_EXPORT int BordoisilaDriverSuspend(BordoisilaDriver *driver)
Definition core.c:191
struct _bordoisila_driver_ BordoisilaDriver
void BordoisilaDriverProbeAll()
BordoisilaDriverProbeAll – start probing all driver registered.
Definition core.c:108
driver_type
Definition core.h:64
@ BORDOISILA_DRIVER_BUS_SPI
Definition core.h:67
@ BORDOISILA_DRIVER_BUS_USB
Definition core.h:68
@ BORDOISILA_DRIVER_NORMAL
Definition core.h:65
@ BORDOISILA_DRIVER_BUS_I2C
Definition core.h:66
AU_EXTERN AU_EXPORT BordoisilaDriver * BordoisilaGetDriverByName(char *name)
BordoisilaGetDriverByName – match a driver by its name.
Definition core.c:96
AU_EXTERN AU_EXPORT int BordoisilaDriverRegister(BordoisilaDriver *driver)
BordoisilaDriverRegister – register a driver to core registry.
Definition core.c:63
AU_EXTERN AU_EXPORT int BordoisilaDriverRemove(BordoisilaDriver *driver)
BordoisilaDriverRemove – remove a driver doesn't mean it could be removed from memory,...
Definition core.c:166
struct _bordoisila_drvcore_res_ BordoisilaDriverResource
AU_EXTERN AU_EXPORT int BordoisilaDriverScan(BordoisilaDriver *driver)
BordoisilaDriverScan – scan a bus, only applicable if the driver is a bus.
Definition core.c:133
AU_EXTERN AU_EXPORT BordoisilaDriver * BordoisilaGetDriverByCompat(char *compat)
BordoisilaGetDriverByCompat – match a driver by its compat string.
Definition core.c:83
AU_EXTERN AU_EXPORT int BordoisilaDriverResume(BordoisilaDriver *driver)
Definition core.c:203
AU_EXTERN AU_EXPORT int BordoisilaDriverProbe(BordoisilaDriver *driver)
Definition core.c:148
Definition core.h:72
int(* scan)(struct _bordoisila_driver_ *dev)
Definition core.h:80
const char * compat
Definition core.h:74
int(* remove)(struct _bordoisila_driver_ *dev)
Definition core.h:82
struct _bordoisila_driver_ * next
Definition core.h:90
void * priv
Definition core.h:86
int(* suspend)(struct _bordoisila_driver_ *dev)
Definition core.h:83
enum driver_type type
Definition core.h:77
BordoisilaDriverResource * resources
Definition core.h:75
int num_resource
Definition core.h:76
int refcount
Definition core.h:88
int(* resume)(struct _bordoisila_driver_ *dev)
Definition core.h:84
const char * name
Definition core.h:73
uint8_t driver_state
Definition core.h:87
struct _bordoisila_driver_ * parent
Definition core.h:89
int(* probe)(struct _bordoisila_driver_ *dev)
Definition core.h:81
Definition core.h:51
int ref_count
Definition core.h:55
struct _bordoisila_drvcore_res_ * next
Definition core.h:57
uint8_t res_type
Definition core.h:53
void * data
Definition core.h:54
const char * name
Definition core.h:52
bool is_running
Definition core.h:56