#ifndef H_DEVICES
#define H_DEVICES

enum driverTypes { DRIVER_SCSI = 0, DRIVER_ETHERNET = 1, DRIVER_CDROM = 2,
		   DRIVER_PCMCIA = 3, DRIVER_OTHER = 1000};

struct driver;

struct driversLoaded {
    struct driversLoaded * next;
    char ** argv;
    int argc;
    char * module;
    enum driverTypes type;
} ;

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 readModuleConf(char * prefix, struct driversLoaded ** drlist);
int loadModule(char * modName, enum driverTypes type, 
	       struct driversLoaded ** drlist);
int removeModule(char * module);
int setupCDdevice(char ** cddev, struct driversLoaded ** dl);
int removeCDmodule(struct driversLoaded ** dl);

#endif
