New set of macros for server calls; makes requests without variable
part somewhat faster.
diff --git a/files/dos_fs.c b/files/dos_fs.c
index 632dcb7..5735c95 100644
--- a/files/dos_fs.c
+++ b/files/dos_fs.c
@@ -675,12 +675,10 @@
const DOS_DEVICE *DOSFS_GetDeviceByHandle( HFILE hFile )
{
const DOS_DEVICE *ret = NULL;
- SERVER_START_REQ
+ SERVER_START_REQ( get_file_info )
{
- struct get_file_info_request *req = server_alloc_req( sizeof(*req), 0 );
-
req->handle = hFile;
- if (!server_call( REQ_GET_FILE_INFO ) && (req->type == FILE_TYPE_UNKNOWN))
+ if (!SERVER_CALL() && (req->type == FILE_TYPE_UNKNOWN))
{
if ((req->attr >= 0) &&
(req->attr < sizeof(DOSFS_Devices)/sizeof(DOSFS_Devices[0])))
@@ -699,6 +697,7 @@
{
HANDLE ret;
char devname[40];
+ size_t len;
TRACE("%s %lx\n", name, access);
@@ -708,20 +707,18 @@
TRACE("opening %s as %s\n", devname, name);
- SERVER_START_REQ
+ len = strlen(devname);
+ SERVER_START_VAR_REQ( create_serial, len )
{
- size_t len = strlen(devname);
- struct create_serial_request *req = server_alloc_req( sizeof(*req), len );
-
req->access = access;
req->inherit = 0; /*FIXME*/
req->sharing = FILE_SHARE_READ|FILE_SHARE_WRITE;
memcpy( server_data_ptr(req), devname, len );
SetLastError(0);
- server_call( REQ_CREATE_SERIAL );
+ SERVER_CALL_ERR();
ret = req->handle;
}
- SERVER_END_REQ;
+ SERVER_END_VAR_REQ;
if(!ret)
ERR("Couldn't open %s ! (check permissions)\n",devname);