X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=kitten%2Finclude%2Flwk%2Fdriver.h;fp=kitten%2Finclude%2Flwk%2Fdriver.h;h=0000000000000000000000000000000000000000;hb=80d6ccd14cca51eec611cc96cf1e39c7a9c98421;hp=d5eebea7a91f1762da0a7ca001924646c2d62a47;hpb=e5d7715c14a23e72d742d402d4e4cdf97ffab697;p=palacios.releases.git diff --git a/kitten/include/lwk/driver.h b/kitten/include/lwk/driver.h deleted file mode 100644 index d5eebea..0000000 --- a/kitten/include/lwk/driver.h +++ /dev/null @@ -1,88 +0,0 @@ -#ifndef _LWK_DRIVER_H -#define _LWK_DRIVER_H - -#include -#include - -/* - * Drivers may set DRIVER_NAME before including this header. - * Otherwise, the KBUILD name is used. - */ -#ifndef DRIVER_NAME -#define DRIVER_NAME KBUILD_MODNAME -#endif - -/* - * Driver parameter names have the form: - * - * driver_name.parameter_name - * - * Example: - * To set integer parameter foo in driver bar, add this - * to the kernel boot command line: - * - * bar.foo=1 - */ -#define __DRIVER_PARAM_PREFIX DRIVER_NAME "." - -/* - * For driver parameters. Parameters can be configured via the - * kernel boot command line or some other platform-dependent - * runtime mechanism. - */ -#include - -#define driver_param(name, type) \ - __param_named(__DRIVER_PARAM_PREFIX, name, name, type) - -#define driver_param_named(name, value, type) \ - __param_named(__DRIVER_PARAM_PREFIX, name, value, type) - -#define driver_param_string(name, string, len) \ - __param_string(__DRIVER_PARAM_PREFIX, name, string, len) - -#define driver_param_array(name, type, nump) \ - __param_array_named(__DRIVER_PARAM_PREFIX, name, name, type, nump) - -#define driver_param_array_named(name, array, type, nump) \ - __param_array_named(__DRIVER_PARAM_PREFIX, name, array, type, nump) - -/* - * Every driver defines one of these structures via the - * driver_init() macro. The structure gets placed in the - * __driver_table ELF section and the kernel walks this table - * to find/initialize all drivers in the system. - */ -struct driver_info { - const char * name; // name of the driver - void (*init)(void); // driver initialization function - int init_called; // set when .init() has been called, - // used to prevent double inits. -}; - -/* - * This adds a function to the __driver_table ELF section. - */ -#define driver_init(init_func) \ - static char __driver_name[] = DRIVER_NAME; \ - static struct driver_info const __driver_info \ - __attribute_used__ \ - __attribute__ ((unused,__section__ ("__driver_table"), \ - aligned(sizeof(void *)))) \ - = { __driver_name, init_func }; - -/* - * The __driver_table ELF section is surrounded by these symbols, - * which are defined in the platform's linker script. - */ -extern struct driver_info __start___driver_table[]; -extern struct driver_info __stop___driver_table[]; - -/* - * This is a placeholder. Currently drivers are never unloaded once loaded. - */ -#define driver_exit(exit_func) - -extern int driver_init_by_name(const char *name); - -#endif