Merged the get_read_fd and get_write_fd requests.
diff --git a/server/async.c b/server/async.c
index 379d130..7978a90 100644
--- a/server/async.c
+++ b/server/async.c
@@ -58,8 +58,7 @@
static void async_dump( struct object *obj, int verbose );
static void async_destroy( struct object *obj );
static int async_get_poll_events( struct object *obj );
-static int async_get_read_fd( struct object *obj );
-static int async_get_write_fd( struct object *obj );
+static int async_get_fd( struct object *obj );
static int async_get_info( struct object *obj, struct get_file_info_request *req );
static void async_poll_event( struct object *obj, int event );
@@ -73,8 +72,7 @@
no_satisfied, /* satisfied */
async_get_poll_events, /* get_poll_events */
async_poll_event, /* poll_event */
- async_get_read_fd, /* get_read_fd */
- async_get_write_fd, /* get_write_fd */
+ async_get_fd, /* get_fd */
no_flush, /* flush */
async_get_info, /* get_file_info */
async_destroy /* destroy */
@@ -115,14 +113,7 @@
return serial_async_get_poll_events(ov);
}
-static int async_get_read_fd( struct object *obj )
-{
- struct async *async = (struct async *)obj;
- assert( obj->ops == &async_ops );
- return dup( async->obj.fd );
-}
-
-static int async_get_write_fd( struct object *obj )
+static int async_get_fd( struct object *obj )
{
struct async *async = (struct async *)obj;
assert( obj->ops == &async_ops );
diff --git a/server/atom.c b/server/atom.c
index 0e9f477..55fc6b7 100644
--- a/server/atom.c
+++ b/server/atom.c
@@ -54,8 +54,7 @@
NULL, /* satified */
NULL, /* get_poll_events */
NULL, /* poll_event */
- no_read_fd, /* get_read_fd */
- no_write_fd, /* get_write_fd */
+ no_get_fd, /* get_fd */
no_flush, /* flush */
no_get_file_info, /* get_file_info */
atom_table_destroy /* destroy */
diff --git a/server/change.c b/server/change.c
index 844e21b..338712e 100644
--- a/server/change.c
+++ b/server/change.c
@@ -34,8 +34,7 @@
no_satisfied, /* satisfied */
NULL, /* get_poll_events */
NULL, /* poll_event */
- no_read_fd, /* get_read_fd */
- no_write_fd, /* get_write_fd */
+ no_get_fd, /* get_fd */
no_flush, /* flush */
no_get_file_info, /* get_file_info */
no_destroy /* destroy */
diff --git a/server/console.c b/server/console.c
index e8526a2..6f72ade 100644
--- a/server/console.c
+++ b/server/console.c
@@ -58,12 +58,12 @@
static void console_input_dump( struct object *obj, int verbose );
static int console_input_get_poll_events( struct object *obj );
-static int console_input_get_read_fd( struct object *obj );
+static int console_input_get_fd( struct object *obj );
static void console_input_destroy( struct object *obj );
static void screen_buffer_dump( struct object *obj, int verbose );
static int screen_buffer_get_poll_events( struct object *obj );
-static int screen_buffer_get_write_fd( struct object *obj );
+static int screen_buffer_get_fd( struct object *obj );
static void screen_buffer_destroy( struct object *obj );
/* common routine */
@@ -79,8 +79,7 @@
no_satisfied, /* satisfied */
console_input_get_poll_events, /* get_poll_events */
default_poll_event, /* poll_event */
- console_input_get_read_fd, /* get_read_fd */
- no_write_fd, /* get_write_fd */
+ console_input_get_fd, /* get_fd */
no_flush, /* flush */
console_get_info, /* get_file_info */
console_input_destroy /* destroy */
@@ -96,8 +95,7 @@
no_satisfied, /* satisfied */
screen_buffer_get_poll_events, /* get_poll_events */
default_poll_event, /* poll_event */
- no_read_fd, /* get_read_fd */
- screen_buffer_get_write_fd, /* get_write_fd */
+ screen_buffer_get_fd, /* get_fd */
no_flush, /* flush */
console_get_info, /* get_file_info */
screen_buffer_destroy /* destroy */
@@ -352,7 +350,7 @@
return POLLIN;
}
-static int console_input_get_read_fd( struct object *obj )
+static int console_input_get_fd( struct object *obj )
{
struct console_input *console = (struct console_input *)obj;
assert( obj->ops == &console_input_ops );
@@ -393,7 +391,7 @@
return POLLOUT;
}
-static int screen_buffer_get_write_fd( struct object *obj )
+static int screen_buffer_get_fd( struct object *obj )
{
struct screen_buffer *console = (struct screen_buffer *)obj;
assert( obj->ops == &screen_buffer_ops );
@@ -483,12 +481,12 @@
if (!(obj = get_handle_obj( current->process, req->file_handle,
GENERIC_READ | GENERIC_WRITE, NULL ))) return;
- if ((fd_in = obj->ops->get_read_fd( obj )) == -1)
+ if ((fd_in = obj->ops->get_fd( obj )) == -1)
{
release_object( obj );
return;
}
- fd_out = obj->ops->get_write_fd( obj );
+ fd_out = dup( fd_in );
release_object( obj );
if (fd_out != -1)
{
diff --git a/server/debugger.c b/server/debugger.c
index 946d659..c88f82e 100644
--- a/server/debugger.c
+++ b/server/debugger.c
@@ -53,8 +53,7 @@
no_satisfied, /* satisfied */
NULL, /* get_poll_events */
NULL, /* poll_event */
- no_read_fd, /* get_read_fd */
- no_write_fd, /* get_write_fd */
+ no_get_fd, /* get_fd */
no_flush, /* flush */
no_get_file_info, /* get_file_info */
debug_event_destroy /* destroy */
@@ -74,8 +73,7 @@
no_satisfied, /* satisfied */
NULL, /* get_poll_events */
NULL, /* poll_event */
- no_read_fd, /* get_read_fd */
- no_write_fd, /* get_write_fd */
+ no_get_fd, /* get_fd */
no_flush, /* flush */
no_get_file_info, /* get_file_info */
debug_ctx_destroy /* destroy */
diff --git a/server/device.c b/server/device.c
index f1ab4c3..4183b75 100644
--- a/server/device.c
+++ b/server/device.c
@@ -41,8 +41,7 @@
NULL, /* satisfied */
NULL, /* get_poll_events */
NULL, /* poll_event */
- no_read_fd, /* get_read_fd */
- no_write_fd, /* get_write_fd */
+ no_get_fd, /* get_fd */
no_flush, /* flush */
device_get_info, /* get_file_info */
no_destroy /* destroy */
diff --git a/server/event.c b/server/event.c
index f259b90..18f6b41 100644
--- a/server/event.c
+++ b/server/event.c
@@ -35,8 +35,7 @@
event_satisfied, /* satisfied */
NULL, /* get_poll_events */
NULL, /* poll_event */
- no_read_fd, /* get_read_fd */
- no_write_fd, /* get_write_fd */
+ no_get_fd, /* get_fd */
no_flush, /* flush */
no_get_file_info, /* get_file_info */
no_destroy /* destroy */
diff --git a/server/file.c b/server/file.c
index 61a3dd3..5c0f59a 100644
--- a/server/file.c
+++ b/server/file.c
@@ -45,8 +45,7 @@
static void file_dump( struct object *obj, int verbose );
static int file_get_poll_events( struct object *obj );
-static int file_get_read_fd( struct object *obj );
-static int file_get_write_fd( struct object *obj );
+static int file_get_fd( struct object *obj );
static int file_flush( struct object *obj );
static int file_get_info( struct object *obj, struct get_file_info_request *req );
static void file_destroy( struct object *obj );
@@ -61,8 +60,7 @@
no_satisfied, /* satisfied */
file_get_poll_events, /* get_poll_events */
default_poll_event, /* poll_event */
- file_get_read_fd, /* get_read_fd */
- file_get_write_fd, /* get_write_fd */
+ file_get_fd, /* get_fd */
file_flush, /* flush */
file_get_info, /* get_file_info */
file_destroy /* destroy */
@@ -233,14 +231,7 @@
return events;
}
-static int file_get_read_fd( struct object *obj )
-{
- struct file *file = (struct file *)obj;
- assert( obj->ops == &file_ops );
- return dup( file->obj.fd );
-}
-
-static int file_get_write_fd( struct object *obj )
+static int file_get_fd( struct object *obj )
{
struct file *file = (struct file *)obj;
assert( obj->ops == &file_ops );
@@ -480,26 +471,15 @@
else set_error( STATUS_INVALID_PARAMETER );
}
-/* get a Unix fd to read from a file */
-DECL_HANDLER(get_read_fd)
+/* get a Unix fd to access a file */
+DECL_HANDLER(get_handle_fd)
{
struct object *obj;
- if ((obj = get_handle_obj( current->process, req->handle, GENERIC_READ, NULL )))
+ req->fd = -1;
+ if ((obj = get_handle_obj( current->process, req->handle, req->access, NULL )))
{
- set_reply_fd( current, obj->ops->get_read_fd( obj ) );
- release_object( obj );
- }
-}
-
-/* get a Unix fd to write to a file */
-DECL_HANDLER(get_write_fd)
-{
- struct object *obj;
-
- if ((obj = get_handle_obj( current->process, req->handle, GENERIC_WRITE, NULL )))
- {
- set_reply_fd( current, obj->ops->get_write_fd( obj ) );
+ set_reply_fd( current, obj->ops->get_fd( obj ) );
release_object( obj );
}
}
diff --git a/server/handle.c b/server/handle.c
index e71c261..1d1317f 100644
--- a/server/handle.c
+++ b/server/handle.c
@@ -76,8 +76,7 @@
NULL, /* satisfied */
NULL, /* get_poll_events */
NULL, /* poll_event */
- no_read_fd, /* get_read_fd */
- no_write_fd, /* get_write_fd */
+ no_get_fd, /* get_fd */
no_flush, /* flush */
no_get_file_info, /* get_file_info */
handle_table_destroy /* destroy */
diff --git a/server/mapping.c b/server/mapping.c
index 254924e..a68e8fb 100644
--- a/server/mapping.c
+++ b/server/mapping.c
@@ -43,8 +43,7 @@
NULL, /* satisfied */
NULL, /* get_poll_events */
NULL, /* poll_event */
- no_read_fd, /* get_read_fd */
- no_write_fd, /* get_write_fd */
+ no_get_fd, /* get_fd */
no_flush, /* flush */
no_get_file_info, /* get_file_info */
mapping_destroy /* destroy */
diff --git a/server/mutex.c b/server/mutex.c
index 82b76c2..1adf373 100644
--- a/server/mutex.c
+++ b/server/mutex.c
@@ -39,8 +39,7 @@
mutex_satisfied, /* satisfied */
NULL, /* get_poll_events */
NULL, /* poll_event */
- no_read_fd, /* get_read_fd */
- no_write_fd, /* get_write_fd */
+ no_get_fd, /* get_fd */
no_flush, /* flush */
no_get_file_info, /* get_file_info */
mutex_destroy /* destroy */
diff --git a/server/object.c b/server/object.c
index f2a7f1f..ba2bce8 100644
--- a/server/object.c
+++ b/server/object.c
@@ -251,13 +251,7 @@
return 0; /* not abandoned */
}
-int no_read_fd( struct object *obj )
-{
- set_error( STATUS_OBJECT_TYPE_MISMATCH );
- return -1;
-}
-
-int no_write_fd( struct object *obj )
+int no_get_fd( struct object *obj )
{
set_error( STATUS_OBJECT_TYPE_MISMATCH );
return -1;
diff --git a/server/object.h b/server/object.h
index 746b7f6..7a7d1a3 100644
--- a/server/object.h
+++ b/server/object.h
@@ -46,10 +46,8 @@
int (*get_poll_events)(struct object *);
/* a poll() event occured */
void (*poll_event)(struct object *,int event);
- /* return a Unix fd that can be used to read from the object */
- int (*get_read_fd)(struct object *);
- /* return a Unix fd that can be used to write to the object */
- int (*get_write_fd)(struct object *);
+ /* return a Unix fd that can be used to read/write from the object */
+ int (*get_fd)(struct object *);
/* flush the object buffers */
int (*flush)(struct object *);
/* get file information */
@@ -93,8 +91,7 @@
extern struct object *find_object( const WCHAR *name, size_t len );
extern int no_add_queue( struct object *obj, struct wait_queue_entry *entry );
extern int no_satisfied( struct object *obj, struct thread *thread );
-extern int no_read_fd( struct object *obj );
-extern int no_write_fd( struct object *obj );
+extern int no_get_fd( struct object *obj );
extern int no_flush( struct object *obj );
extern int no_get_file_info( struct object *obj, struct get_file_info_request *info );
extern void no_destroy( struct object *obj );
diff --git a/server/pipe.c b/server/pipe.c
index d86fde8..5c830c0 100644
--- a/server/pipe.c
+++ b/server/pipe.c
@@ -37,8 +37,7 @@
static void pipe_dump( struct object *obj, int verbose );
static int pipe_get_poll_events( struct object *obj );
-static int pipe_get_read_fd( struct object *obj );
-static int pipe_get_write_fd( struct object *obj );
+static int pipe_get_fd( struct object *obj );
static int pipe_get_info( struct object *obj, struct get_file_info_request *req );
static void pipe_destroy( struct object *obj );
@@ -52,8 +51,7 @@
no_satisfied, /* satisfied */
pipe_get_poll_events, /* get_poll_events */
default_poll_event, /* poll_event */
- pipe_get_read_fd, /* get_read_fd */
- pipe_get_write_fd, /* get_write_fd */
+ pipe_get_fd, /* get_fd */
no_flush, /* flush */
pipe_get_info, /* get_file_info */
pipe_destroy /* destroy */
@@ -114,7 +112,7 @@
return (pipe->side == READ_SIDE) ? POLLIN : POLLOUT;
}
-static int pipe_get_read_fd( struct object *obj )
+static int pipe_get_fd( struct object *obj )
{
struct pipe *pipe = (struct pipe *)obj;
assert( obj->ops == &pipe_ops );
@@ -124,29 +122,6 @@
set_error( STATUS_PIPE_BROKEN );
return -1;
}
- if (pipe->side != READ_SIDE) /* FIXME: should not be necessary */
- {
- set_error( STATUS_ACCESS_DENIED );
- return -1;
- }
- return dup( pipe->obj.fd );
-}
-
-static int pipe_get_write_fd( struct object *obj )
-{
- struct pipe *pipe = (struct pipe *)obj;
- assert( obj->ops == &pipe_ops );
-
- if (!pipe->other)
- {
- set_error( STATUS_PIPE_BROKEN );
- return -1;
- }
- if (pipe->side != WRITE_SIDE) /* FIXME: should not be necessary */
- {
- set_error( STATUS_ACCESS_DENIED );
- return -1;
- }
return dup( pipe->obj.fd );
}
diff --git a/server/process.c b/server/process.c
index bdf4be6..c88bd40 100644
--- a/server/process.c
+++ b/server/process.c
@@ -48,8 +48,7 @@
no_satisfied, /* satisfied */
NULL, /* get_poll_events */
NULL, /* poll_event */
- no_read_fd, /* get_read_fd */
- no_write_fd, /* get_write_fd */
+ no_get_fd, /* get_fd */
no_flush, /* flush */
no_get_file_info, /* get_file_info */
process_destroy /* destroy */
@@ -87,8 +86,7 @@
no_satisfied, /* satisfied */
NULL, /* get_poll_events */
NULL, /* poll_event */
- no_read_fd, /* get_read_fd */
- no_write_fd, /* get_write_fd */
+ no_get_fd, /* get_fd */
no_flush, /* flush */
no_get_file_info, /* get_file_info */
startup_info_destroy /* destroy */
@@ -716,7 +714,6 @@
{
size_t len = get_req_data_size( req );
struct startup_info *info;
- int sock[2];
if (current->info)
{
@@ -752,24 +749,6 @@
}
memcpy( info->filename, get_req_data(req), len );
info->filename[len] = 0;
-
- if (req->alloc_fd)
- {
- if (socketpair( AF_UNIX, SOCK_STREAM, 0, sock ) == -1)
- {
- file_set_error();
- release_object( info );
- return;
- }
- if (!create_process( sock[0] ))
- {
- release_object( info );
- close( sock[1] );
- return;
- }
- /* thread object will be released when the thread gets killed */
- set_reply_fd( current, sock[1] );
- }
current->info = info;
}
diff --git a/server/queue.c b/server/queue.c
index 80cfda6..8d63e7b 100644
--- a/server/queue.c
+++ b/server/queue.c
@@ -36,8 +36,7 @@
msg_queue_satisfied, /* satisfied */
NULL, /* get_poll_events */
NULL, /* poll_event */
- no_read_fd, /* get_read_fd */
- no_write_fd, /* get_write_fd */
+ no_get_fd, /* get_fd */
no_flush, /* flush */
no_get_file_info, /* get_file_info */
no_destroy /* destroy */
diff --git a/server/registry.c b/server/registry.c
index 3c1d57c..af7ba8a 100644
--- a/server/registry.c
+++ b/server/registry.c
@@ -137,8 +137,7 @@
NULL, /* satisfied */
NULL, /* get_poll_events */
NULL, /* poll_event */
- no_read_fd, /* get_read_fd */
- no_write_fd, /* get_write_fd */
+ no_get_fd, /* get_fd */
no_flush, /* flush */
no_get_file_info, /* get_file_info */
key_destroy /* destroy */
@@ -1341,7 +1340,7 @@
int fd;
if (!(obj = get_handle_obj( current->process, handle, GENERIC_READ, NULL ))) return;
- fd = obj->ops->get_read_fd( obj );
+ fd = obj->ops->get_fd( obj );
release_object( obj );
if (fd != -1)
{
@@ -1436,7 +1435,7 @@
return;
}
if (!(obj = get_handle_obj( current->process, handle, GENERIC_WRITE, NULL ))) return;
- fd = obj->ops->get_write_fd( obj );
+ fd = obj->ops->get_fd( obj );
release_object( obj );
if (fd != -1)
{
diff --git a/server/request.c b/server/request.c
index 5ad899a..c3928e5 100644
--- a/server/request.c
+++ b/server/request.c
@@ -64,8 +64,7 @@
NULL, /* satisfied */
NULL, /* get_poll_events */
master_socket_poll_event, /* poll_event */
- no_read_fd, /* get_read_fd */
- no_write_fd, /* get_write_fd */
+ no_get_fd, /* get_fd */
no_flush, /* flush */
no_get_file_info, /* get_file_info */
master_socket_destroy /* destroy */
diff --git a/server/request.h b/server/request.h
index ec32edf..ef856f3 100644
--- a/server/request.h
+++ b/server/request.h
@@ -106,8 +106,7 @@
DECL_HANDLER(open_semaphore);
DECL_HANDLER(create_file);
DECL_HANDLER(alloc_file_handle);
-DECL_HANDLER(get_read_fd);
-DECL_HANDLER(get_write_fd);
+DECL_HANDLER(get_handle_fd);
DECL_HANDLER(set_file_pointer);
DECL_HANDLER(truncate_file);
DECL_HANDLER(set_file_time);
@@ -222,8 +221,7 @@
(req_handler)req_open_semaphore,
(req_handler)req_create_file,
(req_handler)req_alloc_file_handle,
- (req_handler)req_get_read_fd,
- (req_handler)req_get_write_fd,
+ (req_handler)req_get_handle_fd,
(req_handler)req_set_file_pointer,
(req_handler)req_truncate_file,
(req_handler)req_set_file_time,
diff --git a/server/semaphore.c b/server/semaphore.c
index 25c0c51..710f6ab 100644
--- a/server/semaphore.c
+++ b/server/semaphore.c
@@ -35,8 +35,7 @@
semaphore_satisfied, /* satisfied */
NULL, /* get_poll_events */
NULL, /* poll_event */
- no_read_fd, /* get_read_fd */
- no_write_fd, /* get_write_fd */
+ no_get_fd, /* get_fd */
no_flush, /* flush */
no_get_file_info, /* get_file_info */
no_destroy /* destroy */
diff --git a/server/serial.c b/server/serial.c
index c549bec..7d30d4d 100644
--- a/server/serial.c
+++ b/server/serial.c
@@ -37,8 +37,7 @@
#include "request.h"
static void serial_dump( struct object *obj, int verbose );
-static int serial_get_read_fd( struct object *obj );
-static int serial_get_write_fd( struct object *obj );
+static int serial_get_fd( struct object *obj );
static int serial_get_info( struct object *obj, struct get_file_info_request *req );
static int serial_get_poll_events( struct object *obj );
@@ -72,8 +71,7 @@
no_satisfied, /* satisfied */
serial_get_poll_events, /* get_poll_events */
default_poll_event, /* poll_event */
- serial_get_read_fd, /* get_read_fd */
- serial_get_write_fd, /* get_write_fd */
+ serial_get_fd, /* get_fd */
no_flush, /* flush */
serial_get_info, /* get_file_info */
no_destroy /* destroy */
@@ -152,14 +150,7 @@
return events;
}
-static int serial_get_read_fd( struct object *obj )
-{
- struct serial *serial = (struct serial *)obj;
- assert( obj->ops == &serial_ops );
- return dup( serial->obj.fd );
-}
-
-static int serial_get_write_fd( struct object *obj )
+static int serial_get_fd( struct object *obj )
{
struct serial *serial = (struct serial *)obj;
assert( obj->ops == &serial_ops );
diff --git a/server/snapshot.c b/server/snapshot.c
index 0a690eb..ae4eb49 100644
--- a/server/snapshot.c
+++ b/server/snapshot.c
@@ -47,8 +47,7 @@
NULL, /* satisfied */
NULL, /* get_poll_events */
NULL, /* poll_event */
- no_read_fd, /* get_read_fd */
- no_write_fd, /* get_write_fd */
+ no_get_fd, /* get_fd */
no_flush, /* flush */
no_get_file_info, /* get_file_info */
snapshot_destroy /* destroy */
diff --git a/server/sock.c b/server/sock.c
index 72cea89..c5f41e4 100644
--- a/server/sock.c
+++ b/server/sock.c
@@ -69,8 +69,7 @@
no_satisfied, /* satisfied */
sock_get_poll_events, /* get_poll_events */
sock_poll_event, /* poll_event */
- sock_get_fd, /* get_read_fd */
- sock_get_fd, /* get_write_fd */
+ sock_get_fd, /* get_fd */
no_flush, /* flush */
no_get_file_info, /* get_file_info */
sock_destroy /* destroy */
diff --git a/server/thread.c b/server/thread.c
index d21cdd7..7cfacdc 100644
--- a/server/thread.c
+++ b/server/thread.c
@@ -76,8 +76,7 @@
no_satisfied, /* satisfied */
NULL, /* get_poll_events */
thread_poll_event, /* poll_event */
- no_read_fd, /* get_read_fd */
- no_write_fd, /* get_write_fd */
+ no_get_fd, /* get_fd */
no_flush, /* flush */
no_get_file_info, /* get_file_info */
destroy_thread /* destroy */
diff --git a/server/timer.c b/server/timer.c
index d74fc72..198b0f5 100644
--- a/server/timer.c
+++ b/server/timer.c
@@ -42,8 +42,7 @@
timer_satisfied, /* satisfied */
NULL, /* get_poll_events */
NULL, /* poll_event */
- no_read_fd, /* get_read_fd */
- no_write_fd, /* get_write_fd */
+ no_get_fd, /* get_fd */
no_flush, /* flush */
no_get_file_info, /* get_file_info */
timer_destroy /* destroy */
diff --git a/server/trace.c b/server/trace.c
index 6b6f3ab..bad07e8 100644
--- a/server/trace.c
+++ b/server/trace.c
@@ -256,7 +256,6 @@
fprintf( stderr, " hstdout=%d,", req->hstdout );
fprintf( stderr, " hstderr=%d,", req->hstderr );
fprintf( stderr, " cmd_show=%d,", req->cmd_show );
- fprintf( stderr, " alloc_fd=%d,", req->alloc_fd );
fprintf( stderr, " filename=" );
cur_pos += dump_varargs_string( req );
}
@@ -657,14 +656,15 @@
fprintf( stderr, " handle=%d", req->handle );
}
-static void dump_get_read_fd_request( const struct get_read_fd_request *req )
+static void dump_get_handle_fd_request( const struct get_handle_fd_request *req )
{
- fprintf( stderr, " handle=%d", req->handle );
+ fprintf( stderr, " handle=%d,", req->handle );
+ fprintf( stderr, " access=%08x", req->access );
}
-static void dump_get_write_fd_request( const struct get_write_fd_request *req )
+static void dump_get_handle_fd_reply( const struct get_handle_fd_request *req )
{
- fprintf( stderr, " handle=%d", req->handle );
+ fprintf( stderr, " fd=%d", req->fd );
}
static void dump_set_file_pointer_request( const struct set_file_pointer_request *req )
@@ -1487,8 +1487,7 @@
(dump_func)dump_open_semaphore_request,
(dump_func)dump_create_file_request,
(dump_func)dump_alloc_file_handle_request,
- (dump_func)dump_get_read_fd_request,
- (dump_func)dump_get_write_fd_request,
+ (dump_func)dump_get_handle_fd_request,
(dump_func)dump_set_file_pointer_request,
(dump_func)dump_truncate_file_request,
(dump_func)dump_set_file_time_request,
@@ -1600,8 +1599,7 @@
(dump_func)dump_open_semaphore_reply,
(dump_func)dump_create_file_reply,
(dump_func)dump_alloc_file_handle_reply,
- (dump_func)0,
- (dump_func)0,
+ (dump_func)dump_get_handle_fd_reply,
(dump_func)dump_set_file_pointer_reply,
(dump_func)0,
(dump_func)0,
@@ -1713,8 +1711,7 @@
"open_semaphore",
"create_file",
"alloc_file_handle",
- "get_read_fd",
- "get_write_fd",
+ "get_handle_fd",
"set_file_pointer",
"truncate_file",
"set_file_time",