Commit 1acb930d authored by Alexandre Julliard's avatar Alexandre Julliard

server: Added get_file_info implementation for named pipe and mailslot devices.

parent 5bcd0888
...@@ -153,6 +153,7 @@ static struct fd *mailslot_device_get_fd( struct object *obj ); ...@@ -153,6 +153,7 @@ static struct fd *mailslot_device_get_fd( struct object *obj );
static struct object *mailslot_device_lookup_name( struct object *obj, struct unicode_str *name, static struct object *mailslot_device_lookup_name( struct object *obj, struct unicode_str *name,
unsigned int attr ); unsigned int attr );
static void mailslot_device_destroy( struct object *obj ); static void mailslot_device_destroy( struct object *obj );
static int mailslot_device_get_file_info( struct fd *fd );
static const struct object_ops mailslot_device_ops = static const struct object_ops mailslot_device_ops =
{ {
...@@ -172,12 +173,12 @@ static const struct object_ops mailslot_device_ops = ...@@ -172,12 +173,12 @@ static const struct object_ops mailslot_device_ops =
static const struct fd_ops mailslot_device_fd_ops = static const struct fd_ops mailslot_device_fd_ops =
{ {
default_fd_get_poll_events, /* get_poll_events */ default_fd_get_poll_events, /* get_poll_events */
default_poll_event, /* poll_event */ default_poll_event, /* poll_event */
no_flush, /* flush */ no_flush, /* flush */
no_get_file_info, /* get_file_info */ mailslot_device_get_file_info, /* get_file_info */
default_fd_queue_async, /* queue_async */ default_fd_queue_async, /* queue_async */
default_fd_cancel_async /* cancel_async */ default_fd_cancel_async /* cancel_async */
}; };
static void mailslot_destroy( struct object *obj) static void mailslot_destroy( struct object *obj)
...@@ -304,6 +305,11 @@ static void mailslot_device_destroy( struct object *obj ) ...@@ -304,6 +305,11 @@ static void mailslot_device_destroy( struct object *obj )
if (device->mailslots) free( device->mailslots ); if (device->mailslots) free( device->mailslots );
} }
static int mailslot_device_get_file_info( struct fd *fd )
{
return 0;
}
struct mailslot_device *create_mailslot_device( struct directory *root, const struct unicode_str *name ) struct mailslot_device *create_mailslot_device( struct directory *root, const struct unicode_str *name )
{ {
struct mailslot_device *dev; struct mailslot_device *dev;
......
...@@ -200,6 +200,7 @@ static struct fd *named_pipe_device_get_fd( struct object *obj ); ...@@ -200,6 +200,7 @@ static struct fd *named_pipe_device_get_fd( struct object *obj );
static struct object *named_pipe_device_lookup_name( struct object *obj, static struct object *named_pipe_device_lookup_name( struct object *obj,
struct unicode_str *name, unsigned int attr ); struct unicode_str *name, unsigned int attr );
static void named_pipe_device_destroy( struct object *obj ); static void named_pipe_device_destroy( struct object *obj );
static int named_pipe_device_get_file_info( struct fd *fd );
static const struct object_ops named_pipe_device_ops = static const struct object_ops named_pipe_device_ops =
{ {
...@@ -219,12 +220,12 @@ static const struct object_ops named_pipe_device_ops = ...@@ -219,12 +220,12 @@ static const struct object_ops named_pipe_device_ops =
static const struct fd_ops named_pipe_device_fd_ops = static const struct fd_ops named_pipe_device_fd_ops =
{ {
default_fd_get_poll_events, /* get_poll_events */ default_fd_get_poll_events, /* get_poll_events */
default_poll_event, /* poll_event */ default_poll_event, /* poll_event */
no_flush, /* flush */ no_flush, /* flush */
no_get_file_info, /* get_file_info */ named_pipe_device_get_file_info, /* get_file_info */
default_fd_queue_async, /* queue_async */ default_fd_queue_async, /* queue_async */
default_fd_cancel_async /* cancel_async */ default_fd_cancel_async /* cancel_async */
}; };
static void named_pipe_dump( struct object *obj, int verbose ) static void named_pipe_dump( struct object *obj, int verbose )
...@@ -437,6 +438,11 @@ static void named_pipe_device_destroy( struct object *obj ) ...@@ -437,6 +438,11 @@ static void named_pipe_device_destroy( struct object *obj )
if (device->pipes) free( device->pipes ); if (device->pipes) free( device->pipes );
} }
static int named_pipe_device_get_file_info( struct fd *fd )
{
return 0;
}
/* this will be deleted as soon an we fix wait_named_pipe */ /* this will be deleted as soon an we fix wait_named_pipe */
static struct named_pipe_device *named_pipe_device; static struct named_pipe_device *named_pipe_device;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment