#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
MODULE_LICENSE ( "GPL" );
MODULE_AUTHOR ( "Bar Foo" );
MODULE_DESCRIPTION ( "A driver" );
MODULE_VERSION ( "0.1" );
static int __init driver_start(void)
{
/* static */ char array [32 * 1024];
int i;
int sum = 0;
printk(KERN_INFO "----> ++ driver_start()\n");
for (i = sizeof(array); i--;)
{
array[i] = i % 13;
}
for (i = sizeof(array); i--;)
{
sum += array[i];
}
printk(KERN_INFO "----> sum = %d\n", sum);
printk(KERN_INFO "----> -- driver_start()\n");
return 0;
}
static void __exit driver_end(void)
{
printk(KERN_INFO "----> driver_end()\n");
}
module_init(driver_start);
module_exit(driver_end);
I2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgojaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CgpNT0RVTEVfTElDRU5TRSAgICAgKCAiR1BMIiAgICAgICk7Ck1PRFVMRV9BVVRIT1IgICAgICAoICJCYXIgRm9vIiAgKTsKTU9EVUxFX0RFU0NSSVBUSU9OICggIkEgZHJpdmVyIiApOwpNT0RVTEVfVkVSU0lPTiAgICAgKCAiMC4xIiAgICAgICk7CgpzdGF0aWMgaW50IF9faW5pdCBkcml2ZXJfc3RhcnQodm9pZCkKewogIC8qIHN0YXRpYyAqLyBjaGFyIGFycmF5IFszMiAqIDEwMjRdOwoKICBpbnQgaTsKICBpbnQgc3VtID0gMDsKCiAgcHJpbnRrKEtFUk5fSU5GTyAiLS0tLT4gKysgZHJpdmVyX3N0YXJ0KClcbiIpOwoKICBmb3IgKGkgPSBzaXplb2YoYXJyYXkpOyBpLS07KQogIHsKICAgIGFycmF5W2ldID0gaSAlIDEzOwogIH0KCiAgZm9yIChpID0gc2l6ZW9mKGFycmF5KTsgaS0tOykKICB7CiAgICBzdW0gKz0gYXJyYXlbaV07CiAgfQoKICBwcmludGsoS0VSTl9JTkZPICItLS0tPiBzdW0gPSAlZFxuIiwgc3VtKTsKCiAgcHJpbnRrKEtFUk5fSU5GTyAiLS0tLT4gLS0gZHJpdmVyX3N0YXJ0KClcbiIpOwoKICByZXR1cm4gMDsKfQoKc3RhdGljIHZvaWQgX19leGl0IGRyaXZlcl9lbmQodm9pZCkKewogIHByaW50ayhLRVJOX0lORk8gIi0tLS0+IGRyaXZlcl9lbmQoKVxuIik7Cn0KCm1vZHVsZV9pbml0KGRyaXZlcl9zdGFydCk7Cm1vZHVsZV9leGl0KGRyaXZlcl9lbmQpOwo=