diff options
Diffstat (limited to 'tools/serial_probe/device.h')
-rw-r--r-- | tools/serial_probe/device.h | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/tools/serial_probe/device.h b/tools/serial_probe/device.h new file mode 100644 index 000000000..fa5f8183e --- /dev/null +++ b/tools/serial_probe/device.h @@ -0,0 +1,80 @@ + +/* Copyright 1999 Red Hat, Inc. + * + * This software may be freely redistributed under the terms of the GNU + * public license. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + + +#ifndef _KUDZU_DEVICES_H_ +#define _KUDZU_DEVICES_H_ + +#include <stdio.h> + +enum deviceClass { + /* device classes... this is somewhat ad-hoc */ + CLASS_UNSPEC, CLASS_OTHER, CLASS_NETWORK, CLASS_SCSI, CLASS_VIDEO, + CLASS_AUDIO, CLASS_MOUSE, CLASS_MODEM, CLASS_CDROM, CLASS_TAPE, + CLASS_FLOPPY, CLASS_SCANNER, CLASS_HD, CLASS_RAID, CLASS_PRINTER, + CLASS_CAPTURE, CLASS_KEYBOARD, CLASS_PCMCIA +}; + +enum deviceBus { + /* 'bus' that a device is attached to... this is also ad-hoc */ + /* BUS_SBUS is sort of a misnomer - it's more or less Sun */ + /* OpenPROM probing of all various associated non-PCI buses */ + BUS_UNSPEC = 0, + BUS_OTHER = (1 << 0), + BUS_PCI = (1 << 1), + BUS_SBUS = (1 << 2), + BUS_PSAUX = (1 << 3), + BUS_SERIAL = (1 << 4), + BUS_PARALLEL = (1 << 5), + BUS_SCSI = (1 << 6), + BUS_IDE = (1 << 7), + /* Again, misnomer */ + BUS_KEYBOARD = (1 << 8), +#ifdef _i_wanna_build_this_crap_ + BUS_ISAPNP = (1 << 9), +#endif +}; + +struct device { + /* This pointer is used to make lists by the library. */ + /* Do not expect it to remain constant (or useful) across library calls. */ + struct device *next; + /* Used for ordering, and for aliasing (modem0, modem1, etc.) */ + int index; + enum deviceClass class; /* type */ + enum deviceBus bus; /* bus it's attached to */ + char * device; /* device file associated with it */ + char * driver; /* driver to load, if any */ + char * desc; /* a description */ + int detached; /* should we care if it disappears? */ + struct device *(*newDevice) (struct device *old, struct device *new); + void (*freeDevice) (struct device *dev); + void (*writeDevice) (FILE *file, struct device *dev); + int (*compareDevice) (struct device *dev1, struct device *dev2); +}; + +struct device *newDevice(struct device *old, struct device *new); +void freeDevice(struct device *dev); +void writeDevice(FILE *file, struct device *dev); +int compareDevice(struct device *dev1, struct device *dev2); +struct device *readDevice(FILE *file); + +/* Most of these aren't implemented yet...... */ +/* Return everything found, even non-useful stuff */ +#define PROBE_ALL 1 +/* Don't do 'dangerous' probes that could do weird things (isapnp, serial) */ +#define PROBE_SAFE (1<<1) +/* Stop at first device found */ +#define PROBE_ONE (1<<2) + + +#endif |