Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
f6fa72d7
Commit
f6fa72d7
authored
Dec 15, 2008
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
server: Make async I/O transfer sizes always 32-bit.
parent
dc7f1704
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
33 additions
and
30 deletions
+33
-30
directory.c
dlls/ntdll/directory.c
+1
-1
file.c
dlls/ntdll/file.c
+4
-4
ntdll_misc.h
dlls/ntdll/ntdll_misc.h
+2
-1
sync.c
dlls/ntdll/sync.c
+2
-1
socket.c
dlls/ws2_32/socket.c
+6
-4
server_protocol.h
include/wine/server_protocol.h
+5
-5
async.c
server/async.c
+1
-1
completion.c
server/completion.c
+2
-2
file.h
server/file.h
+2
-2
protocol.def
server/protocol.def
+5
-5
trace.c
server/trace.c
+3
-3
make_requests
tools/make_requests
+0
-1
No files found.
dlls/ntdll/directory.c
View file @
f6fa72d7
...
...
@@ -2302,7 +2302,7 @@ static void WINAPI read_changes_user_apc( void *arg, IO_STATUS_BLOCK *io, ULONG
RtlFreeHeap
(
GetProcessHeap
(),
0
,
info
);
}
static
NTSTATUS
read_changes_apc
(
void
*
user
,
PIO_STATUS_BLOCK
iosb
,
NTSTATUS
status
,
ULONG
_PTR
*
total
)
static
NTSTATUS
read_changes_apc
(
void
*
user
,
PIO_STATUS_BLOCK
iosb
,
NTSTATUS
status
,
ULONG
*
total
)
{
struct
read_changes_info
*
info
=
user
;
char
path
[
PATH_MAX
];
...
...
dlls/ntdll/file.c
View file @
f6fa72d7
...
...
@@ -334,7 +334,7 @@ NTSTATUS FILE_GetNtStatus(void)
/***********************************************************************
* FILE_AsyncReadService (INTERNAL)
*/
static
NTSTATUS
FILE_AsyncReadService
(
void
*
user
,
PIO_STATUS_BLOCK
iosb
,
NTSTATUS
status
,
ULONG
_PTR
*
total
)
static
NTSTATUS
FILE_AsyncReadService
(
void
*
user
,
PIO_STATUS_BLOCK
iosb
,
NTSTATUS
status
,
ULONG
*
total
)
{
async_fileio_read
*
fileio
=
user
;
int
fd
,
needs_close
,
result
;
...
...
@@ -812,7 +812,7 @@ NTSTATUS WINAPI NtReadFileScatter( HANDLE file, HANDLE event, PIO_APC_ROUTINE ap
/***********************************************************************
* FILE_AsyncWriteService (INTERNAL)
*/
static
NTSTATUS
FILE_AsyncWriteService
(
void
*
user
,
IO_STATUS_BLOCK
*
iosb
,
NTSTATUS
status
,
ULONG
_PTR
*
total
)
static
NTSTATUS
FILE_AsyncWriteService
(
void
*
user
,
IO_STATUS_BLOCK
*
iosb
,
NTSTATUS
status
,
ULONG
*
total
)
{
async_fileio_write
*
fileio
=
user
;
int
result
,
fd
,
needs_close
;
...
...
@@ -1146,7 +1146,7 @@ struct async_ioctl
};
/* callback for ioctl async I/O completion */
static
NTSTATUS
ioctl_completion
(
void
*
arg
,
IO_STATUS_BLOCK
*
io
,
NTSTATUS
status
)
static
NTSTATUS
ioctl_completion
(
void
*
arg
,
IO_STATUS_BLOCK
*
io
,
NTSTATUS
status
,
ULONG
*
total
)
{
struct
async_ioctl
*
async
=
arg
;
...
...
@@ -1158,7 +1158,7 @@ static NTSTATUS ioctl_completion( void *arg, IO_STATUS_BLOCK *io, NTSTATUS statu
req
->
user_arg
=
async
;
wine_server_set_reply
(
req
,
async
->
buffer
,
async
->
size
);
if
(
!
(
status
=
wine_server_call
(
req
)))
io
->
Information
=
wine_server_reply_size
(
reply
);
io
->
Information
=
*
total
=
wine_server_reply_size
(
reply
);
}
SERVER_END_REQ
;
}
...
...
dlls/ntdll/ntdll_misc.h
View file @
f6fa72d7
...
...
@@ -211,6 +211,7 @@ static inline struct ntdll_thread_regs *ntdll_get_thread_regs(void)
}
/* Completion */
extern
NTSTATUS
NTDLL_AddCompletion
(
HANDLE
hFile
,
ULONG_PTR
CompletionValue
,
NTSTATUS
CompletionStatus
,
ULONG_PTR
Information
);
extern
NTSTATUS
NTDLL_AddCompletion
(
HANDLE
hFile
,
ULONG_PTR
CompletionValue
,
NTSTATUS
CompletionStatus
,
ULONG
Information
);
#endif
dlls/ntdll/sync.c
View file @
f6fa72d7
...
...
@@ -1393,7 +1393,8 @@ NTSTATUS WINAPI NtQueryIoCompletion( HANDLE CompletionPort, IO_COMPLETION_INFORM
return
status
;
}
NTSTATUS
NTDLL_AddCompletion
(
HANDLE
hFile
,
ULONG_PTR
CompletionValue
,
NTSTATUS
CompletionStatus
,
ULONG_PTR
Information
)
NTSTATUS
NTDLL_AddCompletion
(
HANDLE
hFile
,
ULONG_PTR
CompletionValue
,
NTSTATUS
CompletionStatus
,
ULONG
Information
)
{
NTSTATUS
status
;
...
...
dlls/ws2_32/socket.c
View file @
f6fa72d7
...
...
@@ -1124,7 +1124,7 @@ static int WS2_recv( int fd, struct ws2_async *wsa )
*
* Handler for overlapped recv() operations.
*/
static
NTSTATUS
WS2_async_recv
(
void
*
user
,
IO_STATUS_BLOCK
*
iosb
,
NTSTATUS
status
,
ULONG
_PTR
*
total
)
static
NTSTATUS
WS2_async_recv
(
void
*
user
,
IO_STATUS_BLOCK
*
iosb
,
NTSTATUS
status
,
ULONG
*
total
)
{
ws2_async
*
wsa
=
user
;
int
result
=
0
,
fd
;
...
...
@@ -1225,7 +1225,7 @@ static int WS2_send( int fd, struct ws2_async *wsa )
*
* Handler for overlapped send() operations.
*/
static
NTSTATUS
WS2_async_send
(
void
*
user
,
IO_STATUS_BLOCK
*
iosb
,
NTSTATUS
status
,
ULONG
_PTR
*
total
)
static
NTSTATUS
WS2_async_send
(
void
*
user
,
IO_STATUS_BLOCK
*
iosb
,
NTSTATUS
status
,
ULONG
*
total
)
{
ws2_async
*
wsa
=
user
;
int
result
=
0
,
fd
;
...
...
@@ -1280,7 +1280,7 @@ static NTSTATUS WS2_async_send(void* user, IO_STATUS_BLOCK* iosb, NTSTATUS statu
*
* Handler for shutdown() operations on overlapped sockets.
*/
static
NTSTATUS
WS2_async_shutdown
(
void
*
user
,
PIO_STATUS_BLOCK
iosb
,
NTSTATUS
status
)
static
NTSTATUS
WS2_async_shutdown
(
void
*
user
,
PIO_STATUS_BLOCK
iosb
,
NTSTATUS
status
,
ULONG
*
total
)
{
ws2_async
*
wsa
=
user
;
int
fd
,
err
=
1
;
...
...
@@ -1300,6 +1300,7 @@ static NTSTATUS WS2_async_shutdown( void* user, PIO_STATUS_BLOCK iosb, NTSTATUS
status
=
err
?
wsaErrno
()
:
STATUS_SUCCESS
;
break
;
}
*
total
=
0
;
iosb
->
u
.
Status
=
status
;
return
status
;
}
...
...
@@ -2647,7 +2648,8 @@ int WINAPI WS_select(int nfds, WS_fd_set *ws_readfds,
}
/* helper to send completion messages for client-only i/o operation case */
static
void
WS_AddCompletion
(
SOCKET
sock
,
ULONG_PTR
CompletionValue
,
NTSTATUS
CompletionStatus
,
ULONG_PTR
Information
)
static
void
WS_AddCompletion
(
SOCKET
sock
,
ULONG_PTR
CompletionValue
,
NTSTATUS
CompletionStatus
,
ULONG
Information
)
{
NTSTATUS
status
;
...
...
include/wine/server_protocol.h
View file @
f6fa72d7
...
...
@@ -273,7 +273,7 @@ typedef union
struct
{
enum
apc_type
type
;
unsigned
int
(
*
func
)(
void
*
,
void
*
,
unsigned
int
,
unsigned
long
*
);
unsigned
int
(
*
func
)(
void
*
,
void
*
,
unsigned
int
,
unsigned
int
*
);
void
*
user
;
void
*
sb
;
unsigned
int
status
;
...
...
@@ -358,7 +358,7 @@ typedef union
{
enum
apc_type
type
;
unsigned
int
status
;
unsigned
long
total
;
unsigned
int
total
;
}
async_io
;
struct
{
...
...
@@ -4227,7 +4227,7 @@ struct add_completion_request
obj_handle_t
handle
;
apc_param_t
ckey
;
apc_param_t
cvalue
;
unsigned
long
information
;
unsigned
int
information
;
unsigned
int
status
;
};
struct
add_completion_reply
...
...
@@ -4247,7 +4247,7 @@ struct remove_completion_reply
struct
reply_header
__header
;
apc_param_t
ckey
;
apc_param_t
cvalue
;
unsigned
long
information
;
unsigned
int
information
;
unsigned
int
status
;
};
...
...
@@ -4286,7 +4286,7 @@ struct add_fd_completion_request
obj_handle_t
handle
;
apc_param_t
cvalue
;
unsigned
int
status
;
unsigned
long
information
;
unsigned
int
information
;
};
struct
add_fd_completion_reply
{
...
...
server/async.c
View file @
f6fa72d7
...
...
@@ -234,7 +234,7 @@ void async_set_timeout( struct async *async, timeout_t timeout, unsigned int sta
}
/* store the result of the client-side async callback */
void
async_set_result
(
struct
object
*
obj
,
unsigned
int
status
,
unsigned
long
total
)
void
async_set_result
(
struct
object
*
obj
,
unsigned
int
status
,
unsigned
int
total
)
{
struct
async
*
async
=
(
struct
async
*
)
obj
;
...
...
server/completion.c
View file @
f6fa72d7
...
...
@@ -81,7 +81,7 @@ struct comp_msg
struct
list
queue_entry
;
apc_param_t
ckey
;
apc_param_t
cvalue
;
unsigned
long
information
;
unsigned
int
information
;
unsigned
int
status
;
};
...
...
@@ -142,7 +142,7 @@ struct completion *get_completion_obj( struct process *process, obj_handle_t han
}
void
add_completion
(
struct
completion
*
completion
,
apc_param_t
ckey
,
apc_param_t
cvalue
,
unsigned
int
status
,
unsigned
long
information
)
unsigned
int
status
,
unsigned
int
information
)
{
struct
comp_msg
*
msg
=
mem_alloc
(
sizeof
(
*
msg
)
);
...
...
server/file.h
View file @
f6fa72d7
...
...
@@ -125,7 +125,7 @@ extern struct object *create_dir_obj( struct fd *fd );
extern
struct
completion
*
get_completion_obj
(
struct
process
*
process
,
obj_handle_t
handle
,
unsigned
int
access
);
extern
void
add_completion
(
struct
completion
*
completion
,
apc_param_t
ckey
,
apc_param_t
cvalue
,
unsigned
int
status
,
unsigned
long
information
);
unsigned
int
status
,
unsigned
int
information
);
/* serial port functions */
...
...
@@ -138,7 +138,7 @@ extern void free_async_queue( struct async_queue *queue );
extern
struct
async
*
create_async
(
struct
thread
*
thread
,
struct
async_queue
*
queue
,
const
async_data_t
*
data
);
extern
void
async_set_timeout
(
struct
async
*
async
,
timeout_t
timeout
,
unsigned
int
status
);
extern
void
async_set_result
(
struct
object
*
obj
,
unsigned
int
status
,
unsigned
long
total
);
extern
void
async_set_result
(
struct
object
*
obj
,
unsigned
int
status
,
unsigned
int
total
);
extern
int
async_waiting
(
struct
async_queue
*
queue
);
extern
void
async_terminate
(
struct
async
*
async
,
unsigned
int
status
);
extern
void
async_wake_up
(
struct
async_queue
*
queue
,
unsigned
int
status
);
...
...
server/protocol.def
View file @
f6fa72d7
...
...
@@ -289,7 +289,7 @@ typedef union
struct
{
enum apc_type type; /* APC_ASYNC_IO */
unsigned int (*func)(void*, void*, unsigned int, unsigned
long
*);
unsigned int (*func)(void*, void*, unsigned int, unsigned
int
*);
void *user; /* user pointer */
void *sb; /* status block */
unsigned int status; /* I/O status */
...
...
@@ -374,7 +374,7 @@ typedef union
{
enum apc_type type; /* APC_ASYNC_IO */
unsigned int status; /* new status of async operation */
unsigned
long
total; /* bytes transferred */
unsigned
int
total; /* bytes transferred */
} async_io;
struct
{
...
...
@@ -3034,7 +3034,7 @@ enum message_type
obj_handle_t handle; /* port handle */
apc_param_t ckey; /* completion key */
apc_param_t cvalue; /* completion value */
unsigned
long
information; /* IO_STATUS_BLOCK Information */
unsigned
int
information; /* IO_STATUS_BLOCK Information */
unsigned int status; /* completion result */
@END
...
...
@@ -3045,7 +3045,7 @@ enum message_type
@REPLY
apc_param_t ckey; /* completion key */
apc_param_t cvalue; /* completion value */
unsigned
long
information; /* IO_STATUS_BLOCK Information */
unsigned
int
information; /* IO_STATUS_BLOCK Information */
unsigned int status; /* completion result */
@END
...
...
@@ -3071,7 +3071,7 @@ enum message_type
obj_handle_t handle; /* async' object */
apc_param_t cvalue; /* completion value */
unsigned int status; /* completion status */
unsigned
long
information; /* IO_STATUS_BLOCK Information */
unsigned
int
information; /* IO_STATUS_BLOCK Information */
@END
...
...
server/trace.c
View file @
f6fa72d7
...
...
@@ -3745,7 +3745,7 @@ static void dump_add_completion_request( const struct add_completion_request *re
fprintf
(
stderr
,
" handle=%04x,"
,
req
->
handle
);
fprintf
(
stderr
,
" ckey=%lx,"
,
req
->
ckey
);
fprintf
(
stderr
,
" cvalue=%lx,"
,
req
->
cvalue
);
fprintf
(
stderr
,
" information=%
l
x,"
,
req
->
information
);
fprintf
(
stderr
,
" information=%
08
x,"
,
req
->
information
);
fprintf
(
stderr
,
" status=%08x"
,
req
->
status
);
}
...
...
@@ -3758,7 +3758,7 @@ static void dump_remove_completion_reply( const struct remove_completion_reply *
{
fprintf
(
stderr
,
" ckey=%lx,"
,
req
->
ckey
);
fprintf
(
stderr
,
" cvalue=%lx,"
,
req
->
cvalue
);
fprintf
(
stderr
,
" information=%
l
x,"
,
req
->
information
);
fprintf
(
stderr
,
" information=%
08
x,"
,
req
->
information
);
fprintf
(
stderr
,
" status=%08x"
,
req
->
status
);
}
...
...
@@ -3784,7 +3784,7 @@ static void dump_add_fd_completion_request( const struct add_fd_completion_reque
fprintf
(
stderr
,
" handle=%04x,"
,
req
->
handle
);
fprintf
(
stderr
,
" cvalue=%lx,"
,
req
->
cvalue
);
fprintf
(
stderr
,
" status=%08x,"
,
req
->
status
);
fprintf
(
stderr
,
" information=%
l
x"
,
req
->
information
);
fprintf
(
stderr
,
" information=%
08
x"
,
req
->
information
);
}
static
void
dump_get_window_layered_info_request
(
const
struct
get_window_layered_info_request
*
req
)
...
...
tools/make_requests
View file @
f6fa72d7
...
...
@@ -29,7 +29,6 @@ my %formats =
"unsigned char"
=>
[
1
,
1
,
"%02x"
],
"unsigned short"
=>
[
2
,
2
,
"%04x"
],
"unsigned int"
=>
[
4
,
4
,
"%08x"
],
"unsigned long"
=>
[
4
,
4
,
"%lx"
],
"void*"
=>
[
4
,
4
,
"%p"
],
"data_size_t"
=>
[
4
,
4
,
"%u"
],
"obj_handle_t"
=>
[
4
,
4
,
"%04x"
],
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment