All pastes #392031 Raw Edit

Stuff

public text v1 · immutable
·published 2007-03-12 16:37 UTC
rendered paste body
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/module.h>
#include <linux/config.h>
#include <linux/init.h>
#include <linux/fs.h>
#include <asm/semaphore.h>
#include <unistd.h>
#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");