mirror of
https://gitlab.winehq.org/wine/wine.git
synced 2024-11-19 17:06:04 -07:00
server: Use an explicit struct instead of a typedef for user APCs.
This commit is contained in:
parent
4c0103e58c
commit
305ec347dc
6 changed files with 14 additions and 14 deletions
|
@ -354,7 +354,7 @@ static int wait_select_reply( void *cookie )
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
* invoke_user_apc
|
* invoke_user_apc
|
||||||
*/
|
*/
|
||||||
static NTSTATUS invoke_user_apc( CONTEXT *context, const user_apc_t *apc, NTSTATUS status )
|
static NTSTATUS invoke_user_apc( CONTEXT *context, const struct user_apc *apc, NTSTATUS status )
|
||||||
{
|
{
|
||||||
return call_user_apc_dispatcher( context, apc->args[0], apc->args[1], apc->args[2],
|
return call_user_apc_dispatcher( context, apc->args[0], apc->args[1], apc->args[2],
|
||||||
wine_server_get_ptr( apc->func ), status );
|
wine_server_get_ptr( apc->func ), status );
|
||||||
|
@ -688,7 +688,7 @@ static void invoke_system_apc( const union apc_call *call, union apc_result *res
|
||||||
* server_select
|
* server_select
|
||||||
*/
|
*/
|
||||||
unsigned int server_select( const select_op_t *select_op, data_size_t size, UINT flags,
|
unsigned int server_select( const select_op_t *select_op, data_size_t size, UINT flags,
|
||||||
timeout_t abs_timeout, context_t *context, user_apc_t *user_apc )
|
timeout_t abs_timeout, context_t *context, struct user_apc *user_apc )
|
||||||
{
|
{
|
||||||
unsigned int ret;
|
unsigned int ret;
|
||||||
int cookie;
|
int cookie;
|
||||||
|
@ -768,7 +768,7 @@ unsigned int server_wait( const select_op_t *select_op, data_size_t size, UINT f
|
||||||
{
|
{
|
||||||
timeout_t abs_timeout = timeout ? timeout->QuadPart : TIMEOUT_INFINITE;
|
timeout_t abs_timeout = timeout ? timeout->QuadPart : TIMEOUT_INFINITE;
|
||||||
unsigned int ret;
|
unsigned int ret;
|
||||||
user_apc_t apc;
|
struct user_apc apc;
|
||||||
|
|
||||||
if (abs_timeout < 0)
|
if (abs_timeout < 0)
|
||||||
{
|
{
|
||||||
|
@ -794,7 +794,7 @@ unsigned int server_wait( const select_op_t *select_op, data_size_t size, UINT f
|
||||||
*/
|
*/
|
||||||
NTSTATUS WINAPI NtContinue( CONTEXT *context, BOOLEAN alertable )
|
NTSTATUS WINAPI NtContinue( CONTEXT *context, BOOLEAN alertable )
|
||||||
{
|
{
|
||||||
user_apc_t apc;
|
struct user_apc apc;
|
||||||
NTSTATUS status;
|
NTSTATUS status;
|
||||||
|
|
||||||
if (alertable)
|
if (alertable)
|
||||||
|
@ -811,7 +811,7 @@ NTSTATUS WINAPI NtContinue( CONTEXT *context, BOOLEAN alertable )
|
||||||
*/
|
*/
|
||||||
NTSTATUS WINAPI NtTestAlert(void)
|
NTSTATUS WINAPI NtTestAlert(void)
|
||||||
{
|
{
|
||||||
user_apc_t apc;
|
struct user_apc apc;
|
||||||
NTSTATUS status;
|
NTSTATUS status;
|
||||||
|
|
||||||
status = server_select( NULL, 0, SELECT_INTERRUPTIBLE | SELECT_ALERTABLE, 0, NULL, &apc );
|
status = server_select( NULL, 0, SELECT_INTERRUPTIBLE | SELECT_ALERTABLE, 0, NULL, &apc );
|
||||||
|
|
|
@ -209,7 +209,7 @@ extern unsigned int server_call_unlocked( void *req_ptr );
|
||||||
extern void server_enter_uninterrupted_section( pthread_mutex_t *mutex, sigset_t *sigset );
|
extern void server_enter_uninterrupted_section( pthread_mutex_t *mutex, sigset_t *sigset );
|
||||||
extern void server_leave_uninterrupted_section( pthread_mutex_t *mutex, sigset_t *sigset );
|
extern void server_leave_uninterrupted_section( pthread_mutex_t *mutex, sigset_t *sigset );
|
||||||
extern unsigned int server_select( const select_op_t *select_op, data_size_t size, UINT flags,
|
extern unsigned int server_select( const select_op_t *select_op, data_size_t size, UINT flags,
|
||||||
timeout_t abs_timeout, context_t *context, user_apc_t *user_apc );
|
timeout_t abs_timeout, context_t *context, struct user_apc *user_apc );
|
||||||
extern unsigned int server_wait( const select_op_t *select_op, data_size_t size, UINT flags,
|
extern unsigned int server_wait( const select_op_t *select_op, data_size_t size, UINT flags,
|
||||||
const LARGE_INTEGER *timeout );
|
const LARGE_INTEGER *timeout );
|
||||||
extern unsigned int server_queue_process_apc( HANDLE process, const union apc_call *call,
|
extern unsigned int server_queue_process_apc( HANDLE process, const union apc_call *call,
|
||||||
|
|
|
@ -488,18 +488,18 @@ enum apc_type
|
||||||
APC_DUP_HANDLE
|
APC_DUP_HANDLE
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct
|
struct user_apc
|
||||||
{
|
{
|
||||||
enum apc_type type;
|
enum apc_type type;
|
||||||
int __pad;
|
int __pad;
|
||||||
client_ptr_t func;
|
client_ptr_t func;
|
||||||
apc_param_t args[3];
|
apc_param_t args[3];
|
||||||
} user_apc_t;
|
};
|
||||||
|
|
||||||
union apc_call
|
union apc_call
|
||||||
{
|
{
|
||||||
enum apc_type type;
|
enum apc_type type;
|
||||||
user_apc_t user;
|
struct user_apc user;
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
enum apc_type type;
|
enum apc_type type;
|
||||||
|
|
|
@ -504,18 +504,18 @@ enum apc_type
|
||||||
APC_DUP_HANDLE
|
APC_DUP_HANDLE
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct
|
struct user_apc
|
||||||
{
|
{
|
||||||
enum apc_type type; /* APC_USER */
|
enum apc_type type; /* APC_USER */
|
||||||
int __pad;
|
int __pad;
|
||||||
client_ptr_t func; /* void (__stdcall *func)(ULONG_PTR,ULONG_PTR,ULONG_PTR); */
|
client_ptr_t func; /* void (__stdcall *func)(ULONG_PTR,ULONG_PTR,ULONG_PTR); */
|
||||||
apc_param_t args[3]; /* arguments for user function */
|
apc_param_t args[3]; /* arguments for user function */
|
||||||
} user_apc_t;
|
};
|
||||||
|
|
||||||
union apc_call
|
union apc_call
|
||||||
{
|
{
|
||||||
enum apc_type type;
|
enum apc_type type;
|
||||||
user_apc_t user;
|
struct user_apc user;
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
enum apc_type type; /* APC_ASYNC_IO */
|
enum apc_type type; /* APC_ASYNC_IO */
|
||||||
|
|
|
@ -635,6 +635,7 @@ C_ASSERT( sizeof(struct object_type_info) == 44 );
|
||||||
C_ASSERT( sizeof(struct process_info) == 40 );
|
C_ASSERT( sizeof(struct process_info) == 40 );
|
||||||
C_ASSERT( sizeof(struct rawinput_device) == 12 );
|
C_ASSERT( sizeof(struct rawinput_device) == 12 );
|
||||||
C_ASSERT( sizeof(struct thread_info) == 40 );
|
C_ASSERT( sizeof(struct thread_info) == 40 );
|
||||||
|
C_ASSERT( sizeof(struct user_apc) == 40 );
|
||||||
C_ASSERT( sizeof(tcp_connection) == 60 );
|
C_ASSERT( sizeof(tcp_connection) == 60 );
|
||||||
C_ASSERT( sizeof(thread_id_t) == 4 );
|
C_ASSERT( sizeof(thread_id_t) == 4 );
|
||||||
C_ASSERT( sizeof(timeout_t) == 8 );
|
C_ASSERT( sizeof(timeout_t) == 8 );
|
||||||
|
@ -645,7 +646,6 @@ C_ASSERT( sizeof(unsigned __int64) == 8 );
|
||||||
C_ASSERT( sizeof(unsigned char) == 1 );
|
C_ASSERT( sizeof(unsigned char) == 1 );
|
||||||
C_ASSERT( sizeof(unsigned int) == 4 );
|
C_ASSERT( sizeof(unsigned int) == 4 );
|
||||||
C_ASSERT( sizeof(unsigned short) == 2 );
|
C_ASSERT( sizeof(unsigned short) == 2 );
|
||||||
C_ASSERT( sizeof(user_apc_t) == 40 );
|
|
||||||
C_ASSERT( sizeof(user_handle_t) == 4 );
|
C_ASSERT( sizeof(user_handle_t) == 4 );
|
||||||
C_ASSERT( offsetof(struct new_process_request, token) == 12 );
|
C_ASSERT( offsetof(struct new_process_request, token) == 12 );
|
||||||
C_ASSERT( offsetof(struct new_process_request, debug) == 16 );
|
C_ASSERT( offsetof(struct new_process_request, debug) == 16 );
|
||||||
|
|
|
@ -55,7 +55,6 @@ my %formats =
|
||||||
"startup_info_t" => [ 96, 4 ],
|
"startup_info_t" => [ 96, 4 ],
|
||||||
"tcp_connection" => [ 60, 4 ],
|
"tcp_connection" => [ 60, 4 ],
|
||||||
"udp_endpoint" => [ 32, 4 ],
|
"udp_endpoint" => [ 32, 4 ],
|
||||||
"user_apc_t" => [ 40, 8 ],
|
|
||||||
"union apc_call" => [ 64, 8 ],
|
"union apc_call" => [ 64, 8 ],
|
||||||
"union apc_result" => [ 40, 8 ],
|
"union apc_result" => [ 40, 8 ],
|
||||||
"struct filesystem_event" => [ 12, 4 ],
|
"struct filesystem_event" => [ 12, 4 ],
|
||||||
|
@ -67,6 +66,7 @@ my %formats =
|
||||||
"struct process_info" => [ 40, 8 ],
|
"struct process_info" => [ 40, 8 ],
|
||||||
"struct rawinput_device" => [ 12, 4 ],
|
"struct rawinput_device" => [ 12, 4 ],
|
||||||
"struct thread_info" => [ 40, 8 ],
|
"struct thread_info" => [ 40, 8 ],
|
||||||
|
"struct user_apc" => [ 40, 8 ],
|
||||||
);
|
);
|
||||||
|
|
||||||
my $file_header =
|
my $file_header =
|
||||||
|
|
Loading…
Reference in a new issue