server: Added get_file_info implementation for named pipe and mailslot devices.
This commit is contained in:
parent
5bcd0888ef
commit
1acb930db8
|
@ -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 =
|
||||||
|
|
||||||
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 )
|
||||||
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 );
|
||||||
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 =
|
||||||
|
|
||||||
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 )
|
||||||
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;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue