server: Introduce IOCTL_CONDRV_SET_MODE ioctl.
Signed-off-by: Jacek Caban <jacek@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
f5badeac28
commit
22f53e6d9d
|
@ -25,6 +25,7 @@
|
||||||
|
|
||||||
/* common console input and output ioctls */
|
/* common console input and output ioctls */
|
||||||
#define IOCTL_CONDRV_GET_MODE CTL_CODE(FILE_DEVICE_CONSOLE, 0, METHOD_BUFFERED, FILE_READ_PROPERTIES)
|
#define IOCTL_CONDRV_GET_MODE CTL_CODE(FILE_DEVICE_CONSOLE, 0, METHOD_BUFFERED, FILE_READ_PROPERTIES)
|
||||||
|
#define IOCTL_CONDRV_SET_MODE CTL_CODE(FILE_DEVICE_CONSOLE, 1, METHOD_BUFFERED, FILE_WRITE_PROPERTIES)
|
||||||
|
|
||||||
/* console input ioctls */
|
/* console input ioctls */
|
||||||
#define IOCTL_CONDRV_READ_INPUT CTL_CODE(FILE_DEVICE_CONSOLE, 10, METHOD_BUFFERED, FILE_READ_ACCESS)
|
#define IOCTL_CONDRV_READ_INPUT CTL_CODE(FILE_DEVICE_CONSOLE, 10, METHOD_BUFFERED, FILE_READ_ACCESS)
|
||||||
|
|
|
@ -190,7 +190,7 @@ struct screen_buffer
|
||||||
struct object obj; /* object header */
|
struct object obj; /* object header */
|
||||||
struct list entry; /* entry in list of all screen buffers */
|
struct list entry; /* entry in list of all screen buffers */
|
||||||
struct console_input *input; /* associated console input */
|
struct console_input *input; /* associated console input */
|
||||||
int mode; /* output mode */
|
unsigned int mode; /* output mode */
|
||||||
int cursor_size; /* size of cursor (percentage filled) */
|
int cursor_size; /* size of cursor (percentage filled) */
|
||||||
int cursor_visible;/* cursor visibility flag */
|
int cursor_visible;/* cursor visibility flag */
|
||||||
int cursor_x; /* position of cursor */
|
int cursor_x; /* position of cursor */
|
||||||
|
@ -1584,6 +1584,15 @@ static int console_input_ioctl( struct fd *fd, ioctl_code_t code, struct async *
|
||||||
}
|
}
|
||||||
return set_reply_data( &console->mode, sizeof(console->mode) ) != NULL;
|
return set_reply_data( &console->mode, sizeof(console->mode) ) != NULL;
|
||||||
|
|
||||||
|
case IOCTL_CONDRV_SET_MODE:
|
||||||
|
if (get_req_data_size() != sizeof(console->mode))
|
||||||
|
{
|
||||||
|
set_error( STATUS_INVALID_PARAMETER );
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
console->mode = *(unsigned int *)get_req_data();
|
||||||
|
return 1;
|
||||||
|
|
||||||
case IOCTL_CONDRV_READ_INPUT:
|
case IOCTL_CONDRV_READ_INPUT:
|
||||||
{
|
{
|
||||||
int blocking = 0;
|
int blocking = 0;
|
||||||
|
@ -1657,6 +1666,15 @@ static int screen_buffer_ioctl( struct fd *fd, ioctl_code_t code, struct async *
|
||||||
}
|
}
|
||||||
return set_reply_data( &screen_buffer->mode, sizeof(screen_buffer->mode) ) != NULL;
|
return set_reply_data( &screen_buffer->mode, sizeof(screen_buffer->mode) ) != NULL;
|
||||||
|
|
||||||
|
case IOCTL_CONDRV_SET_MODE:
|
||||||
|
if (get_req_data_size() != sizeof(screen_buffer->mode))
|
||||||
|
{
|
||||||
|
set_error( STATUS_INVALID_PARAMETER );
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
screen_buffer->mode = *(unsigned int *)get_req_data();
|
||||||
|
return 1;
|
||||||
|
|
||||||
case IOCTL_CONDRV_GET_OUTPUT_INFO:
|
case IOCTL_CONDRV_GET_OUTPUT_INFO:
|
||||||
{
|
{
|
||||||
struct condrv_output_info *info;
|
struct condrv_output_info *info;
|
||||||
|
|
Loading…
Reference in New Issue