read_rbu_mono_data(char *buffer, loff_t pos, size_t count) 
static ssize_t read_rbu_mono_data(char *buffer, loff_t pos, size_t count) 
read_rbu_mono_data(char *buffer, loff_t pos, size_t count){	unsigned char *ptemp = NULL;	size_t bytes_left = 0;	size_t data_length = 0;	ssize_t ret_count = 0;	/* check to see if we have something to return */	if ((rbu_data.image_update_buffer == NULL) ||		(rbu_data.bios_image_size == 0)) {		pr_debug("read_rbu_data_mono: image_update_buffer %p ,"			"bios_image_size %lu\n",			rbu_data.image_update_buffer,			rbu_data.bios_image_size);		ret_count = -ENOMEM;		goto read_rbu_data_exit;	}	if (pos > rbu_data.bios_image_size) {		ret_count = 0;		goto read_rbu_data_exit;	}	bytes_left = rbu_data.bios_image_size - pos;	data_length = min(bytes_left, count);	ptemp = rbu_data.image_update_buffer;	memcpy(buffer, (ptemp + pos), data_length);	if ((pos + count) > rbu_data.bios_image_size)		/* this was the last copy */		ret_count = bytes_left;	else		ret_count = count;      read_rbu_data_exit:	return ret_count;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/dda8577fb5a00507e5aea737833190a10516b257/dell_rbu.c/buggy/drivers/firmware/dell_rbu.c