Merged the get_read_fd and get_write_fd requests.

This commit is contained in:
Alexandre Julliard 2000-12-19 02:12:45 +00:00
parent d88dbb4a10
commit 1ab243bac1
29 changed files with 71 additions and 207 deletions

View File

@ -198,19 +198,10 @@ HFILE FILE_DupUnixHandle( int fd, DWORD access )
int FILE_GetUnixHandle( HANDLE handle, DWORD access )
{
int unix_handle = -1;
if (access == GENERIC_READ)
{
struct get_read_fd_request *req = get_req_buffer();
req->handle = handle;
server_call_fd( REQ_GET_READ_FD, -1, &unix_handle );
}
else if (access == GENERIC_WRITE)
{
struct get_write_fd_request *req = get_req_buffer();
req->handle = handle;
server_call_fd( REQ_GET_WRITE_FD, -1, &unix_handle );
}
else ERR( "bad access %08lx\n", access );
struct get_handle_fd_request *req = get_req_buffer();
req->handle = handle;
req->access = access;
server_call_fd( REQ_GET_HANDLE_FD, -1, &unix_handle );
return unix_handle;
}

View File

@ -130,7 +130,6 @@ struct new_process_request
IN int hstdout; /* handle for stdout */
IN int hstderr; /* handle for stderr */
IN int cmd_show; /* main window show mode */
IN int alloc_fd; /* create the fd pair right now? */
IN VARARG(filename,string); /* file name of main exe */
};
@ -542,19 +541,13 @@ struct alloc_file_handle_request
};
/* Get a Unix fd to read from a file */
struct get_read_fd_request
{
REQUEST_HEADER; /* request header */
IN int handle; /* handle to the file */
};
/* Get a Unix fd to write to a file */
struct get_write_fd_request
/* Get a Unix fd to access a file */
struct get_handle_fd_request
{
REQUEST_HEADER; /* request header */
IN int handle; /* handle to the file */
IN unsigned int access; /* wanted access rights */
OUT int fd; /* file descriptor */
};
@ -1396,8 +1389,7 @@ enum request
REQ_OPEN_SEMAPHORE,
REQ_CREATE_FILE,
REQ_ALLOC_FILE_HANDLE,
REQ_GET_READ_FD,
REQ_GET_WRITE_FD,
REQ_GET_HANDLE_FD,
REQ_SET_FILE_POINTER,
REQ_TRUNCATE_FILE,
REQ_SET_FILE_TIME,
@ -1513,8 +1505,7 @@ union generic_request
struct open_semaphore_request open_semaphore;
struct create_file_request create_file;
struct alloc_file_handle_request alloc_file_handle;
struct get_read_fd_request get_read_fd;
struct get_write_fd_request get_write_fd;
struct get_handle_fd_request get_handle_fd;
struct set_file_pointer_request set_file_pointer;
struct truncate_file_request truncate_file;
struct set_file_time_request set_file_time;
@ -1588,7 +1579,7 @@ union generic_request
struct async_result_request async_result;
};
#define SERVER_PROTOCOL_VERSION 29
#define SERVER_PROTOCOL_VERSION 30
/* ### make_requests end ### */
/* Everything above this line is generated automatically by tools/make_requests */

View File

@ -778,7 +778,6 @@ BOOL PROCESS_Create( HFILE hFile, LPCSTR filename, LPSTR cmd_line, LPCSTR env,
req->hstderr = GetStdHandle( STD_ERROR_HANDLE );
}
req->cmd_show = startup->wShowWindow;
req->alloc_fd = 0;
if (hFile == -1) /* unix process */
{

View File

@ -58,8 +58,7 @@ struct async
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 @@ static const struct object_ops async_ops =
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 @@ static int async_get_poll_events( struct object *obj )
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 );

View File

@ -54,8 +54,7 @@ static const struct object_ops atom_table_ops =
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 */

View File

@ -34,8 +34,7 @@ static const struct object_ops change_ops =
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 */

View File

@ -58,12 +58,12 @@ struct screen_buffer
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 @@ static const struct object_ops console_input_ops =
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 @@ static const struct object_ops screen_buffer_ops =
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 @@ static int console_input_get_poll_events( struct object *obj )
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 @@ static int screen_buffer_get_poll_events( struct object *obj )
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 @@ DECL_HANDLER(set_console_fd)
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)
{

View File

@ -53,8 +53,7 @@ static const struct object_ops debug_event_ops =
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 @@ static const struct object_ops debug_ctx_ops =
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 */

View File

@ -41,8 +41,7 @@ static const struct object_ops device_ops =
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 */

View File

@ -35,8 +35,7 @@ static const struct object_ops event_ops =
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 */

View File

@ -45,8 +45,7 @@ static struct file *file_hash[NAME_HASH_SIZE];
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 @@ static const struct object_ops file_ops =
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 @@ static int file_get_poll_events( struct object *obj )
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 @@ DECL_HANDLER(alloc_file_handle)
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 );
}
}

View File

@ -76,8 +76,7 @@ static const struct object_ops handle_table_ops =
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 */

View File

@ -43,8 +43,7 @@ static const struct object_ops mapping_ops =
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 */

View File

@ -39,8 +39,7 @@ static const struct object_ops mutex_ops =
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 */

View File

@ -251,13 +251,7 @@ int no_satisfied( struct object *obj, struct thread *thread )
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;

View File

@ -46,10 +46,8 @@ struct object_ops
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 void release_object( void *obj );
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 );

View File

@ -37,8 +37,7 @@ struct pipe
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 @@ static const struct object_ops pipe_ops =
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 @@ static int pipe_get_poll_events( struct object *obj )
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 @@ static int pipe_get_read_fd( struct object *obj )
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 );
}

View File

@ -48,8 +48,7 @@ static const struct object_ops process_ops =
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 @@ static const struct object_ops startup_info_ops =
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 @@ DECL_HANDLER(new_process)
{
size_t len = get_req_data_size( req );
struct startup_info *info;
int sock[2];
if (current->info)
{
@ -752,24 +749,6 @@ DECL_HANDLER(new_process)
}
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;
}

View File

@ -36,8 +36,7 @@ static const struct object_ops msg_queue_ops =
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 */

View File

@ -137,8 +137,7 @@ static const struct object_ops key_ops =
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 @@ static void load_registry( struct key *key, int handle )
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 @@ static void save_registry( struct key *key, int handle )
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)
{

View File

@ -64,8 +64,7 @@ static const struct object_ops master_socket_ops =
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 */

View File

@ -106,8 +106,7 @@ DECL_HANDLER(release_semaphore);
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 @@ static const req_handler req_handlers[REQ_NB_REQUESTS] =
(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,

View File

@ -35,8 +35,7 @@ static const struct object_ops semaphore_ops =
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 */

View File

@ -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 @@ static const struct object_ops serial_ops =
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 @@ static int serial_get_poll_events( struct object *obj )
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 );

View File

@ -47,8 +47,7 @@ static const struct object_ops snapshot_ops =
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 */

View File

@ -69,8 +69,7 @@ static const struct object_ops sock_ops =
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 */

View File

@ -76,8 +76,7 @@ static const struct object_ops thread_ops =
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 */

View File

@ -42,8 +42,7 @@ static const struct object_ops timer_ops =
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 */

View File

@ -256,7 +256,6 @@ static void dump_new_process_request( const struct new_process_request *req )
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 @@ static void dump_alloc_file_handle_reply( const struct alloc_file_handle_request
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 @@ static const dump_func req_dumpers[REQ_NB_REQUESTS] = {
(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 @@ static const dump_func reply_dumpers[REQ_NB_REQUESTS] = {
(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 @@ static const char * const req_names[REQ_NB_REQUESTS] = {
"open_semaphore",
"create_file",
"alloc_file_handle",
"get_read_fd",
"get_write_fd",
"get_handle_fd",
"set_file_pointer",
"truncate_file",
"set_file_time",