=================================================================== RCS file: /cvs/funnyos/sys/device.h,v retrieving revision 1.1 retrieving revision 1.7 diff -u -r1.1 -r1.7 --- funnyos/sys/device.h 2007/10/16 09:41:05 1.1 +++ funnyos/sys/device.h 2007/11/24 17:58:41 1.7 @@ -1,11 +1,11 @@ /* - * $Id: device.h,v 1.1 2007/10/16 08:41:05 init Exp $ + * $Id: device.h,v 1.7 2007/11/24 17:58:41 nbrk Exp $ */ #ifndef _SYS_DEVICE_H #define _SYS_DEVICE_H #include -#define DVNAMELEN 8 +#define DVNAMELEN 9 struct device { // char dv_name[DVNAMELEN]; /* device name up to 7 chars */ @@ -24,7 +24,7 @@ uint32_t dr_ddsize; /* size of xxx_dd (devdata) */ int (*dr_attach)(struct device *self, uint32_t loc, uint8_t flags); /* attach subroutine */ int (*dr_detach)(struct device *self); /* detach subroutine */ -// void (*dr_interrupt)(struct device *self); /* intr handler */ + void (*dr_interrupt)(struct device *self); /* intr handler */ }; @@ -32,30 +32,25 @@ /* * Associate actual driver with device name. */ - char di_dname[DVNAMELEN]; /* device name */ - struct driver *di_driverp; /* pointer to driver */ - int8_t di_ninstances; /* number of already created devices; for dv_minor */ + char *di_dname; /* device name */ + struct driver *di_driverp; /* pointer to driver */ + int8_t di_ninstances; /* number of already created devices; for dv_minor */ }; struct attachinfo { /* * Attach hint. Describes where to attach particular device. - * "child" at "parent" 0 loc 0x16000000 flags 0x00 + * "child" at "parent" 0 loc 0x16000000 intrno 4 flags 0x00 */ - char ai_cname[DVNAMELEN]; /* child device name */ - char ai_pname[DVNAMELEN]; /* parent device name */ - uint8_t ai_pminor; /* parent minor */ - uint32_t ai_locator; /* location on parent (0 - default) */ -// uint8_t ai_intrno; /* interrupt line */ - uint8_t ai_flags; /* flags passed to dr_attach() */ + char *ai_cname; /* child device name */ + char *ai_pname; /* parent device name */ + uint8_t ai_pminor; /* parent minor */ + uint32_t ai_locator; /* location on parent (0 - default) */ + uint8_t ai_intrno; /* interrupt line (XXX on IRQ Controller) */ + uint8_t ai_flags; /* flags passed to dr_attach() */ }; - - -#define ATTACH(x) devlist[x].dv_parent -#define AT = -#define PARENT(y) &devlist[y] #endif /* _SYS_DEVICE_H */