05 - Moduł przyjmujący parametry

hello_param.c

hello_param.c
#include <linux/module.h>
#include <linux/kernel.h>
 
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Marcin Bis");
MODULE_DESCRIPTION("Modul mowi HELLO.");
 
static int howmany = 1;
module_param(howmany, int, 0); /* Plik w /sys/modules/<modul>/params nie pojawi się */
/* module_param(howmany, int, 0644); */
MODULE_PARM_DESC(howmany, "Ile razy mowimy \"czesc\".");
 
#define MAX_ENTITIES 10
static char *whom[MAX_ENTITIES] = { "kolego" };
static int entries = 1;
/* Po załadowaniu modułu root może modyfikować wartość parametru */
module_param_array(whom, charp, &entries, 0644);
MODULE_PARM_DESC(whom, "Komu mowimy \"czesc\".");
 
static void powiedz_czesc(void)
{
  int idx;
  int i;
  for (idx = 0; idx < entries; idx++)
    for (i = 1; i <= howmany; i++)
      printk(KERN_INFO "[%d/%d] Helo %s!\n",i,howmany,whom[idx]);
}
 
static int __init hello_init(void)
{
  printk(KERN_INFO "HELLO modul.\n");
  powiedz_czesc();
  return 0;
}
module_init(hello_init);
 
static void __exit hello_exit(void)
{
  printk(KERN_INFO "Bye Bye ...\n");
  powiedz_czesc();
}
module_exit(hello_exit);

Makefile

Makefile
obj-m += hello_param.o
 
all:
	make -C /lib/modules/$(shell uname -r)/build \
		SUBDIRS=$(shell pwd) modules
 
clean:
	make -C /lib/modules/$(shell uname -r)/build \
		SUBDIRS=$(shell pwd) clean
ostatnio zmienione: 2011/06/16 15:45