server: Remove the return value of the flush() method, it's not used.
This commit is contained in:
parent
c16eb8efd9
commit
df651875ad
|
@ -1763,10 +1763,9 @@ void default_fd_cancel_async( struct fd *fd )
|
||||||
}
|
}
|
||||||
|
|
||||||
/* default flush() routine */
|
/* default flush() routine */
|
||||||
int no_flush( struct fd *fd, struct event **event )
|
void no_flush( struct fd *fd, struct event **event )
|
||||||
{
|
{
|
||||||
set_error( STATUS_OBJECT_TYPE_MISMATCH );
|
set_error( STATUS_OBJECT_TYPE_MISMATCH );
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* default get_file_info() routine */
|
/* default get_file_info() routine */
|
||||||
|
|
|
@ -69,7 +69,7 @@ static unsigned int file_map_access( struct object *obj, unsigned int access );
|
||||||
static void file_destroy( struct object *obj );
|
static void file_destroy( struct object *obj );
|
||||||
|
|
||||||
static int file_get_poll_events( struct fd *fd );
|
static int file_get_poll_events( struct fd *fd );
|
||||||
static int file_flush( struct fd *fd, struct event **event );
|
static void file_flush( struct fd *fd, struct event **event );
|
||||||
static enum server_fd_type file_get_info( struct fd *fd, int *flags );
|
static enum server_fd_type file_get_info( struct fd *fd, int *flags );
|
||||||
|
|
||||||
static const struct object_ops file_ops =
|
static const struct object_ops file_ops =
|
||||||
|
@ -227,16 +227,10 @@ static int file_get_poll_events( struct fd *fd )
|
||||||
return events;
|
return events;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int file_flush( struct fd *fd, struct event **event )
|
static void file_flush( struct fd *fd, struct event **event )
|
||||||
{
|
{
|
||||||
int ret = 0, unix_fd = get_unix_fd( fd );
|
int unix_fd = get_unix_fd( fd );
|
||||||
|
if (unix_fd != -1 && fsync( unix_fd ) == -1) file_set_error();
|
||||||
if (unix_fd != -1)
|
|
||||||
{
|
|
||||||
ret = (fsync( unix_fd ) != -1);
|
|
||||||
if (!ret) file_set_error();
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static enum server_fd_type file_get_info( struct fd *fd, int *flags )
|
static enum server_fd_type file_get_info( struct fd *fd, int *flags )
|
||||||
|
|
|
@ -35,7 +35,7 @@ struct fd_ops
|
||||||
/* a poll() event occurred */
|
/* a poll() event occurred */
|
||||||
void (*poll_event)(struct fd *,int event);
|
void (*poll_event)(struct fd *,int event);
|
||||||
/* flush the object buffers */
|
/* flush the object buffers */
|
||||||
int (*flush)(struct fd *, struct event **);
|
void (*flush)(struct fd *, struct event **);
|
||||||
/* get file information */
|
/* get file information */
|
||||||
enum server_fd_type (*get_file_info)(struct fd *fd, int *flags);
|
enum server_fd_type (*get_file_info)(struct fd *fd, int *flags);
|
||||||
/* queue an async operation */
|
/* queue an async operation */
|
||||||
|
@ -72,7 +72,7 @@ extern void fd_queue_async_timeout( struct fd *fd, const async_data_t *data, int
|
||||||
int count, const struct timeval *timeout );
|
int count, const struct timeval *timeout );
|
||||||
extern void default_fd_queue_async( struct fd *fd, const async_data_t *data, int type, int count );
|
extern void default_fd_queue_async( struct fd *fd, const async_data_t *data, int type, int count );
|
||||||
extern void default_fd_cancel_async( struct fd *fd );
|
extern void default_fd_cancel_async( struct fd *fd );
|
||||||
extern int no_flush( struct fd *fd, struct event **event );
|
extern void no_flush( struct fd *fd, struct event **event );
|
||||||
extern enum server_fd_type no_get_file_info( struct fd *fd, int *flags );
|
extern enum server_fd_type no_get_file_info( struct fd *fd, int *flags );
|
||||||
extern void no_queue_async( struct fd *fd, const async_data_t *data, int type, int count);
|
extern void no_queue_async( struct fd *fd, const async_data_t *data, int type, int count);
|
||||||
extern void no_cancel_async( struct fd *fd );
|
extern void no_cancel_async( struct fd *fd );
|
||||||
|
|
|
@ -136,7 +136,7 @@ static unsigned int pipe_map_access( struct object *obj, unsigned int access );
|
||||||
static void pipe_server_dump( struct object *obj, int verbose );
|
static void pipe_server_dump( struct object *obj, int verbose );
|
||||||
static struct fd *pipe_server_get_fd( struct object *obj );
|
static struct fd *pipe_server_get_fd( struct object *obj );
|
||||||
static void pipe_server_destroy( struct object *obj);
|
static void pipe_server_destroy( struct object *obj);
|
||||||
static int pipe_server_flush( struct fd *fd, struct event **event );
|
static void pipe_server_flush( struct fd *fd, struct event **event );
|
||||||
static enum server_fd_type pipe_server_get_info( struct fd *fd, int *flags );
|
static enum server_fd_type pipe_server_get_info( struct fd *fd, int *flags );
|
||||||
|
|
||||||
static const struct object_ops pipe_server_ops =
|
static const struct object_ops pipe_server_ops =
|
||||||
|
@ -170,7 +170,7 @@ static const struct fd_ops pipe_server_fd_ops =
|
||||||
static void pipe_client_dump( struct object *obj, int verbose );
|
static void pipe_client_dump( struct object *obj, int verbose );
|
||||||
static struct fd *pipe_client_get_fd( struct object *obj );
|
static struct fd *pipe_client_get_fd( struct object *obj );
|
||||||
static void pipe_client_destroy( struct object *obj );
|
static void pipe_client_destroy( struct object *obj );
|
||||||
static int pipe_client_flush( struct fd *fd, struct event **event );
|
static void pipe_client_flush( struct fd *fd, struct event **event );
|
||||||
static enum server_fd_type pipe_client_get_info( struct fd *fd, int *flags );
|
static enum server_fd_type pipe_client_get_info( struct fd *fd, int *flags );
|
||||||
|
|
||||||
static const struct object_ops pipe_client_ops =
|
static const struct object_ops pipe_client_ops =
|
||||||
|
@ -517,20 +517,15 @@ static void check_flushed( void *arg )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int pipe_server_flush( struct fd *fd, struct event **event )
|
static void pipe_server_flush( struct fd *fd, struct event **event )
|
||||||
{
|
{
|
||||||
struct pipe_server *server = get_fd_user( fd );
|
struct pipe_server *server = get_fd_user( fd );
|
||||||
|
|
||||||
if (!server)
|
if (!server || server->state != ps_connected_server) return;
|
||||||
return 0;
|
|
||||||
|
|
||||||
if (server->state != ps_connected_server)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
/* FIXME: if multiple threads flush the same pipe,
|
/* FIXME: if multiple threads flush the same pipe,
|
||||||
maybe should create a list of processes to notify */
|
maybe should create a list of processes to notify */
|
||||||
if (server->flush_poll)
|
if (server->flush_poll) return;
|
||||||
return 0;
|
|
||||||
|
|
||||||
if (pipe_data_remaining( server ))
|
if (pipe_data_remaining( server ))
|
||||||
{
|
{
|
||||||
|
@ -539,20 +534,16 @@ static int pipe_server_flush( struct fd *fd, struct event **event )
|
||||||
/* this kind of sux -
|
/* this kind of sux -
|
||||||
there's no unix way to be alerted when a pipe becomes empty */
|
there's no unix way to be alerted when a pipe becomes empty */
|
||||||
server->event = create_event( NULL, NULL, 0, 0, 0 );
|
server->event = create_event( NULL, NULL, 0, 0, 0 );
|
||||||
if (!server->event)
|
if (!server->event) return;
|
||||||
return 0;
|
|
||||||
add_timeout( &tv, 100 );
|
add_timeout( &tv, 100 );
|
||||||
server->flush_poll = add_timeout_user( &tv, check_flushed, server );
|
server->flush_poll = add_timeout_user( &tv, check_flushed, server );
|
||||||
*event = server->event;
|
*event = server->event;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int pipe_client_flush( struct fd *fd, struct event **event )
|
static void pipe_client_flush( struct fd *fd, struct event **event )
|
||||||
{
|
{
|
||||||
/* FIXME: what do we have to do for this? */
|
/* FIXME: what do we have to do for this? */
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int is_overlapped( unsigned int options )
|
static inline int is_overlapped( unsigned int options )
|
||||||
|
|
|
@ -64,7 +64,7 @@ static void serial_destroy(struct object *obj);
|
||||||
static int serial_get_poll_events( struct fd *fd );
|
static int serial_get_poll_events( struct fd *fd );
|
||||||
static void serial_poll_event( struct fd *fd, int event );
|
static void serial_poll_event( struct fd *fd, int event );
|
||||||
static enum server_fd_type serial_get_info( struct fd *fd, int *flags );
|
static enum server_fd_type serial_get_info( struct fd *fd, int *flags );
|
||||||
static int serial_flush( struct fd *fd, struct event **event );
|
static void serial_flush( struct fd *fd, struct event **event );
|
||||||
static void serial_queue_async( struct fd *fd, const async_data_t *data, int type, int count );
|
static void serial_queue_async( struct fd *fd, const async_data_t *data, int type, int count );
|
||||||
static void serial_cancel_async( struct fd *fd );
|
static void serial_cancel_async( struct fd *fd );
|
||||||
|
|
||||||
|
@ -297,14 +297,12 @@ static void serial_cancel_async( struct fd *fd )
|
||||||
async_terminate_queue( &serial->wait_q, STATUS_CANCELLED );
|
async_terminate_queue( &serial->wait_q, STATUS_CANCELLED );
|
||||||
}
|
}
|
||||||
|
|
||||||
static int serial_flush( struct fd *fd, struct event **event )
|
static void serial_flush( struct fd *fd, struct event **event )
|
||||||
{
|
{
|
||||||
/* MSDN says: If hFile is a handle to a communications device,
|
/* MSDN says: If hFile is a handle to a communications device,
|
||||||
* the function only flushes the transmit buffer.
|
* the function only flushes the transmit buffer.
|
||||||
*/
|
*/
|
||||||
int ret = (tcflush( get_unix_fd(fd), TCOFLUSH ) != -1);
|
if (tcflush( get_unix_fd(fd), TCOFLUSH ) == -1) file_set_error();
|
||||||
if (!ret) file_set_error();
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DECL_HANDLER(get_serial_info)
|
DECL_HANDLER(get_serial_info)
|
||||||
|
|
Loading…
Reference in New Issue