Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
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-cw
Commits
eb3728d3
Commit
eb3728d3
authored
Mar 20, 2007
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
server: Use the common pattern for async I/O parameters in named pipe requests.
parent
7b103480
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
31 additions
and
24 deletions
+31
-24
file.c
dlls/ntdll/file.c
+6
-4
server_protocol.h
include/wine/server_protocol.h
+7
-5
named_pipe.c
server/named_pipe.c
+6
-7
protocol.def
server/protocol.def
+6
-4
trace.c
server/trace.c
+6
-4
No files found.
dlls/ntdll/file.c
View file @
eb3728d3
...
@@ -983,8 +983,9 @@ NTSTATUS WINAPI NtFsControlFile(HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc
...
@@ -983,8 +983,9 @@ NTSTATUS WINAPI NtFsControlFile(HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc
SERVER_START_REQ
(
connect_named_pipe
)
SERVER_START_REQ
(
connect_named_pipe
)
{
{
req
->
handle
=
handle
;
req
->
handle
=
handle
;
req
->
event
=
event
?
event
:
internal_event
;
req
->
io_apc
=
pipe_completion_wait
;
req
->
func
=
pipe_completion_wait
;
req
->
io_sb
=
io
;
req
->
io_user
=
event
?
event
:
internal_event
;
io
->
u
.
Status
=
wine_server_call
(
req
);
io
->
u
.
Status
=
wine_server_call
(
req
);
}
}
SERVER_END_REQ
;
SERVER_END_REQ
;
...
@@ -1018,8 +1019,9 @@ NTSTATUS WINAPI NtFsControlFile(HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc
...
@@ -1018,8 +1019,9 @@ NTSTATUS WINAPI NtFsControlFile(HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc
req
->
handle
=
handle
;
req
->
handle
=
handle
;
req
->
timeout
=
buff
->
TimeoutSpecified
?
buff
->
Timeout
.
QuadPart
/
-
10000L
req
->
timeout
=
buff
->
TimeoutSpecified
?
buff
->
Timeout
.
QuadPart
/
-
10000L
:
NMPWAIT_USE_DEFAULT_WAIT
;
:
NMPWAIT_USE_DEFAULT_WAIT
;
req
->
event
=
event
?
event
:
internal_event
;
req
->
io_apc
=
pipe_completion_wait
;
req
->
func
=
pipe_completion_wait
;
req
->
io_sb
=
io
;
req
->
io_user
=
event
?
event
:
internal_event
;
wine_server_add_data
(
req
,
buff
->
Name
,
buff
->
NameLength
);
wine_server_add_data
(
req
,
buff
->
Name
,
buff
->
NameLength
);
io
->
u
.
Status
=
wine_server_call
(
req
);
io
->
u
.
Status
=
wine_server_call
(
req
);
}
}
...
...
include/wine/server_protocol.h
View file @
eb3728d3
...
@@ -2709,8 +2709,9 @@ struct connect_named_pipe_request
...
@@ -2709,8 +2709,9 @@ struct connect_named_pipe_request
{
{
struct
request_header
__header
;
struct
request_header
__header
;
obj_handle_t
handle
;
obj_handle_t
handle
;
obj_handle_t
event
;
void
*
io_apc
;
void
*
func
;
void
*
io_sb
;
void
*
io_user
;
};
};
struct
connect_named_pipe_reply
struct
connect_named_pipe_reply
{
{
...
@@ -2724,8 +2725,9 @@ struct wait_named_pipe_request
...
@@ -2724,8 +2725,9 @@ struct wait_named_pipe_request
struct
request_header
__header
;
struct
request_header
__header
;
obj_handle_t
handle
;
obj_handle_t
handle
;
unsigned
int
timeout
;
unsigned
int
timeout
;
obj_handle_t
event
;
void
*
io_apc
;
void
*
func
;
void
*
io_sb
;
void
*
io_user
;
/* VARARG(name,unicode_str); */
/* VARARG(name,unicode_str); */
};
};
struct
wait_named_pipe_reply
struct
wait_named_pipe_reply
...
@@ -4692,6 +4694,6 @@ union generic_reply
...
@@ -4692,6 +4694,6 @@ union generic_reply
struct
allocate_locally_unique_id_reply
allocate_locally_unique_id_reply
;
struct
allocate_locally_unique_id_reply
allocate_locally_unique_id_reply
;
};
};
#define SERVER_PROTOCOL_VERSION 28
0
#define SERVER_PROTOCOL_VERSION 28
1
#endif
/* __WINE_WINE_SERVER_PROTOCOL_H */
#endif
/* __WINE_WINE_SERVER_PROTOCOL_H */
server/named_pipe.c
View file @
eb3728d3
...
@@ -824,8 +824,7 @@ DECL_HANDLER(connect_named_pipe)
...
@@ -824,8 +824,7 @@ DECL_HANDLER(connect_named_pipe)
case
ps_wait_connect
:
case
ps_wait_connect
:
assert
(
!
server
->
fd
);
assert
(
!
server
->
fd
);
server
->
state
=
ps_wait_open
;
server
->
state
=
ps_wait_open
;
create_async
(
current
,
NULL
,
&
server
->
wait_q
,
create_async
(
current
,
NULL
,
&
server
->
wait_q
,
req
->
io_apc
,
req
->
io_user
,
req
->
io_sb
);
req
->
func
,
req
->
event
,
NULL
);
async_terminate_queue
(
&
server
->
pipe
->
waiters
,
STATUS_SUCCESS
);
async_terminate_queue
(
&
server
->
pipe
->
waiters
,
STATUS_SUCCESS
);
break
;
break
;
case
ps_connected_server
:
case
ps_connected_server
:
...
@@ -873,9 +872,9 @@ DECL_HANDLER(wait_named_pipe)
...
@@ -873,9 +872,9 @@ DECL_HANDLER(wait_named_pipe)
/* there's already a server waiting for a client to connect */
/* there's already a server waiting for a client to connect */
memset
(
&
data
,
0
,
sizeof
(
data
)
);
memset
(
&
data
,
0
,
sizeof
(
data
)
);
data
.
type
=
APC_ASYNC_IO
;
data
.
type
=
APC_ASYNC_IO
;
data
.
async_io
.
func
=
req
->
fun
c
;
data
.
async_io
.
func
=
req
->
io_ap
c
;
data
.
async_io
.
user
=
req
->
event
;
data
.
async_io
.
user
=
req
->
io_user
;
data
.
async_io
.
sb
=
NULL
;
data
.
async_io
.
sb
=
req
->
io_sb
;
data
.
async_io
.
status
=
STATUS_SUCCESS
;
data
.
async_io
.
status
=
STATUS_SUCCESS
;
thread_queue_apc
(
current
,
NULL
,
&
data
);
thread_queue_apc
(
current
,
NULL
,
&
data
);
release_object
(
server
);
release_object
(
server
);
...
@@ -884,13 +883,13 @@ DECL_HANDLER(wait_named_pipe)
...
@@ -884,13 +883,13 @@ DECL_HANDLER(wait_named_pipe)
{
{
if
(
req
->
timeout
==
NMPWAIT_WAIT_FOREVER
)
if
(
req
->
timeout
==
NMPWAIT_WAIT_FOREVER
)
create_async
(
current
,
NULL
,
&
pipe
->
waiters
,
create_async
(
current
,
NULL
,
&
pipe
->
waiters
,
req
->
func
,
req
->
event
,
NULL
);
req
->
io_apc
,
req
->
io_user
,
req
->
io_sb
);
else
else
{
{
struct
timeval
when
=
current_time
;
struct
timeval
when
=
current_time
;
if
(
req
->
timeout
==
NMPWAIT_USE_DEFAULT_WAIT
)
add_timeout
(
&
when
,
pipe
->
timeout
);
if
(
req
->
timeout
==
NMPWAIT_USE_DEFAULT_WAIT
)
add_timeout
(
&
when
,
pipe
->
timeout
);
else
add_timeout
(
&
when
,
req
->
timeout
);
else
add_timeout
(
&
when
,
req
->
timeout
);
create_async
(
current
,
&
when
,
&
pipe
->
waiters
,
req
->
func
,
req
->
event
,
NULL
);
create_async
(
current
,
&
when
,
&
pipe
->
waiters
,
req
->
io_apc
,
req
->
io_user
,
req
->
io_sb
);
}
}
}
}
...
...
server/protocol.def
View file @
eb3728d3
...
@@ -1997,8 +1997,9 @@ enum message_type
...
@@ -1997,8 +1997,9 @@ enum message_type
/* Connect to a named pipe */
/* Connect to a named pipe */
@REQ(connect_named_pipe)
@REQ(connect_named_pipe)
obj_handle_t handle;
obj_handle_t handle;
obj_handle_t event;
void* io_apc; /* APC routine to queue upon end of async */
void* func;
void* io_sb; /* I/O status block */
void* io_user; /* data to pass back to caller */
@END
@END
...
@@ -2006,8 +2007,9 @@ enum message_type
...
@@ -2006,8 +2007,9 @@ enum message_type
@REQ(wait_named_pipe)
@REQ(wait_named_pipe)
obj_handle_t handle;
obj_handle_t handle;
unsigned int timeout;
unsigned int timeout;
obj_handle_t event;
void* io_apc; /* APC routine to queue upon end of async */
void* func;
void* io_sb; /* I/O status block */
void* io_user; /* data to pass back to caller */
VARARG(name,unicode_str); /* pipe name */
VARARG(name,unicode_str); /* pipe name */
@END
@END
...
...
server/trace.c
View file @
eb3728d3
...
@@ -2425,16 +2425,18 @@ static void dump_open_named_pipe_reply( const struct open_named_pipe_reply *req
...
@@ -2425,16 +2425,18 @@ static void dump_open_named_pipe_reply( const struct open_named_pipe_reply *req
static
void
dump_connect_named_pipe_request
(
const
struct
connect_named_pipe_request
*
req
)
static
void
dump_connect_named_pipe_request
(
const
struct
connect_named_pipe_request
*
req
)
{
{
fprintf
(
stderr
,
" handle=%p,"
,
req
->
handle
);
fprintf
(
stderr
,
" handle=%p,"
,
req
->
handle
);
fprintf
(
stderr
,
" event=%p,"
,
req
->
event
);
fprintf
(
stderr
,
" io_apc=%p,"
,
req
->
io_apc
);
fprintf
(
stderr
,
" func=%p"
,
req
->
func
);
fprintf
(
stderr
,
" io_sb=%p,"
,
req
->
io_sb
);
fprintf
(
stderr
,
" io_user=%p"
,
req
->
io_user
);
}
}
static
void
dump_wait_named_pipe_request
(
const
struct
wait_named_pipe_request
*
req
)
static
void
dump_wait_named_pipe_request
(
const
struct
wait_named_pipe_request
*
req
)
{
{
fprintf
(
stderr
,
" handle=%p,"
,
req
->
handle
);
fprintf
(
stderr
,
" handle=%p,"
,
req
->
handle
);
fprintf
(
stderr
,
" timeout=%08x,"
,
req
->
timeout
);
fprintf
(
stderr
,
" timeout=%08x,"
,
req
->
timeout
);
fprintf
(
stderr
,
" event=%p,"
,
req
->
event
);
fprintf
(
stderr
,
" io_apc=%p,"
,
req
->
io_apc
);
fprintf
(
stderr
,
" func=%p,"
,
req
->
func
);
fprintf
(
stderr
,
" io_sb=%p,"
,
req
->
io_sb
);
fprintf
(
stderr
,
" io_user=%p,"
,
req
->
io_user
);
fprintf
(
stderr
,
" name="
);
fprintf
(
stderr
,
" name="
);
dump_varargs_unicode_str
(
cur_size
);
dump_varargs_unicode_str
(
cur_size
);
}
}
...
...
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