git://scm.lunaixsky.com
/
lunaix-os.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
feat: fstat now handle symbolic link
[lunaix-os.git]
/
lunaix-os
/
includes
/
lunaix
/
device.h
diff --git
a/lunaix-os/includes/lunaix/device.h
b/lunaix-os/includes/lunaix/device.h
index cb2c2947a5b52264d33bcaed959faf18b7f4f3c8..af21cb35d0062f1dbbe12f674c05819a14b4e9e3 100644
(file)
--- a/
lunaix-os/includes/lunaix/device.h
+++ b/
lunaix-os/includes/lunaix/device.h
@@
-65,8
+65,6
@@
#define DEV_IFCAT 0x2 // a device category (as device groupping)
#define DEV_IFSYS 0x3 // a system device
#define DEV_IFCAT 0x2 // a device category (as device groupping)
#define DEV_IFSYS 0x3 // a system device
-typedef unsigned int dev_t;
-
struct devclass
{
u32_t meta;
struct devclass
{
u32_t meta;
@@
-84,8
+82,8
@@
struct device
// TODO investigate event polling
struct hstr name;
// TODO investigate event polling
struct hstr name;
- struct devclass class;
-
dev_t dev_
id;
+ struct devclass
*
class;
+
u32_t dev_u
id;
int dev_type;
char name_val[DEVICE_NAME_SIZE];
void* underlay;
int dev_type;
char name_val[DEVICE_NAME_SIZE];
void* underlay;
@@
-123,11
+121,17
@@
static inline u32_t devclass_hash(struct devclass class)
~class.meta;
}
~class.meta;
}
+static inline u32_t
+device_id_from_class(struct devclass* class)
+{
+ return ((class->device & 0xffff) << 16) | ((class->variant & 0xffff));
+}
+
void
device_register_all();
void
void
device_register_all();
void
-device_prepare(struct device* dev);
+device_prepare(struct device* dev
, struct devclass* class
);
void
device_setname(struct device* dev, char* fmt, ...);
void
device_setname(struct device* dev, char* fmt, ...);
@@
-140,23
+144,37
@@
device_add_vargs(struct device* parent,
void* underlay,
char* name_fmt,
u32_t type,
void* underlay,
char* name_fmt,
u32_t type,
+ struct devclass* class,
va_list args);
struct device*
device_add(struct device* parent,
va_list args);
struct device*
device_add(struct device* parent,
+ struct devclass* class,
void* underlay,
u32_t type,
char* name_fmt,
...);
struct device*
void* underlay,
u32_t type,
char* name_fmt,
...);
struct device*
-device_addsys(struct device* parent, void* underlay, char* name_fmt, ...);
+device_addsys(struct device* parent,
+ struct devclass* class,
+ void* underlay,
+ char* name_fmt,
+ ...);
struct device*
struct device*
-device_addseq(struct device* parent, void* underlay, char* name_fmt, ...);
+device_addseq(struct device* parent,
+ struct devclass* class,
+ void* underlay,
+ char* name_fmt,
+ ...);
struct device*
struct device*
-device_addvol(struct device* parent, void* underlay, char* name_fmt, ...);
+device_addvol(struct device* parent,
+ struct devclass* class,
+ void* underlay,
+ char* name_fmt,
+ ...);
struct device*
device_addcat(struct device* parent, char* name_fmt, ...);
struct device*
device_addcat(struct device* parent, char* name_fmt, ...);
@@
-165,7
+183,7
@@
void
device_remove(struct device* dev);
struct device*
device_remove(struct device* dev);
struct device*
-device_getbyid(struct llist_header* devlist,
dev
_t id);
+device_getbyid(struct llist_header* devlist,
u32
_t id);
struct device*
device_getbyhname(struct device* root_dev, struct hstr* name);
struct device*
device_getbyhname(struct device* root_dev, struct hstr* name);