www.pudn.com > LFYOS.zip > driver.c


 
#include"../memory/memory.h" 
 
#define MAX_PAGE_SIZE  (120*PAGE_SIZE) 
 
int idle_device(struct file_system_call_parameter *par) 
{ 
	int i,*p,*p1; 
	extern void test(void ); 
 
	switch(par->command){ 
	case READ_FILE: 
		if(par->parameter.read_write.begin_rw==0) 
			p1=(int *)test; 
		else if(par->parameter.read_write.begin_rw<=MAX_PAGE_SIZE) 
			p1=(int *)(par->parameter.read_write.begin_rw 
				-PAGE_SIZE); 
		else 
			p1=(int *)MAX_PAGE_SIZE; 
		p=(int *)get_block_base(par->block.memory_id, 
			par->block.block_id); 
		for(i=0;i<1024;i++,p++,p1++) 
			*p=(*p1); 
		break; 
	case WRITE_FILE: 
		break; 
	} 
	return 1; 
};