rem: int status;
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;	int status;	TRACE(("devfs_read: vnode %p, cookie %p, pos %Ld, len %p\n", vnode, cookie, pos, length));INSANE(("juchu, buffer = %p!\n",buffer));//	if (cookie->stream->type != STREAM_TYPE_DEVICE)//		return EINVAL;INSANE((":%p:%p:%p:%p\n",vnode->all_next,vnode->name,vnode->redir_vnode,vnode->parent));INSANE(("name = %s\n",vnode->name));	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	INSANE(("calls = %p\n",vnode->stream.u.dev.calls));	status = vnode->stream.u.dev.calls->read(cookie->u.dev.dcookie, pos, buffer, length);	INSANE(("hulu: calls = %p\n",vnode->stream.u.dev.calls));	INSANE((":%p:%p:%p:%p\n",vnode->all_next,vnode->name,vnode->redir_vnode,vnode->parent));	return status;}