Fd type is no longer used, get rid of it.
diff --git a/dlls/kernel/comm.c b/dlls/kernel/comm.c index 6a8ccbe..0eee0b0 100644 --- a/dlls/kernel/comm.c +++ b/dlls/kernel/comm.c
@@ -110,7 +110,7 @@ { int fd, ret; - ret = wine_server_handle_to_fd( handle, access, &fd, NULL, NULL ); + ret = wine_server_handle_to_fd( handle, access, &fd, NULL ); if (ret) SetLastError( RtlNtStatusToDosError(ret) ); return fd; }
diff --git a/dlls/kernel/file.c b/dlls/kernel/file.c index fefe715..bf86e58 100644 --- a/dlls/kernel/file.c +++ b/dlls/kernel/file.c
@@ -866,7 +866,7 @@ return ret; } - if (!(status = wine_server_handle_to_fd( hFile, 0, &fd, NULL, NULL ))) + if (!(status = wine_server_handle_to_fd( hFile, 0, &fd, NULL ))) { off_t pos, res;
diff --git a/dlls/kernel/sync.c b/dlls/kernel/sync.c index 3f725cb..9b00360 100644 --- a/dlls/kernel/sync.c +++ b/dlls/kernel/sync.c
@@ -1068,7 +1068,7 @@ #ifdef FIONREAD int avail=0, fd, ret, flags; - ret = wine_server_handle_to_fd( hPipe, GENERIC_READ, &fd, NULL, &flags ); + ret = wine_server_handle_to_fd( hPipe, GENERIC_READ, &fd, &flags ); if (ret) { SetLastError( RtlNtStatusToDosError(ret) );
diff --git a/dlls/kernel/vxd.c b/dlls/kernel/vxd.c index a562d72..ecd5bd0 100644 --- a/dlls/kernel/vxd.c +++ b/dlls/kernel/vxd.c
@@ -135,7 +135,7 @@ DeviceIoProc ret = NULL; int status, i, fd; - status = wine_server_handle_to_fd( handle, 0, &fd, NULL, NULL ); + status = wine_server_handle_to_fd( handle, 0, &fd, NULL ); if (status) { SetLastError( RtlNtStatusToDosError(status) ); @@ -236,7 +236,7 @@ FreeLibrary( module ); goto done; } - wine_server_handle_to_fd( handle, 0, &fd, NULL, NULL ); + wine_server_handle_to_fd( handle, 0, &fd, NULL ); if (fstat( fd, &st ) != -1) { vxd_modules[i].dev = st.st_dev;
diff --git a/dlls/ntdll/cdrom.c b/dlls/ntdll/cdrom.c index 5e5259f..782f7d0 100644 --- a/dlls/ntdll/cdrom.c +++ b/dlls/ntdll/cdrom.c
@@ -1925,7 +1925,7 @@ piosb->Information = 0; - if ((status = wine_server_handle_to_fd( hDevice, 0, &fd, NULL, NULL ))) goto error; + if ((status = wine_server_handle_to_fd( hDevice, 0, &fd, NULL ))) goto error; if ((status = CDROM_Open(fd, &dev))) { wine_server_release_fd( hDevice, fd );
diff --git a/dlls/ntdll/directory.c b/dlls/ntdll/directory.c index ac58980..e947d2c 100644 --- a/dlls/ntdll/directory.c +++ b/dlls/ntdll/directory.c
@@ -674,8 +674,7 @@ return io->u.Status = STATUS_NOT_IMPLEMENTED; } - if ((io->u.Status = wine_server_handle_to_fd( handle, GENERIC_READ, - &fd, NULL, NULL )) != STATUS_SUCCESS) + if ((io->u.Status = wine_server_handle_to_fd( handle, GENERIC_READ, &fd, NULL )) != STATUS_SUCCESS) return io->u.Status; io->Information = 0;
diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c index 4d253fc..843c055 100644 --- a/dlls/ntdll/file.c +++ b/dlls/ntdll/file.c
@@ -408,7 +408,7 @@ hFile,hEvent,apc,apc_user,io_status,buffer,length,offset,key); io_status->Information = 0; - io_status->u.Status = wine_server_handle_to_fd( hFile, GENERIC_READ, &unix_handle, NULL, &flags ); + io_status->u.Status = wine_server_handle_to_fd( hFile, GENERIC_READ, &unix_handle, &flags ); if (io_status->u.Status) return io_status->u.Status; if (flags & FD_FLAG_RECV_SHUTDOWN) @@ -604,7 +604,7 @@ hFile,hEvent,apc,apc_user,io_status,buffer,length,offset,key); io_status->Information = 0; - io_status->u.Status = wine_server_handle_to_fd( hFile, GENERIC_WRITE, &unix_handle, NULL, &flags ); + io_status->u.Status = wine_server_handle_to_fd( hFile, GENERIC_WRITE, &unix_handle, &flags ); if (io_status->u.Status) return io_status->u.Status; if (flags & FD_FLAG_SEND_SHUTDOWN) @@ -872,7 +872,7 @@ if (len < info_sizes[class]) return io->u.Status = STATUS_INFO_LENGTH_MISMATCH; - if ((io->u.Status = wine_server_handle_to_fd( hFile, 0, &fd, NULL, NULL ))) + if ((io->u.Status = wine_server_handle_to_fd( hFile, 0, &fd, NULL ))) return io->u.Status; switch (class) @@ -1027,7 +1027,7 @@ TRACE("(%p,%p,%p,0x%08lx,0x%08x)\n", handle, io, ptr, len, class); - if ((io->u.Status = wine_server_handle_to_fd( handle, 0, &fd, NULL, NULL ))) + if ((io->u.Status = wine_server_handle_to_fd( handle, 0, &fd, NULL ))) return io->u.Status; io->u.Status = STATUS_SUCCESS; @@ -1230,7 +1230,7 @@ int fd; struct stat st; - if ((io->u.Status = wine_server_handle_to_fd( handle, 0, &fd, NULL, NULL )) != STATUS_SUCCESS) + if ((io->u.Status = wine_server_handle_to_fd( handle, 0, &fd, NULL )) != STATUS_SUCCESS) return io->u.Status; io->u.Status = STATUS_NOT_IMPLEMENTED;
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec index a8cef2f..b57ca6c 100644 --- a/dlls/ntdll/ntdll.spec +++ b/dlls/ntdll/ntdll.spec
@@ -1121,7 +1121,7 @@ # Server interface @ cdecl -norelay wine_server_call(ptr) @ cdecl wine_server_fd_to_handle(long long long ptr) -@ cdecl wine_server_handle_to_fd(long long ptr ptr ptr) +@ cdecl wine_server_handle_to_fd(long long ptr ptr) @ cdecl wine_server_release_fd(long long) @ cdecl wine_server_send_fd(long)
diff --git a/dlls/ntdll/server.c b/dlls/ntdll/server.c index 11ac207..57a8db4 100644 --- a/dlls/ntdll/server.c +++ b/dlls/ntdll/server.c
@@ -460,14 +460,12 @@ * handle [I] Wine file handle. * access [I] Win32 file access rights requested. * unix_fd [O] Address where Unix file descriptor will be stored. - * type [O] Address where the file type will be stored. Optional. * flags [O] Address where the Unix flags associated with file will be stored. Optional. * * RETURNS * NTSTATUS code */ -int wine_server_handle_to_fd( obj_handle_t handle, unsigned int access, int *unix_fd, - enum fd_type *type, int *flags ) +int wine_server_handle_to_fd( obj_handle_t handle, unsigned int access, int *unix_fd, int *flags ) { obj_handle_t fd_handle; int ret, fd = -1; @@ -480,7 +478,6 @@ req->handle = handle; req->access = access; if (!(ret = wine_server_call( req ))) fd = reply->fd; - if (type) *type = reply->type; if (flags) *flags = reply->flags; } SERVER_END_REQ;
diff --git a/dlls/ntdll/virtual.c b/dlls/ntdll/virtual.c index 7ef9043..7ec0db7 100644 --- a/dlls/ntdll/virtual.c +++ b/dlls/ntdll/virtual.c
@@ -1638,7 +1638,7 @@ SERVER_END_REQ; if (res) return res; - if ((res = wine_server_handle_to_fd( handle, 0, &unix_handle, NULL, NULL ))) return res; + if ((res = wine_server_handle_to_fd( handle, 0, &unix_handle, NULL ))) return res; if (NtQueryVolumeInformationFile( handle, &io, &device_info, sizeof(device_info), FileFsDeviceInformation ) == STATUS_SUCCESS) @@ -1651,7 +1651,7 @@ int shared_fd; if ((res = wine_server_handle_to_fd( shared_file, GENERIC_READ, &shared_fd, - NULL, NULL ))) goto done; + NULL ))) goto done; res = map_image( handle, unix_handle, base, size_low, header_size, shared_fd, removable, addr_ptr ); wine_server_release_fd( shared_file, shared_fd );
diff --git a/dlls/winedos/int13.c b/dlls/winedos/int13.c index 163a6f4..a65ef84 100644 --- a/dlls/winedos/int13.c +++ b/dlls/winedos/int13.c
@@ -122,7 +122,7 @@ h = CreateFileW(drive_root, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL); if (h == INVALID_HANDLE_VALUE || - wine_server_handle_to_fd(h, GENERIC_READ, &floppy_fd, NULL, NULL)) + wine_server_handle_to_fd(h, GENERIC_READ, &floppy_fd, NULL)) { WARN("Can't determine floppy geometry !\n"); INT13_SetStatus( context, 0x07 ); /* drive parameter activity failed */
diff --git a/dlls/winedos/int21.c b/dlls/winedos/int21.c index c6dff3d..12c1bc2 100644 --- a/dlls/winedos/int21.c +++ b/dlls/winedos/int21.c
@@ -908,7 +908,7 @@ struct stat st; if (!(handle = INT21_CreateMagicDeviceHandle( magic_devices[i].name ))) return 0; - wine_server_handle_to_fd( handle, 0, &fd, NULL, NULL ); + wine_server_handle_to_fd( handle, 0, &fd, NULL ); fstat( fd, &st ); wine_server_release_fd( handle, fd ); magic_devices[i].dev = st.st_dev; @@ -2684,7 +2684,7 @@ int status, i, fd; HANDLE handle = DosFileHandleToWin32Handle(BX_reg(context)); - status = wine_server_handle_to_fd( handle, 0, &fd, NULL, NULL ); + status = wine_server_handle_to_fd( handle, 0, &fd, NULL ); if (status) { SET_AX( context, RtlNtStatusToDosError(status) );
diff --git a/dlls/winsock/socket.c b/dlls/winsock/socket.c index 0f1ba34..02e8d35 100644 --- a/dlls/winsock/socket.c +++ b/dlls/winsock/socket.c
@@ -315,7 +315,7 @@ inline static int get_sock_fd( SOCKET s, DWORD access, int *flags ) { int fd; - if (set_error( wine_server_handle_to_fd( SOCKET2HANDLE(s), access, &fd, NULL, flags ) )) + if (set_error( wine_server_handle_to_fd( SOCKET2HANDLE(s), access, &fd, flags ) )) return -1; return fd; }
diff --git a/include/wine/server.h b/include/wine/server.h index 780d02e..8bda403 100644 --- a/include/wine/server.h +++ b/include/wine/server.h
@@ -53,8 +53,7 @@ extern unsigned int wine_server_call( void *req_ptr ); extern void wine_server_send_fd( int fd ); extern int wine_server_fd_to_handle( int fd, unsigned int access, int inherit, obj_handle_t *handle ); -extern int wine_server_handle_to_fd( obj_handle_t handle, unsigned int access, int *unix_fd, - enum fd_type *type, int *flags ); +extern int wine_server_handle_to_fd( obj_handle_t handle, unsigned int access, int *unix_fd, int *flags ); extern void wine_server_release_fd( obj_handle_t handle, int unix_fd ); /* do a server call and set the last error code */
diff --git a/include/wine/server_protocol.h b/include/wine/server_protocol.h index 40810a9..36c41c1 100644 --- a/include/wine/server_protocol.h +++ b/include/wine/server_protocol.h
@@ -792,15 +792,8 @@ { struct reply_header __header; int fd; - int type; int flags; }; -enum fd_type -{ - FD_TYPE_INVALID, - FD_TYPE_DEFAULT, - FD_TYPE_SOCKET -}; #define FD_FLAG_OVERLAPPED 0x01 #define FD_FLAG_TIMEOUT 0x02 #define FD_FLAG_RECV_SHUTDOWN 0x04 @@ -3649,6 +3642,6 @@ struct set_global_windows_reply set_global_windows_reply; }; -#define SERVER_PROTOCOL_VERSION 148 +#define SERVER_PROTOCOL_VERSION 149 #endif /* __WINE_WINE_SERVER_PROTOCOL_H */
diff --git a/misc/registry.c b/misc/registry.c index aead592..d187b9d 100644 --- a/misc/registry.c +++ b/misc/registry.c
@@ -1706,7 +1706,7 @@ #ifdef HDIO_GET_DMA { int fd, dma; - if (!wine_server_handle_to_fd( handle, 0, &fd, NULL, NULL )) + if (!wine_server_handle_to_fd( handle, 0, &fd, NULL )) { if (ioctl(fd,HDIO_GET_DMA, &dma) != -1) value = dma; wine_server_release_fd( handle, fd );
diff --git a/server/fd.c b/server/fd.c index 00b4c51..2ef4839 100644 --- a/server/fd.c +++ b/server/fd.c
@@ -1117,11 +1117,10 @@ } /* default get_file_info() routine */ -int no_get_file_info( struct fd *fd, int *flags ) +int no_get_file_info( struct fd *fd ) { set_error( STATUS_OBJECT_TYPE_MISMATCH ); - *flags = 0; - return FD_TYPE_INVALID; + return 0; } /* default queue_async() routine */ @@ -1168,7 +1167,6 @@ struct fd *fd; reply->fd = -1; - reply->type = FD_TYPE_INVALID; if ((fd = get_handle_fd_obj( current->process, req->handle, req->access ))) { @@ -1179,7 +1177,7 @@ assert( fd->unix_fd != -1 ); send_client_fd( current->process, fd->unix_fd, req->handle ); } - reply->type = fd->fd_ops->get_file_info( fd, &reply->flags ); + reply->flags = fd->fd_ops->get_file_info( fd ); release_object( fd ); } }
diff --git a/server/file.c b/server/file.c index 2e8012e..352932f 100644 --- a/server/file.c +++ b/server/file.c
@@ -69,7 +69,7 @@ static int file_get_poll_events( struct fd *fd ); static void file_poll_event( struct fd *fd, int event ); static int file_flush( struct fd *fd, struct event **event ); -static int file_get_info( struct fd *fd, int *flags ); +static int file_get_info( struct fd *fd ); static void file_queue_async( struct fd *fd, void *ptr, unsigned int status, int type, int count ); static const struct object_ops file_ops = @@ -258,13 +258,12 @@ return ret; } -static int file_get_info( struct fd *fd, int *flags ) +static int file_get_info( struct fd *fd ) { struct file *file = get_fd_user( fd ); - *flags = 0; - if (is_overlapped( file )) *flags |= FD_FLAG_OVERLAPPED; - return FD_TYPE_DEFAULT; + if (is_overlapped( file )) return FD_FLAG_OVERLAPPED; + else return 0; } static void file_queue_async(struct fd *fd, void *ptr, unsigned int status, int type, int count)
diff --git a/server/file.h b/server/file.h index 92321e4..80f936f 100644 --- a/server/file.h +++ b/server/file.h
@@ -37,7 +37,7 @@ /* flush the object buffers */ int (*flush)(struct fd *, struct event **); /* get file information */ - int (*get_file_info)(struct fd *, int *flags); + int (*get_file_info)(struct fd *); /* queue an async operation - see register_async handler in async.c*/ void (*queue_async)(struct fd *, void* ptr, unsigned int status, int type, int count); }; @@ -64,7 +64,7 @@ extern int default_fd_signaled( struct object *obj, struct thread *thread ); extern void default_poll_event( struct fd *fd, int event ); extern int no_flush( struct fd *fd, struct event **event ); -extern int no_get_file_info( struct fd *fd, int *flags ); +extern int no_get_file_info( struct fd *fd ); extern void no_queue_async( struct fd *fd, void* ptr, unsigned int status, int type, int count ); extern void main_loop(void);
diff --git a/server/named_pipe.c b/server/named_pipe.c index 8327e6b..85c8188 100644 --- a/server/named_pipe.c +++ b/server/named_pipe.c
@@ -125,7 +125,7 @@ /* common to clients and servers */ static int pipe_end_get_poll_events( struct fd *fd ); -static int pipe_end_get_info( struct fd *fd, int *flags ); +static int pipe_end_get_info( struct fd *fd ); /* server end functions */ static void pipe_server_dump( struct object *obj, int verbose ); @@ -476,10 +476,9 @@ return 0; } -static int pipe_end_get_info( struct fd *fd, int *flags ) +static int pipe_end_get_info( struct fd *fd ) { - *flags = 0; - return FD_TYPE_DEFAULT; + return 0; } static struct named_pipe *create_named_pipe( const WCHAR *name, size_t len )
diff --git a/server/protocol.def b/server/protocol.def index 3859533..7f4d10b 100644 --- a/server/protocol.def +++ b/server/protocol.def
@@ -603,15 +603,8 @@ unsigned int access; /* wanted access rights */ @REPLY int fd; /* file descriptor */ - int type; /* the type of file (see below) */ int flags; /* file read/write flags (see below) */ @END -enum fd_type -{ - FD_TYPE_INVALID, - FD_TYPE_DEFAULT, - FD_TYPE_SOCKET -}; #define FD_FLAG_OVERLAPPED 0x01 /* fd opened in overlapped mode */ #define FD_FLAG_TIMEOUT 0x02 /* read/write is synchronous */ #define FD_FLAG_RECV_SHUTDOWN 0x04
diff --git a/server/serial.c b/server/serial.c index de0e373..c368a2b 100644 --- a/server/serial.c +++ b/server/serial.c
@@ -61,7 +61,7 @@ static int serial_get_poll_events( struct fd *fd ); static void serial_poll_event( struct fd *fd, int event ); -static int serial_get_info( struct fd *fd, int *flags ); +static int serial_get_info( struct fd *fd ); static int serial_flush( struct fd *fd, struct event **event ); static void serial_queue_async(struct fd *fd, void *ptr, unsigned int status, int type, int count); @@ -201,22 +201,22 @@ return events; } -static int serial_get_info( struct fd *fd, int *flags ) +static int serial_get_info( struct fd *fd ) { + int flags = 0; struct serial *serial = get_fd_user( fd ); assert( serial->obj.ops == &serial_ops ); - *flags = 0; if (!(serial->options & (FILE_SYNCHRONOUS_IO_ALERT | FILE_SYNCHRONOUS_IO_NONALERT))) - *flags |= FD_FLAG_OVERLAPPED; + flags |= FD_FLAG_OVERLAPPED; else if (!(serial->readinterval == MAXDWORD && serial->readmult == 0 && serial->readconst == 0)) - *flags |= FD_FLAG_TIMEOUT; - if (serial->readinterval == MAXDWORD && + flags |= FD_FLAG_TIMEOUT; + if (serial->readinterval == MAXDWORD && serial->readmult == 0 && serial->readconst == 0) - *flags |= FD_FLAG_AVAILABLE; + flags |= FD_FLAG_AVAILABLE; - return FD_TYPE_DEFAULT; + return flags; } static void serial_poll_event(struct fd *fd, int event)
diff --git a/server/sock.c b/server/sock.c index 059bdba..fa911e9 100644 --- a/server/sock.c +++ b/server/sock.c
@@ -93,7 +93,7 @@ static int sock_get_poll_events( struct fd *fd ); static void sock_poll_event( struct fd *fd, int event ); -static int sock_get_info( struct fd *fd, int *flags ); +static int sock_get_info( struct fd *fd ); static void sock_queue_async( struct fd *fd, void *ptr, unsigned int status, int type, int count ); static int sock_get_error( int err ); @@ -475,19 +475,19 @@ return ev; } -static int sock_get_info( struct fd *fd, int *flags ) +static int sock_get_info( struct fd *fd ) { + int flags = FD_FLAG_AVAILABLE; struct sock *sock = get_fd_user( fd ); assert ( sock->obj.ops == &sock_ops ); - *flags = FD_FLAG_AVAILABLE; - if (sock->flags & WSA_FLAG_OVERLAPPED) *flags |= FD_FLAG_OVERLAPPED; + if (sock->flags & WSA_FLAG_OVERLAPPED) flags |= FD_FLAG_OVERLAPPED; if ( sock->type != SOCK_STREAM || sock->state & FD_WINE_CONNECTED ) { - if ( !(sock->state & FD_READ ) ) *flags |= FD_FLAG_RECV_SHUTDOWN; - if ( !(sock->state & FD_WRITE ) ) *flags |= FD_FLAG_SEND_SHUTDOWN; + if ( !(sock->state & FD_READ ) ) flags |= FD_FLAG_RECV_SHUTDOWN; + if ( !(sock->state & FD_WRITE ) ) flags |= FD_FLAG_SEND_SHUTDOWN; } - return FD_TYPE_SOCKET; + return flags; } static void sock_queue_async(struct fd *fd, void *ptr, unsigned int status, int type, int count)
diff --git a/server/trace.c b/server/trace.c index 1389608..5ff5213 100644 --- a/server/trace.c +++ b/server/trace.c
@@ -890,7 +890,6 @@ static void dump_get_handle_fd_reply( const struct get_handle_fd_reply *req ) { fprintf( stderr, " fd=%d,", req->fd ); - fprintf( stderr, " type=%d,", req->type ); fprintf( stderr, " flags=%d", req->flags ); }