rem: devfs_read(fs_cookie _fs, fs_vnode _v, file_cookie _cookie, void *buffer, off_t pos, size_t *length)
add: devfs_read(fs_cookie _fs, fs_vnode _v, file_cookie _cookie, off_t pos, void *buffer, size_t *length)
context: devfs_read(fs_cookie _fs, fs_vnode _v, file_cookie _cookie, void *buffer, off_t pos, size_t *length){	struct devfs *fs = _fs;	struct devfs_vnode *vnode = _v;	struct devfs_cookie *cookie = _cookie;	struct devfs_part_map *part_map;	TRACE(("devfs_read: vnode %p, cookie %p, pos %Ld, len %p\n", vnode, cookie, pos, length));	// Whoa! If the next to lines are uncommented, our kernel crashes at some point	// I haven't yet found the time to investigate, but I'll doubtlessly have to do	// that at some point -- axeld.	//if (cookie->stream->type != STREAM_TYPE_DEVICE)	//	return EINVAL;	part_map = vnode->stream.u.dev.part_map;	if (part_map) {		if (pos < 0)			pos = 0;		if (pos > part_map->size)			return 0;		*length = min(*length, part_map->size - pos );		pos += part_map->offset;	}	// pass the call through to the device	return vnode->stream.u.dev.calls->read(cookie->u.dev.dcookie, pos, buffer, length);}