diff -ruN p2/pkg/dde_linux26/lib/src/pci.c p3/pkg/dde_linux26/lib/src/pci.c --- p2/pkg/dde_linux26/lib/src/pci.c 2004-04-30 23:21:12.000000000 +0200 +++ p3/pkg/dde_linux26/lib/src/pci.c 2006-11-30 10:53:27.000000000 +0100 @@ -1,4 +1,4 @@ -/* $Id: pci.c,v 1.1.1.1 2004/04/30 21:21:12 mm19 Exp $ */ +/* $Id: pci.c,v 1.1.1.1.2.1 2006/11/30 09:53:27 cw183155 Exp $ */ /*****************************************************************************/ /** * \file dde_linux26/lib/src/pci.c @@ -116,7 +116,7 @@ linus->device = l4io->device; linus->subsystem_vendor = l4io->sub_vendor; linus->subsystem_device = l4io->sub_device; - linus->class = l4io->class; + linus->class = l4io->dev_class; linus->irq = l4io->irq; diff -ruN p2/pkg/generic_blk/idl/blk.idl p3/pkg/generic_blk/idl/blk.idl --- p2/pkg/generic_blk/idl/blk.idl 2005-05-03 19:20:04.000000000 +0200 +++ p3/pkg/generic_blk/idl/blk.idl 2006-11-30 10:58:00.000000000 +0100 @@ -1,5 +1,5 @@ /* -*- c -*- */ -/* $Id: blk.idl,v 1.11 2005/05/03 17:20:04 reuther Exp $ */ +/* $Id: blk.idl,v 1.11.2.1 2006/11/30 09:58:00 cw183155 Exp $ */ /*****************************************************************************/ /** * \file blk.idl @@ -183,7 +183,7 @@ [in] l4_uint32_t command, [in, ref, size_is(in_size)] void * in_args, [in] int in_size, - [out, ref, prealloc, size_is(out_size)] void ** out_args, + [out, ref, prealloc_client, size_is(out_size)] void ** out_args, [in, out] int * out_size); }; diff -ruN p2/pkg/l4vfs/idl/basic_io.idl p3/pkg/l4vfs/idl/basic_io.idl --- p2/pkg/l4vfs/idl/basic_io.idl 2005-11-21 16:16:22.000000000 +0100 +++ p3/pkg/l4vfs/idl/basic_io.idl 2006-11-30 10:58:53.000000000 +0100 @@ -112,7 +112,8 @@ int getdents([in] object_handle_t handle, [out, size_is(count), transmit_as(unsigned char), - ref, prealloc] l4vfs_dirent_t * dirp, + ref, prealloc_client, prealloc_server] + l4vfs_dirent_t ** dirp, [in, out] unsigned int * count); /** diff -ruN p2/pkg/l4vfs/idl/common_io.idl p3/pkg/l4vfs/idl/common_io.idl --- p2/pkg/l4vfs/idl/common_io.idl 2005-11-21 16:22:16.000000000 +0100 +++ p3/pkg/l4vfs/idl/common_io.idl 2006-11-30 10:58:53.000000000 +0100 @@ -27,18 +27,20 @@ { [allow_reply_only] l4vfs_ssize_t read([in] object_handle_t handle, - [out, size_is(count), ref, prealloc] char **buf, + [out, size_is(count), ref, prealloc_client, + prealloc_server] char **buf, [in, out] l4vfs_size_t *count); [allow_reply_only] l4vfs_ssize_t write([in] object_handle_t handle, - [in, prealloc, ref, size_is(count), + [in, /*prealloc_server,*/ ref, size_is(count), max_is(L4VFS_WRITE_RCVBUF_SIZE)] char *buf, [in, out] l4vfs_size_t *count); l4_int32_t close([in] object_handle_t handle); l4_int32_t ioctl([in] object_handle_t handle, [in] int cmd, - [in, out, prealloc, ref, size_is(count)] char **arg, + [in, out, prealloc_client, ref, size_is(count)] + char **arg, [in, out] l4vfs_size_t *count ); l4_int32_t fcntl([in] object_handle_t handle, diff -ruN p2/pkg/l4vfs/idl/common_io_notify.idl p3/pkg/l4vfs/idl/common_io_notify.idl --- p2/pkg/l4vfs/idl/common_io_notify.idl 2004-11-18 17:34:40.000000000 +0100 +++ p3/pkg/l4vfs/idl/common_io_notify.idl 2006-11-30 10:58:53.000000000 +0100 @@ -30,7 +30,7 @@ [oneway] void read_notify([in] object_handle_t handle, [in] l4vfs_ssize_t retval, - [in, size_is(count),ref,prealloc] char *buf, + [in, size_is(count),ref/*,prealloc*/] char *buf, [in] l4vfs_size_t *count, [in] l4_threadid_t source); diff -ruN p2/pkg/l4vfs/idl/net_io.idl p3/pkg/l4vfs/idl/net_io.idl --- p2/pkg/l4vfs/idl/net_io.idl 2006-07-26 16:39:06.000000000 +0200 +++ p3/pkg/l4vfs/idl/net_io.idl 2006-11-30 10:58:53.000000000 +0100 @@ -66,8 +66,9 @@ */ [allow_reply_only] int recvfrom ([in] object_handle_t handle, - [out, size_is(len), ref, prealloc, - max_is(L4VFS_WRITE_RCVBUF_SIZE)] char **buf, + [out, size_is(len), ref, prealloc_client, + prealloc_server, max_is(L4VFS_WRITE_RCVBUF_SIZE)] + char **buf, [in, out] int *len, [in] int flags, [in, out, size_is(fromlen), max_is(128)] char from[], @@ -76,8 +77,9 @@ [allow_reply_only] int recv ([in] object_handle_t handle, - [out, size_is(len), ref, prealloc, - max_is(L4VFS_WRITE_RCVBUF_SIZE)] char **buf, + [out, size_is(len), ref, prealloc_client, + prealloc_server, max_is(L4VFS_WRITE_RCVBUF_SIZE)] + char **buf, [in,out] int *len, [in] int flags); @@ -112,7 +114,8 @@ */ [allow_reply_only] int sendmsg ([in] object_handle_t handle, - [in, size_is(msg_namelen), max_is(8192)] char msg_name[], + [in, size_is(msg_namelen), + max_is(8192)] char msg_name[], [in] int msg_namelen, [in, ref, size_is(msg_iov_size), max_is(L4VFS_WRITE_RCVBUF_SIZE)] char *msg_iov, diff -ruN p2/pkg/l4vfs/include/types.h p3/pkg/l4vfs/include/types.h --- p2/pkg/l4vfs/include/types.h 2006-07-26 16:39:07.000000000 +0200 +++ p3/pkg/l4vfs/include/types.h 2006-11-30 10:58:53.000000000 +0100 @@ -69,6 +69,10 @@ local_object_id_t d_ino; l4vfs_off_t d_off; l4_uint16_t d_reclen; +#ifdef USE_UCLIBC + unsigned char d_type; +#elif defined(USE_DIETLIBC) +#endif char d_name[L4VFS_MAX_NAME + 1]; } l4vfs_dirent_t; diff -ruN p2/pkg/l4vfs/l4vfs_log/server/main.c p3/pkg/l4vfs/l4vfs_log/server/main.c --- p2/pkg/l4vfs/l4vfs_log/server/main.c 2005-11-18 14:18:57.000000000 +0100 +++ p3/pkg/l4vfs/l4vfs_log/server/main.c 2006-11-30 10:58:53.000000000 +0100 @@ -208,7 +208,7 @@ l4_int32_t l4vfs_basic_io_getdents_component(CORBA_Object _dice_corba_obj, object_handle_t handle, - l4vfs_dirent_t *dirp, + l4vfs_dirent_t **dirp, l4_uint32_t *count, CORBA_Server_Environment *_dice_corba_env) { @@ -224,7 +224,7 @@ node = clients[handle].node; seek = clients[handle].seek; - ret = l4vfs_th_dir_fill_dirents(node, seek, dirp, count); + ret = l4vfs_th_dir_fill_dirents(node, seek, *dirp, count); clients[handle].seek = ret; // set new seekpointer return *count; diff -ruN p2/pkg/l4vfs/lib/client/basic_io.c p3/pkg/l4vfs/lib/client/basic_io.c --- p2/pkg/l4vfs/lib/client/basic_io.c 2004-12-14 15:05:18.000000000 +0100 +++ p3/pkg/l4vfs/lib/client/basic_io.c 2006-11-30 10:58:53.000000000 +0100 @@ -87,7 +87,7 @@ return l4vfs_basic_io_getdents_call(&server, fd, - dirp, + &dirp, &count, &_dice_corba_env); } diff -ruN p2/pkg/l4vfs/lib/libc_backends/socket_io/socket.c p3/pkg/l4vfs/lib/libc_backends/socket_io/socket.c --- p2/pkg/l4vfs/lib/libc_backends/socket_io/socket.c 2005-11-21 16:17:07.000000000 +0100 +++ p3/pkg/l4vfs/lib/libc_backends/socket_io/socket.c 2006-11-30 10:58:53.000000000 +0100 @@ -1,5 +1,5 @@ /** - * \file dietlibc/lib/backends/socket_io/socket.c + * \file l4vfs/lib/backends/socket_io/socket.c * \brief * * \date 08/10/2004 @@ -282,11 +282,19 @@ int local_fd; file_desc_t file_desc, fd_s; object_handle_t accept_obj_handle = -1; + socklen_t addrlen_tmp = 0; - if (! addrlen) + if (! addr) { - errno = EFAULT; - return -1; + addrlen = &addrlen_tmp; + } + else + { + if (! addrlen) + { + errno = EFAULT; + return -1; + } } local_fd = ft_get_next_free_entry(); diff -ruN p2/pkg/l4vfs/lib/server/socketpair.c p3/pkg/l4vfs/lib/server/socketpair.c --- p2/pkg/l4vfs/lib/server/socketpair.c 2004-09-29 22:28:21.000000000 +0200 +++ p3/pkg/l4vfs/lib/server/socketpair.c 2006-11-30 10:58:54.000000000 +0100 @@ -1,5 +1,5 @@ /** - * \file l4vfs/lib/server/fcntl.c + * \file l4vfs/lib/server/socketpair.c * \brief * * \date 09/13/2004 diff -ruN p2/pkg/l4vfs/name_server/server/main.c p3/pkg/l4vfs/name_server/server/main.c --- p2/pkg/l4vfs/name_server/server/main.c 2006-02-23 10:44:09.000000000 +0100 +++ p3/pkg/l4vfs/name_server/server/main.c 2006-11-30 10:58:54.000000000 +0100 @@ -316,16 +316,16 @@ l4_int32_t l4vfs_basic_io_getdents_component(CORBA_Object _dice_corba_obj, object_handle_t fd, - l4vfs_dirent_t *dirp, + l4vfs_dirent_t **dirp, l4_uint32_t *count, CORBA_Server_Environment *_dice_corba_env) { int ret; LOGd(_DEBUG, "Before: getdents(%d, %p, %d)", - fd, dirp, *count); + fd, *dirp, *count); LOG_flush(); - ret = clientstate_getdents(fd, dirp, *count, *_dice_corba_obj); + ret = clientstate_getdents(fd, *dirp, *count, *_dice_corba_obj); LOGd(_DEBUG, "After: ret = %d)", ret); LOG_flush(); diff -ruN p2/pkg/l4vfs/simple_file_server/server/main.c p3/pkg/l4vfs/simple_file_server/server/main.c --- p2/pkg/l4vfs/simple_file_server/server/main.c 2006-01-03 15:21:42.000000000 +0100 +++ p3/pkg/l4vfs/simple_file_server/server/main.c 2006-11-30 10:58:54.000000000 +0100 @@ -170,12 +170,12 @@ int l4vfs_basic_io_getdents_component(CORBA_Object _dice_corba_obj, object_handle_t fd, - l4vfs_dirent_t *dirp, + l4vfs_dirent_t **dirp, unsigned int *count, CORBA_Server_Environment *_dice_corba_env) { int ret; - ret = clientstate_getdents(fd,dirp,*count,*_dice_corba_obj); + ret = clientstate_getdents(fd,*dirp,*count,*_dice_corba_obj); return ret; diff -ruN p2/pkg/l4vfs/term_server/lib/dope_term/Makefile p3/pkg/l4vfs/term_server/lib/dope_term/Makefile --- p2/pkg/l4vfs/term_server/lib/dope_term/Makefile 2005-08-15 18:50:01.000000000 +0200 +++ p3/pkg/l4vfs/term_server/lib/dope_term/Makefile 2006-11-30 10:58:54.000000000 +0100 @@ -3,6 +3,8 @@ SYSTEMS = x86-l4v2 x86-l4x0 +DEPENDS_PKGS = dope + TARGET = libdope_term.a MODE = l4env_minimal CLIENTIDL = diff -ruN p2/pkg/l4vfs/term_server/server/common/basic_io.c p3/pkg/l4vfs/term_server/server/common/basic_io.c --- p2/pkg/l4vfs/term_server/server/common/basic_io.c 2006-03-01 14:01:08.000000000 +0100 +++ p3/pkg/l4vfs/term_server/server/common/basic_io.c 2006-11-30 10:58:54.000000000 +0100 @@ -316,7 +316,7 @@ int l4vfs_basic_io_getdents_component(CORBA_Object _dice_corba_obj, object_handle_t fd, - l4vfs_dirent_t *dirp, + l4vfs_dirent_t **dirp, unsigned int *count, CORBA_Server_Environment *_dice_corba_env) { @@ -442,7 +442,7 @@ // finally set the dirp return value // - as array_ptr is located on the local stack, we have // to memcpy instead of simply setting dirp = array_ptr; - memcpy(dirp, array_ptr, array_size); + memcpy(*dirp, array_ptr, array_size); // if everything worked, we return the size of the // new array diff -ruN p2/pkg/l4vfs/term_server/server/vc_server/Makefile p3/pkg/l4vfs/term_server/server/vc_server/Makefile --- p2/pkg/l4vfs/term_server/server/vc_server/Makefile 2006-02-07 18:42:26.000000000 +0100 +++ p3/pkg/l4vfs/term_server/server/vc_server/Makefile 2006-11-30 10:58:54.000000000 +0100 @@ -9,6 +9,8 @@ vpath % $(PKGDIR)/server/common +DEPENDS_PKGS = dope + SRC_C = main.c basic_io.c clients.c term.c init.c rw.c TARGET = vc_server