rem: return vnode->stream.u.dev.calls->read(cookie->u.dev.dcookie, pos, buffer, length);
add: 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;
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 0x%x, cookie 0x%x, pos 0x%x 0x%x, len 0x%x\n", vnode, cookie, pos, len));	if (cookie->s->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);}