define MODULEINFOtag name info static const char UNIQUEIDname

  • Slides: 6
Download presentation
#define __MODULE_INFO(tag, name, info)  static const char __UNIQUE_ID(name)[]  __used __attribute__((section(". modinfo"), unused,

#define __MODULE_INFO(tag, name, info) static const char __UNIQUE_ID(name)[] __used __attribute__((section(". modinfo"), unused, aligned(1)) = __stringify(tag) "=" info #define MODULE_INFO(tag, info) __MODULE_INFO(tag, info) #define MODULE_LICENSE(_license) MODULE_INFO(license, _license) MODULE_LICENSE("GPL"); MODULE_INFO(license, "GPL"); __MODULE_INFO(license, "GPL"); static const char __UNIQUE_ID(license)[] __used __attribute__((section(". modinfo"), unused, aligned(1)) = __stringify(license) "=" "GPL"

static const char __UNIQUE_ID(license)[]  __used __attribute__((section(". modinfo"), unused, aligned(1))) = __stringify(license) "=" "GPL"

static const char __UNIQUE_ID(license)[] __used __attribute__((section(". modinfo"), unused, aligned(1))) = __stringify(license) "=" "GPL"

#define module_init(initfn)  int init_module(void) __attribute__((alias(#initfn) module_init( my_init ); int init_module(void) __attribute__((alias("my_init")

#define module_init(initfn) int init_module(void) __attribute__((alias(#initfn) module_init( my_init ); int init_module(void) __attribute__((alias("my_init")

#define __define_initcall(fn, id)  static initcall_t __initcall_##fn##id __used  __attribute__((__section__(". initcall" #id ". init

#define __define_initcall(fn, id) static initcall_t __initcall_##fn##id __used __attribute__((__section__(". initcall" #id ". init #define device_initcall(fn) __define_initcall(fn, #define __initcall(fn) device_initcall(fn) #define module_init(x) __initcall(x); typedef int (*initcall_t)(void); module_init( my_init ); __initcall( my_init ); device_initcall( my_init ); __define_initcall( my_init, 6 ); static initcall_t __initcall_my_init 6 __used __attribute__((__section__(". initcall 6. init"))) =

start_kernel(); rest_init(); kernel_init_freeable(); do_basic_setup(); do_initcalls(); for (level = 0; level < ARRAY_SIZE(initcall_levels) do_initcall_level(level=6); for

start_kernel(); rest_init(); kernel_init_freeable(); do_basic_setup(); do_initcalls(); for (level = 0; level < ARRAY_SIZE(initcall_levels) do_initcall_level(level=6); for (fn = initcall_levels[level]; fn < initcall_level do_one_initcall(*fn = my_init); fn(); my_init();

#include <linux/kernel. h> #include <linux/moduleparam. h> MODULE_LICENSE("GPL"); static int myint = 420; module_param( myint,

#include <linux/kernel. h> #include <linux/moduleparam. h> MODULE_LICENSE("GPL"); static int myint = 420; module_param( myint, 0644 ); int my_init(void) { printk("my_init()n"); printk("myint=%dn", myint); return 0; }