#include #include #include #include #include #include #include #include #include "vhd.h" void interrupt_me_up(struct vhd_block*); int init(void) { struct vhd_block writemeup, readmeup; int init, i; char data[] = "some crap\n"; writemeup.block_number = 0; writemeup.operation = VHD_WRITE; //writemeup.data = data; //memset(writemeup.data, 100, 0); //strncpy(writemeup.data, data, sizeof(data)); printk("Hello!!\n"); init = vhd_init(); if(init != 0) { printk("cant init captain\n"); return 1; } vhd_register_interrupt(interrupt_me_up); vhd_request_operation(&writemeup); for(i = 0; i< 1000000; i++); readmeup.block_number = 0; readmeup.operation = VHD_READ; vhd_request_operation(&readmeup); return 0; } void cleanup(void) { vhd_cleanup(); printk("Ciao!\n"); } void interrupt_me_up(struct vhd_block* blocks_of_fun) { printk("interrupted, baby\n"); printk("%i\n", blocks_of_fun->operation); if(blocks_of_fun->operation == VHD_WRITE) { printk("Written!\n"); } else if (blocks_of_fun->operation == VHD_READ) { printk("Were reading!\n"); printk("And the data was.... %s\n", blocks_of_fun->data); } } module_init(init); module_exit(cleanup); MODULE_LICENSE("GPL");