hi all:
#include <linux/init.h>
#include <linux/module.h>
#include <linux/moduleparam.h>
MODULE_LICENSE("Dual BSD/GPL");
static char *whom = "world";
static char howmany = 1;
module_param(howmany, int, S_IRUGO);
module_param(whom, charp, S_IRUGO);
static int hello_init(void)
{
printk(KERN_ALERT "Hello, world\n");
return 0;
}
static void hello_exit(void)
{
printk(KERN_ALERT "Goodbye, cruel world\n");
}
module_init(hello_init);
module_exit(hello_exit);
insmod hellop.ko howmany=10 whom="Mom"
this code I want to printk "hello Mom" 10 times.
but it doesn't work. so I modified static int howmany = 10, it doesn't
work either.
I don't know whether it's my wronging use?
--
/****************************************
http://runcoderen.wordpress.com/
****************************************/
On Sun, August 22, 2010 4:00 pm, runcoderen wrote:
> hi all:
>
> #include <linux/init.h>
> #include <linux/module.h>
> #include <linux/moduleparam.h>
>
>
> MODULE_LICENSE("Dual BSD/GPL");
>
>
> static char *whom = "world"; static char howmany = 1;
What happens if you make 'howmany' an int instead of
a char?
> module_param(howmany, int, S_IRUGO); module_param(whom, charp, S_IRUGO);
>
> static int hello_init(void) {
> printk(KERN_ALERT "Hello, world\n"); return 0; }
>
>
> static void hello_exit(void) {
> printk(KERN_ALERT "Goodbye, cruel world\n"); }
>
>
> module_init(hello_init); module_exit(hello_exit);
>
> insmod hellop.ko howmany=10 whom="Mom"
>
> this code I want to printk "hello Mom" 10 times.
>
> but it doesn't work. so I modified static int howmany = 10, it doesn't
> work either. I don't know whether it's my wronging use?
On Mon, Aug 23, 2010 at 07:00:18AM +0800, runcoderen wrote:
>hi all:
>
>#include <linux/init.h>
>#include <linux/module.h>
>#include <linux/moduleparam.h>
>
>MODULE_LICENSE("Dual BSD/GPL");
>
>static char *whom = "world";
>static char howmany = 1;
>
>module_param(howmany, int, S_IRUGO);
>module_param(whom, charp, S_IRUGO);
>
>static int hello_init(void)
>{
>printk(KERN_ALERT "Hello, world\n");
>return 0;
>}
>
>static void hello_exit(void)
>{
>printk(KERN_ALERT "Goodbye, cruel world\n");
>}
>
>module_init(hello_init);
>module_exit(hello_exit);
>
>insmod hellop.ko howmany=10 whom="Mom"
>
>this code I want to printk "hello Mom" 10 times.
How can it work? You neither have a loop nor use 'whom'
in your hello_init()...
You need:
statick int hello_init(void)
{
int i;
for (i=0; i<howmany; i++)
printk(KERN_WARNING "Hello, %s\n", whom);
return 0;
}