blob: ce2abade8ebc47e35536056f548f995c16cbbe9a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
#ifndef DEVICE_H
#define DEVICE_H
#include <stdint.h>
struct device_t;
typedef struct device_vtable_t {
uint8_t (*read)( void *obj, uint16_t addr );
void (*write)( void *obj, uint16_t addr, uint8_t data );
void (*deinit)( void *obj );
} device_vtable_t;
typedef struct device_t {
device_vtable_t const *vtable;
char *name;
} device_t;
void device_init( device_t *device, const char *name );
uint8_t device_read( void *obj, uint16_t addr );
void device_write( void *obj, uint16_t addr, uint8_t data );
void device_deinit( void *obj );
#endif
|