#ifndef H_DEVICES
#define H_DEVICES
enum driverTypes { DRIVER_SCSI = 0, DRIVER_NET = 1, DRIVER_CDROM = 2,
DRIVER_PCMCIA = 3, DRIVER_FS = 4,
DRIVER_PREREQ = 4, DRIVER_OTHER = 1000};
enum driverMinor { DRIVER_MINOR_NONE = 0, DRIVER_MINOR_ETHERNET,
DRIVER_MINOR_PLIP, DRIVER_MINOR_TR };
struct driver;
#define PERSIST_ALIAS (1 << 0)
#define PERSIST_OPTIONS (1 << 1)
struct driversLoaded {
struct driversLoaded * next;
char ** argv;
int argc;
char * module;
enum driverTypes type;
enum driverMinor minor;
int persistFlags;
} ;
typedef int (*driverOkayFn)(struct driver * dev);
int devMakeInode(char * name, char * path);
void devRemoveInode(char * path);
int loadDeviceDriver(enum driverTypes type, struct driversLoaded ** drlist);
int removeDeviceDriver(enum driverTypes type, struct driversLoaded ** drlist);
int writeModuleConf(char * prefix, struct driversLoaded * dl, int append);
int readModuleConf(char * prefix, struct driversLoaded ** drlist);
int readModuleConfPersist(char * prefix, struct driversLoaded * drlist);
int loadModule(char * modName, enum driverTypes type, enum driverMinor minor,
struct driversLoaded ** drlist);
int removeModule(char * module);
int setupCDdevice(char ** cddev, struct driversLoaded ** dl);
int removeCDmodule(struct driversLoaded ** dl);
/* hack -- plip is broken */
char * getPlipDeviceName(void);
#ifndef __sparc__
int findAtapi(char ** cddev);
#endif
int findSCSIcdrom(char ** cddev);
#endif