Redesign of the server communication protocol to allow arbitrary sized
data to be exchanged.
Split request and reply structures to make backwards compatibility
easier.
Moved many console functions to dlls/kernel, added code page support,
changed a few requests to behave properly with the new protocol.
diff --git a/server/semaphore.c b/server/semaphore.c
index 4844414..022fc73 100644
--- a/server/semaphore.c
+++ b/server/semaphore.c
@@ -123,11 +123,11 @@
{
struct semaphore *sem;
- req->handle = 0;
- if ((sem = create_semaphore( get_req_data(req), get_req_data_size(req),
+ reply->handle = 0;
+ if ((sem = create_semaphore( get_req_data(), get_req_data_size(),
req->initial, req->max )))
{
- req->handle = alloc_handle( current->process, sem, SEMAPHORE_ALL_ACCESS, req->inherit );
+ reply->handle = alloc_handle( current->process, sem, SEMAPHORE_ALL_ACCESS, req->inherit );
release_object( sem );
}
}
@@ -135,12 +135,12 @@
/* open a handle to a semaphore */
DECL_HANDLER(open_semaphore)
{
- req->handle = open_object( get_req_data(req), get_req_data_size(req),
- &semaphore_ops, req->access, req->inherit );
+ reply->handle = open_object( get_req_data(), get_req_data_size(),
+ &semaphore_ops, req->access, req->inherit );
}
/* release a semaphore */
DECL_HANDLER(release_semaphore)
{
- req->prev_count = release_semaphore( req->handle, req->count );
+ reply->prev_count = release_semaphore( req->handle, req->count );
}