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
1ab243ba
Commit
1ab243ba
authored
Dec 19, 2000
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Merged the get_read_fd and get_write_fd requests.
parent
d88dbb4a
Hide whitespace changes
Inline
Side-by-side
Showing
29 changed files
with
71 additions
and
207 deletions
+71
-207
file.c
files/file.c
+4
-13
server.h
include/server.h
+7
-16
process.c
scheduler/process.c
+0
-1
async.c
server/async.c
+3
-12
atom.c
server/atom.c
+1
-2
change.c
server/change.c
+1
-2
console.c
server/console.c
+8
-10
debugger.c
server/debugger.c
+2
-4
device.c
server/device.c
+1
-2
event.c
server/event.c
+1
-2
file.c
server/file.c
+8
-28
handle.c
server/handle.c
+1
-2
mapping.c
server/mapping.c
+1
-2
mutex.c
server/mutex.c
+1
-2
object.c
server/object.c
+1
-7
object.h
server/object.h
+3
-6
pipe.c
server/pipe.c
+3
-28
process.c
server/process.c
+2
-23
queue.c
server/queue.c
+1
-2
registry.c
server/registry.c
+3
-4
request.c
server/request.c
+1
-2
request.h
server/request.h
+2
-4
semaphore.c
server/semaphore.c
+1
-2
serial.c
server/serial.c
+3
-12
snapshot.c
server/snapshot.c
+1
-2
sock.c
server/sock.c
+1
-2
thread.c
server/thread.c
+1
-2
timer.c
server/timer.c
+1
-2
trace.c
server/trace.c
+8
-11
No files found.
files/file.c
View file @
1ab243ba
...
...
@@ -198,19 +198,10 @@ HFILE FILE_DupUnixHandle( int fd, DWORD access )
int
FILE_GetUnixHandle
(
HANDLE
handle
,
DWORD
access
)
{
int
unix_handle
=
-
1
;
if
(
access
==
GENERIC_READ
)
{
struct
get_read_fd_request
*
req
=
get_req_buffer
();
req
->
handle
=
handle
;
server_call_fd
(
REQ_GET_READ_FD
,
-
1
,
&
unix_handle
);
}
else
if
(
access
==
GENERIC_WRITE
)
{
struct
get_write_fd_request
*
req
=
get_req_buffer
();
req
->
handle
=
handle
;
server_call_fd
(
REQ_GET_WRITE_FD
,
-
1
,
&
unix_handle
);
}
else
ERR
(
"bad access %08lx
\n
"
,
access
);
struct
get_handle_fd_request
*
req
=
get_req_buffer
();
req
->
handle
=
handle
;
req
->
access
=
access
;
server_call_fd
(
REQ_GET_HANDLE_FD
,
-
1
,
&
unix_handle
);
return
unix_handle
;
}
...
...
include/server.h
View file @
1ab243ba
...
...
@@ -130,7 +130,6 @@ struct new_process_request
IN
int
hstdout
;
/* handle for stdout */
IN
int
hstderr
;
/* handle for stderr */
IN
int
cmd_show
;
/* main window show mode */
IN
int
alloc_fd
;
/* create the fd pair right now? */
IN
VARARG
(
filename
,
string
);
/* file name of main exe */
};
...
...
@@ -542,19 +541,13 @@ struct alloc_file_handle_request
};
/* Get a Unix fd to read from a file */
struct
get_read_fd_request
{
REQUEST_HEADER
;
/* request header */
IN
int
handle
;
/* handle to the file */
};
/* Get a Unix fd to write to a file */
struct
get_write_fd_request
/* Get a Unix fd to access a file */
struct
get_handle_fd_request
{
REQUEST_HEADER
;
/* request header */
IN
int
handle
;
/* handle to the file */
IN
unsigned
int
access
;
/* wanted access rights */
OUT
int
fd
;
/* file descriptor */
};
...
...
@@ -1396,8 +1389,7 @@ enum request
REQ_OPEN_SEMAPHORE
,
REQ_CREATE_FILE
,
REQ_ALLOC_FILE_HANDLE
,
REQ_GET_READ_FD
,
REQ_GET_WRITE_FD
,
REQ_GET_HANDLE_FD
,
REQ_SET_FILE_POINTER
,
REQ_TRUNCATE_FILE
,
REQ_SET_FILE_TIME
,
...
...
@@ -1513,8 +1505,7 @@ union generic_request
struct
open_semaphore_request
open_semaphore
;
struct
create_file_request
create_file
;
struct
alloc_file_handle_request
alloc_file_handle
;
struct
get_read_fd_request
get_read_fd
;
struct
get_write_fd_request
get_write_fd
;
struct
get_handle_fd_request
get_handle_fd
;
struct
set_file_pointer_request
set_file_pointer
;
struct
truncate_file_request
truncate_file
;
struct
set_file_time_request
set_file_time
;
...
...
@@ -1588,7 +1579,7 @@ union generic_request
struct
async_result_request
async_result
;
};
#define SERVER_PROTOCOL_VERSION
29
#define SERVER_PROTOCOL_VERSION
30
/* ### make_requests end ### */
/* Everything above this line is generated automatically by tools/make_requests */
...
...
scheduler/process.c
View file @
1ab243ba
...
...
@@ -778,7 +778,6 @@ BOOL PROCESS_Create( HFILE hFile, LPCSTR filename, LPSTR cmd_line, LPCSTR env,
req
->
hstderr
=
GetStdHandle
(
STD_ERROR_HANDLE
);
}
req
->
cmd_show
=
startup
->
wShowWindow
;
req
->
alloc_fd
=
0
;
if
(
hFile
==
-
1
)
/* unix process */
{
...
...
server/async.c
View file @
1ab243ba
...
...
@@ -58,8 +58,7 @@ struct async
static
void
async_dump
(
struct
object
*
obj
,
int
verbose
);
static
void
async_destroy
(
struct
object
*
obj
);
static
int
async_get_poll_events
(
struct
object
*
obj
);
static
int
async_get_read_fd
(
struct
object
*
obj
);
static
int
async_get_write_fd
(
struct
object
*
obj
);
static
int
async_get_fd
(
struct
object
*
obj
);
static
int
async_get_info
(
struct
object
*
obj
,
struct
get_file_info_request
*
req
);
static
void
async_poll_event
(
struct
object
*
obj
,
int
event
);
...
...
@@ -73,8 +72,7 @@ static const struct object_ops async_ops =
no_satisfied
,
/* satisfied */
async_get_poll_events
,
/* get_poll_events */
async_poll_event
,
/* poll_event */
async_get_read_fd
,
/* get_read_fd */
async_get_write_fd
,
/* get_write_fd */
async_get_fd
,
/* get_fd */
no_flush
,
/* flush */
async_get_info
,
/* get_file_info */
async_destroy
/* destroy */
...
...
@@ -115,14 +113,7 @@ static int async_get_poll_events( struct object *obj )
return
serial_async_get_poll_events
(
ov
);
}
static
int
async_get_read_fd
(
struct
object
*
obj
)
{
struct
async
*
async
=
(
struct
async
*
)
obj
;
assert
(
obj
->
ops
==
&
async_ops
);
return
dup
(
async
->
obj
.
fd
);
}
static
int
async_get_write_fd
(
struct
object
*
obj
)
static
int
async_get_fd
(
struct
object
*
obj
)
{
struct
async
*
async
=
(
struct
async
*
)
obj
;
assert
(
obj
->
ops
==
&
async_ops
);
...
...
server/atom.c
View file @
1ab243ba
...
...
@@ -54,8 +54,7 @@ static const struct object_ops atom_table_ops =
NULL
,
/* satified */
NULL
,
/* get_poll_events */
NULL
,
/* poll_event */
no_read_fd
,
/* get_read_fd */
no_write_fd
,
/* get_write_fd */
no_get_fd
,
/* get_fd */
no_flush
,
/* flush */
no_get_file_info
,
/* get_file_info */
atom_table_destroy
/* destroy */
...
...
server/change.c
View file @
1ab243ba
...
...
@@ -34,8 +34,7 @@ static const struct object_ops change_ops =
no_satisfied
,
/* satisfied */
NULL
,
/* get_poll_events */
NULL
,
/* poll_event */
no_read_fd
,
/* get_read_fd */
no_write_fd
,
/* get_write_fd */
no_get_fd
,
/* get_fd */
no_flush
,
/* flush */
no_get_file_info
,
/* get_file_info */
no_destroy
/* destroy */
...
...
server/console.c
View file @
1ab243ba
...
...
@@ -58,12 +58,12 @@ struct screen_buffer
static
void
console_input_dump
(
struct
object
*
obj
,
int
verbose
);
static
int
console_input_get_poll_events
(
struct
object
*
obj
);
static
int
console_input_get_
read_
fd
(
struct
object
*
obj
);
static
int
console_input_get_fd
(
struct
object
*
obj
);
static
void
console_input_destroy
(
struct
object
*
obj
);
static
void
screen_buffer_dump
(
struct
object
*
obj
,
int
verbose
);
static
int
screen_buffer_get_poll_events
(
struct
object
*
obj
);
static
int
screen_buffer_get_
write_
fd
(
struct
object
*
obj
);
static
int
screen_buffer_get_fd
(
struct
object
*
obj
);
static
void
screen_buffer_destroy
(
struct
object
*
obj
);
/* common routine */
...
...
@@ -79,8 +79,7 @@ static const struct object_ops console_input_ops =
no_satisfied
,
/* satisfied */
console_input_get_poll_events
,
/* get_poll_events */
default_poll_event
,
/* poll_event */
console_input_get_read_fd
,
/* get_read_fd */
no_write_fd
,
/* get_write_fd */
console_input_get_fd
,
/* get_fd */
no_flush
,
/* flush */
console_get_info
,
/* get_file_info */
console_input_destroy
/* destroy */
...
...
@@ -96,8 +95,7 @@ static const struct object_ops screen_buffer_ops =
no_satisfied
,
/* satisfied */
screen_buffer_get_poll_events
,
/* get_poll_events */
default_poll_event
,
/* poll_event */
no_read_fd
,
/* get_read_fd */
screen_buffer_get_write_fd
,
/* get_write_fd */
screen_buffer_get_fd
,
/* get_fd */
no_flush
,
/* flush */
console_get_info
,
/* get_file_info */
screen_buffer_destroy
/* destroy */
...
...
@@ -352,7 +350,7 @@ static int console_input_get_poll_events( struct object *obj )
return
POLLIN
;
}
static
int
console_input_get_
read_
fd
(
struct
object
*
obj
)
static
int
console_input_get_fd
(
struct
object
*
obj
)
{
struct
console_input
*
console
=
(
struct
console_input
*
)
obj
;
assert
(
obj
->
ops
==
&
console_input_ops
);
...
...
@@ -393,7 +391,7 @@ static int screen_buffer_get_poll_events( struct object *obj )
return
POLLOUT
;
}
static
int
screen_buffer_get_
write_
fd
(
struct
object
*
obj
)
static
int
screen_buffer_get_fd
(
struct
object
*
obj
)
{
struct
screen_buffer
*
console
=
(
struct
screen_buffer
*
)
obj
;
assert
(
obj
->
ops
==
&
screen_buffer_ops
);
...
...
@@ -483,12 +481,12 @@ DECL_HANDLER(set_console_fd)
if
(
!
(
obj
=
get_handle_obj
(
current
->
process
,
req
->
file_handle
,
GENERIC_READ
|
GENERIC_WRITE
,
NULL
)))
return
;
if
((
fd_in
=
obj
->
ops
->
get_
read_
fd
(
obj
))
==
-
1
)
if
((
fd_in
=
obj
->
ops
->
get_fd
(
obj
))
==
-
1
)
{
release_object
(
obj
);
return
;
}
fd_out
=
obj
->
ops
->
get_write_fd
(
obj
);
fd_out
=
dup
(
fd_in
);
release_object
(
obj
);
if
(
fd_out
!=
-
1
)
{
...
...
server/debugger.c
View file @
1ab243ba
...
...
@@ -53,8 +53,7 @@ static const struct object_ops debug_event_ops =
no_satisfied
,
/* satisfied */
NULL
,
/* get_poll_events */
NULL
,
/* poll_event */
no_read_fd
,
/* get_read_fd */
no_write_fd
,
/* get_write_fd */
no_get_fd
,
/* get_fd */
no_flush
,
/* flush */
no_get_file_info
,
/* get_file_info */
debug_event_destroy
/* destroy */
...
...
@@ -74,8 +73,7 @@ static const struct object_ops debug_ctx_ops =
no_satisfied
,
/* satisfied */
NULL
,
/* get_poll_events */
NULL
,
/* poll_event */
no_read_fd
,
/* get_read_fd */
no_write_fd
,
/* get_write_fd */
no_get_fd
,
/* get_fd */
no_flush
,
/* flush */
no_get_file_info
,
/* get_file_info */
debug_ctx_destroy
/* destroy */
...
...
server/device.c
View file @
1ab243ba
...
...
@@ -41,8 +41,7 @@ static const struct object_ops device_ops =
NULL
,
/* satisfied */
NULL
,
/* get_poll_events */
NULL
,
/* poll_event */
no_read_fd
,
/* get_read_fd */
no_write_fd
,
/* get_write_fd */
no_get_fd
,
/* get_fd */
no_flush
,
/* flush */
device_get_info
,
/* get_file_info */
no_destroy
/* destroy */
...
...
server/event.c
View file @
1ab243ba
...
...
@@ -35,8 +35,7 @@ static const struct object_ops event_ops =
event_satisfied
,
/* satisfied */
NULL
,
/* get_poll_events */
NULL
,
/* poll_event */
no_read_fd
,
/* get_read_fd */
no_write_fd
,
/* get_write_fd */
no_get_fd
,
/* get_fd */
no_flush
,
/* flush */
no_get_file_info
,
/* get_file_info */
no_destroy
/* destroy */
...
...
server/file.c
View file @
1ab243ba
...
...
@@ -45,8 +45,7 @@ static struct file *file_hash[NAME_HASH_SIZE];
static
void
file_dump
(
struct
object
*
obj
,
int
verbose
);
static
int
file_get_poll_events
(
struct
object
*
obj
);
static
int
file_get_read_fd
(
struct
object
*
obj
);
static
int
file_get_write_fd
(
struct
object
*
obj
);
static
int
file_get_fd
(
struct
object
*
obj
);
static
int
file_flush
(
struct
object
*
obj
);
static
int
file_get_info
(
struct
object
*
obj
,
struct
get_file_info_request
*
req
);
static
void
file_destroy
(
struct
object
*
obj
);
...
...
@@ -61,8 +60,7 @@ static const struct object_ops file_ops =
no_satisfied
,
/* satisfied */
file_get_poll_events
,
/* get_poll_events */
default_poll_event
,
/* poll_event */
file_get_read_fd
,
/* get_read_fd */
file_get_write_fd
,
/* get_write_fd */
file_get_fd
,
/* get_fd */
file_flush
,
/* flush */
file_get_info
,
/* get_file_info */
file_destroy
/* destroy */
...
...
@@ -233,14 +231,7 @@ static int file_get_poll_events( struct object *obj )
return
events
;
}
static
int
file_get_read_fd
(
struct
object
*
obj
)
{
struct
file
*
file
=
(
struct
file
*
)
obj
;
assert
(
obj
->
ops
==
&
file_ops
);
return
dup
(
file
->
obj
.
fd
);
}
static
int
file_get_write_fd
(
struct
object
*
obj
)
static
int
file_get_fd
(
struct
object
*
obj
)
{
struct
file
*
file
=
(
struct
file
*
)
obj
;
assert
(
obj
->
ops
==
&
file_ops
);
...
...
@@ -480,26 +471,15 @@ DECL_HANDLER(alloc_file_handle)
else
set_error
(
STATUS_INVALID_PARAMETER
);
}
/* get a Unix fd to read from a file */
DECL_HANDLER
(
get_read_fd
)
{
struct
object
*
obj
;
if
((
obj
=
get_handle_obj
(
current
->
process
,
req
->
handle
,
GENERIC_READ
,
NULL
)))
{
set_reply_fd
(
current
,
obj
->
ops
->
get_read_fd
(
obj
)
);
release_object
(
obj
);
}
}
/* get a Unix fd to write to a file */
DECL_HANDLER
(
get_write_fd
)
/* get a Unix fd to access a file */
DECL_HANDLER
(
get_handle_fd
)
{
struct
object
*
obj
;
if
((
obj
=
get_handle_obj
(
current
->
process
,
req
->
handle
,
GENERIC_WRITE
,
NULL
)))
req
->
fd
=
-
1
;
if
((
obj
=
get_handle_obj
(
current
->
process
,
req
->
handle
,
req
->
access
,
NULL
)))
{
set_reply_fd
(
current
,
obj
->
ops
->
get_
write_
fd
(
obj
)
);
set_reply_fd
(
current
,
obj
->
ops
->
get_fd
(
obj
)
);
release_object
(
obj
);
}
}
...
...
server/handle.c
View file @
1ab243ba
...
...
@@ -76,8 +76,7 @@ static const struct object_ops handle_table_ops =
NULL
,
/* satisfied */
NULL
,
/* get_poll_events */
NULL
,
/* poll_event */
no_read_fd
,
/* get_read_fd */
no_write_fd
,
/* get_write_fd */
no_get_fd
,
/* get_fd */
no_flush
,
/* flush */
no_get_file_info
,
/* get_file_info */
handle_table_destroy
/* destroy */
...
...
server/mapping.c
View file @
1ab243ba
...
...
@@ -43,8 +43,7 @@ static const struct object_ops mapping_ops =
NULL
,
/* satisfied */
NULL
,
/* get_poll_events */
NULL
,
/* poll_event */
no_read_fd
,
/* get_read_fd */
no_write_fd
,
/* get_write_fd */
no_get_fd
,
/* get_fd */
no_flush
,
/* flush */
no_get_file_info
,
/* get_file_info */
mapping_destroy
/* destroy */
...
...
server/mutex.c
View file @
1ab243ba
...
...
@@ -39,8 +39,7 @@ static const struct object_ops mutex_ops =
mutex_satisfied
,
/* satisfied */
NULL
,
/* get_poll_events */
NULL
,
/* poll_event */
no_read_fd
,
/* get_read_fd */
no_write_fd
,
/* get_write_fd */
no_get_fd
,
/* get_fd */
no_flush
,
/* flush */
no_get_file_info
,
/* get_file_info */
mutex_destroy
/* destroy */
...
...
server/object.c
View file @
1ab243ba
...
...
@@ -251,13 +251,7 @@ int no_satisfied( struct object *obj, struct thread *thread )
return
0
;
/* not abandoned */
}
int
no_read_fd
(
struct
object
*
obj
)
{
set_error
(
STATUS_OBJECT_TYPE_MISMATCH
);
return
-
1
;
}
int
no_write_fd
(
struct
object
*
obj
)
int
no_get_fd
(
struct
object
*
obj
)
{
set_error
(
STATUS_OBJECT_TYPE_MISMATCH
);
return
-
1
;
...
...
server/object.h
View file @
1ab243ba
...
...
@@ -46,10 +46,8 @@ struct object_ops
int
(
*
get_poll_events
)(
struct
object
*
);
/* a poll() event occured */
void
(
*
poll_event
)(
struct
object
*
,
int
event
);
/* return a Unix fd that can be used to read from the object */
int
(
*
get_read_fd
)(
struct
object
*
);
/* return a Unix fd that can be used to write to the object */
int
(
*
get_write_fd
)(
struct
object
*
);
/* return a Unix fd that can be used to read/write from the object */
int
(
*
get_fd
)(
struct
object
*
);
/* flush the object buffers */
int
(
*
flush
)(
struct
object
*
);
/* get file information */
...
...
@@ -93,8 +91,7 @@ extern void release_object( void *obj );
extern
struct
object
*
find_object
(
const
WCHAR
*
name
,
size_t
len
);
extern
int
no_add_queue
(
struct
object
*
obj
,
struct
wait_queue_entry
*
entry
);
extern
int
no_satisfied
(
struct
object
*
obj
,
struct
thread
*
thread
);
extern
int
no_read_fd
(
struct
object
*
obj
);
extern
int
no_write_fd
(
struct
object
*
obj
);
extern
int
no_get_fd
(
struct
object
*
obj
);
extern
int
no_flush
(
struct
object
*
obj
);
extern
int
no_get_file_info
(
struct
object
*
obj
,
struct
get_file_info_request
*
info
);
extern
void
no_destroy
(
struct
object
*
obj
);
...
...
server/pipe.c
View file @
1ab243ba
...
...
@@ -37,8 +37,7 @@ struct pipe
static
void
pipe_dump
(
struct
object
*
obj
,
int
verbose
);
static
int
pipe_get_poll_events
(
struct
object
*
obj
);
static
int
pipe_get_read_fd
(
struct
object
*
obj
);
static
int
pipe_get_write_fd
(
struct
object
*
obj
);
static
int
pipe_get_fd
(
struct
object
*
obj
);
static
int
pipe_get_info
(
struct
object
*
obj
,
struct
get_file_info_request
*
req
);
static
void
pipe_destroy
(
struct
object
*
obj
);
...
...
@@ -52,8 +51,7 @@ static const struct object_ops pipe_ops =
no_satisfied
,
/* satisfied */
pipe_get_poll_events
,
/* get_poll_events */
default_poll_event
,
/* poll_event */
pipe_get_read_fd
,
/* get_read_fd */
pipe_get_write_fd
,
/* get_write_fd */
pipe_get_fd
,
/* get_fd */
no_flush
,
/* flush */
pipe_get_info
,
/* get_file_info */
pipe_destroy
/* destroy */
...
...
@@ -114,7 +112,7 @@ static int pipe_get_poll_events( struct object *obj )
return
(
pipe
->
side
==
READ_SIDE
)
?
POLLIN
:
POLLOUT
;
}
static
int
pipe_get_
read_
fd
(
struct
object
*
obj
)
static
int
pipe_get_fd
(
struct
object
*
obj
)
{
struct
pipe
*
pipe
=
(
struct
pipe
*
)
obj
;
assert
(
obj
->
ops
==
&
pipe_ops
);
...
...
@@ -124,29 +122,6 @@ static int pipe_get_read_fd( struct object *obj )
set_error
(
STATUS_PIPE_BROKEN
);
return
-
1
;
}
if
(
pipe
->
side
!=
READ_SIDE
)
/* FIXME: should not be necessary */
{
set_error
(
STATUS_ACCESS_DENIED
);
return
-
1
;
}
return
dup
(
pipe
->
obj
.
fd
);
}
static
int
pipe_get_write_fd
(
struct
object
*
obj
)
{
struct
pipe
*
pipe
=
(
struct
pipe
*
)
obj
;
assert
(
obj
->
ops
==
&
pipe_ops
);
if
(
!
pipe
->
other
)
{
set_error
(
STATUS_PIPE_BROKEN
);
return
-
1
;
}
if
(
pipe
->
side
!=
WRITE_SIDE
)
/* FIXME: should not be necessary */
{
set_error
(
STATUS_ACCESS_DENIED
);
return
-
1
;
}
return
dup
(
pipe
->
obj
.
fd
);
}
...
...
server/process.c
View file @
1ab243ba
...
...
@@ -48,8 +48,7 @@ static const struct object_ops process_ops =
no_satisfied
,
/* satisfied */
NULL
,
/* get_poll_events */
NULL
,
/* poll_event */
no_read_fd
,
/* get_read_fd */
no_write_fd
,
/* get_write_fd */
no_get_fd
,
/* get_fd */
no_flush
,
/* flush */
no_get_file_info
,
/* get_file_info */
process_destroy
/* destroy */
...
...
@@ -87,8 +86,7 @@ static const struct object_ops startup_info_ops =
no_satisfied
,
/* satisfied */
NULL
,
/* get_poll_events */
NULL
,
/* poll_event */
no_read_fd
,
/* get_read_fd */
no_write_fd
,
/* get_write_fd */
no_get_fd
,
/* get_fd */
no_flush
,
/* flush */
no_get_file_info
,
/* get_file_info */
startup_info_destroy
/* destroy */
...
...
@@ -716,7 +714,6 @@ DECL_HANDLER(new_process)
{
size_t
len
=
get_req_data_size
(
req
);
struct
startup_info
*
info
;
int
sock
[
2
];
if
(
current
->
info
)
{
...
...
@@ -752,24 +749,6 @@ DECL_HANDLER(new_process)
}
memcpy
(
info
->
filename
,
get_req_data
(
req
),
len
);
info
->
filename
[
len
]
=
0
;
if
(
req
->
alloc_fd
)
{
if
(
socketpair
(
AF_UNIX
,
SOCK_STREAM
,
0
,
sock
)
==
-
1
)
{
file_set_error
();
release_object
(
info
);
return
;
}
if
(
!
create_process
(
sock
[
0
]
))
{
release_object
(
info
);
close
(
sock
[
1
]
);
return
;
}
/* thread object will be released when the thread gets killed */
set_reply_fd
(
current
,
sock
[
1
]
);
}
current
->
info
=
info
;
}
...
...
server/queue.c
View file @
1ab243ba
...
...
@@ -36,8 +36,7 @@ static const struct object_ops msg_queue_ops =
msg_queue_satisfied
,
/* satisfied */
NULL
,
/* get_poll_events */
NULL
,
/* poll_event */
no_read_fd
,
/* get_read_fd */
no_write_fd
,
/* get_write_fd */
no_get_fd
,
/* get_fd */
no_flush
,
/* flush */
no_get_file_info
,
/* get_file_info */
no_destroy
/* destroy */
...
...
server/registry.c
View file @
1ab243ba
...
...
@@ -137,8 +137,7 @@ static const struct object_ops key_ops =
NULL
,
/* satisfied */
NULL
,
/* get_poll_events */
NULL
,
/* poll_event */
no_read_fd
,
/* get_read_fd */
no_write_fd
,
/* get_write_fd */
no_get_fd
,
/* get_fd */
no_flush
,
/* flush */
no_get_file_info
,
/* get_file_info */
key_destroy
/* destroy */
...
...
@@ -1341,7 +1340,7 @@ static void load_registry( struct key *key, int handle )
int
fd
;
if
(
!
(
obj
=
get_handle_obj
(
current
->
process
,
handle
,
GENERIC_READ
,
NULL
)))
return
;
fd
=
obj
->
ops
->
get_
read_
fd
(
obj
);
fd
=
obj
->
ops
->
get_fd
(
obj
);
release_object
(
obj
);
if
(
fd
!=
-
1
)
{
...
...
@@ -1436,7 +1435,7 @@ static void save_registry( struct key *key, int handle )
return
;
}
if
(
!
(
obj
=
get_handle_obj
(
current
->
process
,
handle
,
GENERIC_WRITE
,
NULL
)))
return
;
fd
=
obj
->
ops
->
get_
write_
fd
(
obj
);
fd
=
obj
->
ops
->
get_fd
(
obj
);
release_object
(
obj
);
if
(
fd
!=
-
1
)
{
...
...
server/request.c
View file @
1ab243ba
...
...
@@ -64,8 +64,7 @@ static const struct object_ops master_socket_ops =
NULL
,
/* satisfied */
NULL
,
/* get_poll_events */
master_socket_poll_event
,
/* poll_event */
no_read_fd
,
/* get_read_fd */
no_write_fd
,
/* get_write_fd */
no_get_fd
,
/* get_fd */
no_flush
,
/* flush */
no_get_file_info
,
/* get_file_info */
master_socket_destroy
/* destroy */
...
...
server/request.h
View file @
1ab243ba
...
...
@@ -106,8 +106,7 @@ DECL_HANDLER(release_semaphore);
DECL_HANDLER
(
open_semaphore
);
DECL_HANDLER
(
create_file
);
DECL_HANDLER
(
alloc_file_handle
);
DECL_HANDLER
(
get_read_fd
);
DECL_HANDLER
(
get_write_fd
);
DECL_HANDLER
(
get_handle_fd
);
DECL_HANDLER
(
set_file_pointer
);
DECL_HANDLER
(
truncate_file
);
DECL_HANDLER
(
set_file_time
);
...
...
@@ -222,8 +221,7 @@ static const req_handler req_handlers[REQ_NB_REQUESTS] =
(
req_handler
)
req_open_semaphore
,
(
req_handler
)
req_create_file
,
(
req_handler
)
req_alloc_file_handle
,
(
req_handler
)
req_get_read_fd
,
(
req_handler
)
req_get_write_fd
,
(
req_handler
)
req_get_handle_fd
,
(
req_handler
)
req_set_file_pointer
,
(
req_handler
)
req_truncate_file
,
(
req_handler
)
req_set_file_time
,
...
...
server/semaphore.c
View file @
1ab243ba
...
...
@@ -35,8 +35,7 @@ static const struct object_ops semaphore_ops =
semaphore_satisfied
,
/* satisfied */
NULL
,
/* get_poll_events */
NULL
,
/* poll_event */
no_read_fd
,
/* get_read_fd */
no_write_fd
,
/* get_write_fd */
no_get_fd
,
/* get_fd */
no_flush
,
/* flush */
no_get_file_info
,
/* get_file_info */
no_destroy
/* destroy */
...
...
server/serial.c
View file @
1ab243ba
...
...
@@ -37,8 +37,7 @@
#include "request.h"
static
void
serial_dump
(
struct
object
*
obj
,
int
verbose
);
static
int
serial_get_read_fd
(
struct
object
*
obj
);
static
int
serial_get_write_fd
(
struct
object
*
obj
);
static
int
serial_get_fd
(
struct
object
*
obj
);
static
int
serial_get_info
(
struct
object
*
obj
,
struct
get_file_info_request
*
req
);
static
int
serial_get_poll_events
(
struct
object
*
obj
);
...
...
@@ -72,8 +71,7 @@ static const struct object_ops serial_ops =
no_satisfied
,
/* satisfied */
serial_get_poll_events
,
/* get_poll_events */
default_poll_event
,
/* poll_event */
serial_get_read_fd
,
/* get_read_fd */
serial_get_write_fd
,
/* get_write_fd */
serial_get_fd
,
/* get_fd */
no_flush
,
/* flush */
serial_get_info
,
/* get_file_info */
no_destroy
/* destroy */
...
...
@@ -152,14 +150,7 @@ static int serial_get_poll_events( struct object *obj )
return
events
;
}
static
int
serial_get_read_fd
(
struct
object
*
obj
)
{
struct
serial
*
serial
=
(
struct
serial
*
)
obj
;
assert
(
obj
->
ops
==
&
serial_ops
);
return
dup
(
serial
->
obj
.
fd
);
}
static
int
serial_get_write_fd
(
struct
object
*
obj
)
static
int
serial_get_fd
(
struct
object
*
obj
)
{
struct
serial
*
serial
=
(
struct
serial
*
)
obj
;
assert
(
obj
->
ops
==
&
serial_ops
);
...
...
server/snapshot.c
View file @
1ab243ba
...
...
@@ -47,8 +47,7 @@ static const struct object_ops snapshot_ops =
NULL
,
/* satisfied */
NULL
,
/* get_poll_events */
NULL
,
/* poll_event */
no_read_fd
,
/* get_read_fd */
no_write_fd
,
/* get_write_fd */
no_get_fd
,
/* get_fd */
no_flush
,
/* flush */
no_get_file_info
,
/* get_file_info */
snapshot_destroy
/* destroy */
...
...
server/sock.c
View file @
1ab243ba
...
...
@@ -69,8 +69,7 @@ static const struct object_ops sock_ops =
no_satisfied
,
/* satisfied */
sock_get_poll_events
,
/* get_poll_events */
sock_poll_event
,
/* poll_event */
sock_get_fd
,
/* get_read_fd */
sock_get_fd
,
/* get_write_fd */
sock_get_fd
,
/* get_fd */
no_flush
,
/* flush */
no_get_file_info
,
/* get_file_info */
sock_destroy
/* destroy */
...
...
server/thread.c
View file @
1ab243ba
...
...
@@ -76,8 +76,7 @@ static const struct object_ops thread_ops =
no_satisfied
,
/* satisfied */
NULL
,
/* get_poll_events */
thread_poll_event
,
/* poll_event */
no_read_fd
,
/* get_read_fd */
no_write_fd
,
/* get_write_fd */
no_get_fd
,
/* get_fd */
no_flush
,
/* flush */
no_get_file_info
,
/* get_file_info */
destroy_thread
/* destroy */
...
...
server/timer.c
View file @
1ab243ba
...
...
@@ -42,8 +42,7 @@ static const struct object_ops timer_ops =
timer_satisfied
,
/* satisfied */
NULL
,
/* get_poll_events */
NULL
,
/* poll_event */
no_read_fd
,
/* get_read_fd */
no_write_fd
,
/* get_write_fd */
no_get_fd
,
/* get_fd */
no_flush
,
/* flush */
no_get_file_info
,
/* get_file_info */
timer_destroy
/* destroy */
...
...
server/trace.c
View file @
1ab243ba
...
...
@@ -256,7 +256,6 @@ static void dump_new_process_request( const struct new_process_request *req )
fprintf
(
stderr
,
" hstdout=%d,"
,
req
->
hstdout
);
fprintf
(
stderr
,
" hstderr=%d,"
,
req
->
hstderr
);
fprintf
(
stderr
,
" cmd_show=%d,"
,
req
->
cmd_show
);
fprintf
(
stderr
,
" alloc_fd=%d,"
,
req
->
alloc_fd
);
fprintf
(
stderr
,
" filename="
);
cur_pos
+=
dump_varargs_string
(
req
);
}
...
...
@@ -657,14 +656,15 @@ static void dump_alloc_file_handle_reply( const struct alloc_file_handle_request
fprintf
(
stderr
,
" handle=%d"
,
req
->
handle
);
}
static
void
dump_get_
read_fd_request
(
const
struct
get_read
_fd_request
*
req
)
static
void
dump_get_
handle_fd_request
(
const
struct
get_handle
_fd_request
*
req
)
{
fprintf
(
stderr
,
" handle=%d"
,
req
->
handle
);
fprintf
(
stderr
,
" handle=%d,"
,
req
->
handle
);
fprintf
(
stderr
,
" access=%08x"
,
req
->
access
);
}
static
void
dump_get_
write_fd_request
(
const
struct
get_writ
e_fd_request
*
req
)
static
void
dump_get_
handle_fd_reply
(
const
struct
get_handl
e_fd_request
*
req
)
{
fprintf
(
stderr
,
"
handle=%d"
,
req
->
handle
);
fprintf
(
stderr
,
"
fd=%d"
,
req
->
fd
);
}
static
void
dump_set_file_pointer_request
(
const
struct
set_file_pointer_request
*
req
)
...
...
@@ -1487,8 +1487,7 @@ static const dump_func req_dumpers[REQ_NB_REQUESTS] = {
(
dump_func
)
dump_open_semaphore_request
,
(
dump_func
)
dump_create_file_request
,
(
dump_func
)
dump_alloc_file_handle_request
,
(
dump_func
)
dump_get_read_fd_request
,
(
dump_func
)
dump_get_write_fd_request
,
(
dump_func
)
dump_get_handle_fd_request
,
(
dump_func
)
dump_set_file_pointer_request
,
(
dump_func
)
dump_truncate_file_request
,
(
dump_func
)
dump_set_file_time_request
,
...
...
@@ -1600,8 +1599,7 @@ static const dump_func reply_dumpers[REQ_NB_REQUESTS] = {
(
dump_func
)
dump_open_semaphore_reply
,
(
dump_func
)
dump_create_file_reply
,
(
dump_func
)
dump_alloc_file_handle_reply
,
(
dump_func
)
0
,
(
dump_func
)
0
,
(
dump_func
)
dump_get_handle_fd_reply
,
(
dump_func
)
dump_set_file_pointer_reply
,
(
dump_func
)
0
,
(
dump_func
)
0
,
...
...
@@ -1713,8 +1711,7 @@ static const char * const req_names[REQ_NB_REQUESTS] = {
"open_semaphore"
,
"create_file"
,
"alloc_file_handle"
,
"get_read_fd"
,
"get_write_fd"
,
"get_handle_fd"
,
"set_file_pointer"
,
"truncate_file"
,
"set_file_time"
,
...
...
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