From e913e77ca4cd9f4cb3366fc3b685229d8c2b602f Mon Sep 17 00:00:00 2001 From: Mario Fetka Date: Tue, 16 Jun 2026 11:51:28 +0000 Subject: [PATCH] 0602 nwnss: fix fsmsg method table casts --- src/nwnss/comn/common/fsmsg.c | 499 +++++++++++++++++----------------- 1 file changed, 252 insertions(+), 247 deletions(-) diff --git a/src/nwnss/comn/common/fsmsg.c b/src/nwnss/comn/common/fsmsg.c index a8bf827..c5a8491 100644 --- a/src/nwnss/comn/common/fsmsg.c +++ b/src/nwnss/comn/common/fsmsg.c @@ -55,6 +55,7 @@ #include #include +#include #include #include "xError.h" @@ -82,10 +83,14 @@ #include "dirQuotas.h" #include "comnPublics.h" -#if defined(__GNUC__) -#pragma GCC diagnostic ignored "-Wincompatible-pointer-types" -#pragma GCC diagnostic ignored "-Wint-conversion" -#endif +#define FSMSG_METHOD(_fn) ((statusfunc_t)(_fn)) +#define FSMSG_DATA_PTR(_type, _quad) ((_type *)(uintptr_t)(_quad)) +#define FSMSG_DATA_VOID(_quad) ((void *)(uintptr_t)(_quad)) + +#undef SetStatusFromErrno +#define SetStatusFromErrno(_msg, _genMsg) \ + (((_msg)->sys.status = (_genMsg)->errStatus), \ + ((_msg)->sys.where = (QUAD)(uintptr_t)(_genMsg)->errStatusSetter)) typedef STATUS (*FSMSG_NextCharFunc_t)(utf8_t *name, utf8_t **next, unicode_t *ch); typedef STATUS (*FSMSG_MethodFunc_t)(zNSSMsg_s *msg); @@ -174,50 +179,50 @@ FileHandleType_s NormalFileType = NSS_NUM_METHODS, NULL, NULL, COMN_Close, MSG_Notify, MSG_BreakDoor), { - FH_Resolve, /* NSS_RESOLVE_FILEHANDLE */ - MSG_AbortUserXaction, /* NSS_ABORTXACTION */ - MSG_AddTrustee, /* NSS_ADDTRUSTEE */ - COMN_AsyncRead, /* NSS_ASYNCREAD */ - MSG_BeginTask, /* NSS_BEGINTASK */ - MSG_BeginUserXaction, /* NSS_BEGINXACTION */ - MSG_ChangeConnection, /* NSS_CHANGECONNECTION */ - MSG_CommitUserXaction, /* NSS_COMMITXACTION */ - MSG_Create, /* NSS_CREATE */ - MSG_Delete, /* NSS_DELETE */ - MSG_DeleteTrustee, /* NSS_DELETETRUSTEE */ - COMN_DirectReadFile, /* NSS_DIOREAD */ - COMN_DirectWriteFile, /* NSS_DIOWRITE */ - MSG_EndTask, /* NSS_ENDTASK */ - MSG_Flush, /* NSS_FLUSH */ - MSG_GetFileMap, /* NSS_GETFILEMAP */ - MSG_GetInfo, /* NSS_GETINFO */ - MSG_GetInheritedRightsMask, /* NSS_GETINHERITEDRIGHTSMASK */ - MSG_GetTrustee, /* NSS_GETTRUSTEE */ - MSG_IsNSS, /* NSS_ISNSS */ - MSG_Link, /* NSS_LINK */ - MSG_LockByteRange, /* NSS_LOCKBYTERANGE */ - MSG_ModifyInfo, /* NSS_MODIFYINFO */ - MSG_Open, /* NSS_OPEN */ - MSG_ZidOpen, /* NSS_ZID_OPEN */ - MSG_ChunkyRead, /* NSS_READ */ - MSG_Rename, /* NSS_RENAME */ - COMN_SetEOF, /* NSS_SETEOF */ - MSG_SetInheritedRightsMask, /* NSS_SETINHERITEDRIGHTSMASK */ - COMN_StartAsyncRead, /* NSS_START_ASYNCREAD */ - MSG_UnlockByteRange, /* NSS_UNLOCKBYTERANGE */ - MSG_WildRead, /* NSS_WILDREAD */ - MSG_WildRewind, /* NSS_WILDREWIND */ - COMN_Write, /* NSS_WRITE */ - MSG_Enumerate, /* NSS_ENUMERATE */ - MSG_GetEffectiveRights, /* NSS_GET_EFFECTIVE_RIGHTS */ - MSG_ZidDelete, /* NSS_ZID_DELETE */ - MSG_ZidCreate, /* NSS_ZID_CREATE */ - MSG_ZidLink, /* NSS_ZID_LINK */ - MSG_ZidRename, /* NSS_ZID_RENAME */ - MSG_FileControl, /* NSS_FILE_CONTROL */ - MSG_GetInfoByName, /* NSS_GETINFOBYNAME */ - MSG_ModifyInfoByName, /* NSS_MODIFYINFOBYNAME */ - NullMethod /* NSS_NEWCONNECTION */ + FSMSG_METHOD(FH_Resolve), /* NSS_RESOLVE_FILEHANDLE */ + FSMSG_METHOD(MSG_AbortUserXaction), /* NSS_ABORTXACTION */ + FSMSG_METHOD(MSG_AddTrustee), /* NSS_ADDTRUSTEE */ + FSMSG_METHOD(COMN_AsyncRead), /* NSS_ASYNCREAD */ + FSMSG_METHOD(MSG_BeginTask), /* NSS_BEGINTASK */ + FSMSG_METHOD(MSG_BeginUserXaction), /* NSS_BEGINXACTION */ + FSMSG_METHOD(MSG_ChangeConnection), /* NSS_CHANGECONNECTION */ + FSMSG_METHOD(MSG_CommitUserXaction), /* NSS_COMMITXACTION */ + FSMSG_METHOD(MSG_Create), /* NSS_CREATE */ + FSMSG_METHOD(MSG_Delete), /* NSS_DELETE */ + FSMSG_METHOD(MSG_DeleteTrustee), /* NSS_DELETETRUSTEE */ + FSMSG_METHOD(COMN_DirectReadFile), /* NSS_DIOREAD */ + FSMSG_METHOD(COMN_DirectWriteFile), /* NSS_DIOWRITE */ + FSMSG_METHOD(MSG_EndTask), /* NSS_ENDTASK */ + FSMSG_METHOD(MSG_Flush), /* NSS_FLUSH */ + FSMSG_METHOD(MSG_GetFileMap), /* NSS_GETFILEMAP */ + FSMSG_METHOD(MSG_GetInfo), /* NSS_GETINFO */ + FSMSG_METHOD(MSG_GetInheritedRightsMask), /* NSS_GETINHERITEDRIGHTSMASK */ + FSMSG_METHOD(MSG_GetTrustee), /* NSS_GETTRUSTEE */ + FSMSG_METHOD(MSG_IsNSS), /* NSS_ISNSS */ + FSMSG_METHOD(MSG_Link), /* NSS_LINK */ + FSMSG_METHOD(MSG_LockByteRange), /* NSS_LOCKBYTERANGE */ + FSMSG_METHOD(MSG_ModifyInfo), /* NSS_MODIFYINFO */ + FSMSG_METHOD(MSG_Open), /* NSS_OPEN */ + FSMSG_METHOD(MSG_ZidOpen), /* NSS_ZID_OPEN */ + FSMSG_METHOD(MSG_ChunkyRead), /* NSS_READ */ + FSMSG_METHOD(MSG_Rename), /* NSS_RENAME */ + FSMSG_METHOD(COMN_SetEOF), /* NSS_SETEOF */ + FSMSG_METHOD(MSG_SetInheritedRightsMask), /* NSS_SETINHERITEDRIGHTSMASK */ + FSMSG_METHOD(COMN_StartAsyncRead), /* NSS_START_ASYNCREAD */ + FSMSG_METHOD(MSG_UnlockByteRange), /* NSS_UNLOCKBYTERANGE */ + FSMSG_METHOD(MSG_WildRead), /* NSS_WILDREAD */ + FSMSG_METHOD(MSG_WildRewind), /* NSS_WILDREWIND */ + FSMSG_METHOD(COMN_Write), /* NSS_WRITE */ + FSMSG_METHOD(MSG_Enumerate), /* NSS_ENUMERATE */ + FSMSG_METHOD(MSG_GetEffectiveRights), /* NSS_GET_EFFECTIVE_RIGHTS */ + FSMSG_METHOD(MSG_ZidDelete), /* NSS_ZID_DELETE */ + FSMSG_METHOD(MSG_ZidCreate), /* NSS_ZID_CREATE */ + FSMSG_METHOD(MSG_ZidLink), /* NSS_ZID_LINK */ + FSMSG_METHOD(MSG_ZidRename), /* NSS_ZID_RENAME */ + FSMSG_METHOD(MSG_FileControl), /* NSS_FILE_CONTROL */ + FSMSG_METHOD(MSG_GetInfoByName), /* NSS_GETINFOBYNAME */ + FSMSG_METHOD(MSG_ModifyInfoByName), /* NSS_MODIFYINFOBYNAME */ + FSMSG_METHOD(NullMethod) /* NSS_NEWCONNECTION */ } }; @@ -227,50 +232,50 @@ FileHandleType_s VirtualType = NSS_NUM_METHODS, NULL, NULL, VIRT_Close, MSG_Notify, MSG_BreakDoor), { - FH_Resolve, /* NSS_RESOLVE_FILEHANDLE */ - MSG_AbortUserXaction, /* NSS_ABORTXACTION */ - MSG_AddTrustee, /* NSS_ADDTRUSTEE */ - NullMethod, /* NSS_ASYNCREAD */ - MSG_BeginTask, /* NSS_BEGINTASK */ - MSG_BeginUserXaction, /* NSS_BEGINXACTION */ - MSG_ChangeConnection, /* NSS_CHANGECONNECTION */ - MSG_CommitUserXaction, /* NSS_COMMITXACTION */ - MSG_Create, /* NSS_CREATE */ - MSG_Delete, /* NSS_DELETE */ - MSG_DeleteTrustee, /* NSS_DELETETRUSTEE */ - COMN_DirectReadFile, /* NSS_DIOREAD */ - COMN_DirectWriteFile, /* NSS_DIOWRITE */ - MSG_EndTask, /* NSS_ENDTASK */ - MSG_Flush, /* NSS_FLUSH */ - MSG_GetFileMap, /* NSS_GETFILEMAP */ - MSG_GetInfo, /* NSS_GETINFO */ - MSG_GetInheritedRightsMask, /* NSS_GETINHERITEDRIGHTSMASK */ - MSG_GetTrustee, /* NSS_GETTRUSTEE */ - MSG_IsNSS, /* NSS_ISNSS */ - MSG_Link, /* NSS_LINK */ - MSG_LockByteRange, /* NSS_LOCKBYTERANGE */ - MSG_ModifyInfo, /* NSS_MODIFYINFO */ - MSG_Open, /* NSS_OPEN */ - MSG_ZidOpen, /* NSS_ZID_OPEN */ - VIRT_ChunkyRead, /* NSS_READ */ - MSG_Rename, /* NSS_RENAME */ - COMN_SetEOF, /* NSS_SETEOF */ - MSG_SetInheritedRightsMask, /* NSS_SETINHERITEDRIGHTSMASK */ - COMN_StartAsyncRead, /* NSS_START_ASYNCREAD */ - MSG_UnlockByteRange, /* NSS_UNLOCKBYTERANGE */ - MSG_WildRead, /* NSS_WILDREAD */ - MSG_WildRewind, /* NSS_WILDREWIND */ - VIRT_Write, /* NSS_WRITE */ - MSG_Enumerate, /* NSS_ENUMERATE */ - MSG_GetEffectiveRights, /* NSS_GET_EFFECTIVE_RIGHTS */ - MSG_ZidDelete, /* NSS_ZID_DELETE */ - MSG_ZidCreate, /* NSS_ZID_CREATE */ - MSG_ZidLink, /* NSS_ZID_LINK */ - MSG_ZidRename, /* NSS_ZID_RENAME */ - NullMethod, /* NSS_FILE_CONTROL */ - MSG_GetInfoByName, /* NSS_GETINFOBYNAME */ - MSG_ModifyInfoByName, /* NSS_MODIFYINFOBYNAME */ - NullMethod /* NSS_NEWCONNECTION */ + FSMSG_METHOD(FH_Resolve), /* NSS_RESOLVE_FILEHANDLE */ + FSMSG_METHOD(MSG_AbortUserXaction), /* NSS_ABORTXACTION */ + FSMSG_METHOD(MSG_AddTrustee), /* NSS_ADDTRUSTEE */ + FSMSG_METHOD(NullMethod), /* NSS_ASYNCREAD */ + FSMSG_METHOD(MSG_BeginTask), /* NSS_BEGINTASK */ + FSMSG_METHOD(MSG_BeginUserXaction), /* NSS_BEGINXACTION */ + FSMSG_METHOD(MSG_ChangeConnection), /* NSS_CHANGECONNECTION */ + FSMSG_METHOD(MSG_CommitUserXaction), /* NSS_COMMITXACTION */ + FSMSG_METHOD(MSG_Create), /* NSS_CREATE */ + FSMSG_METHOD(MSG_Delete), /* NSS_DELETE */ + FSMSG_METHOD(MSG_DeleteTrustee), /* NSS_DELETETRUSTEE */ + FSMSG_METHOD(COMN_DirectReadFile), /* NSS_DIOREAD */ + FSMSG_METHOD(COMN_DirectWriteFile), /* NSS_DIOWRITE */ + FSMSG_METHOD(MSG_EndTask), /* NSS_ENDTASK */ + FSMSG_METHOD(MSG_Flush), /* NSS_FLUSH */ + FSMSG_METHOD(MSG_GetFileMap), /* NSS_GETFILEMAP */ + FSMSG_METHOD(MSG_GetInfo), /* NSS_GETINFO */ + FSMSG_METHOD(MSG_GetInheritedRightsMask), /* NSS_GETINHERITEDRIGHTSMASK */ + FSMSG_METHOD(MSG_GetTrustee), /* NSS_GETTRUSTEE */ + FSMSG_METHOD(MSG_IsNSS), /* NSS_ISNSS */ + FSMSG_METHOD(MSG_Link), /* NSS_LINK */ + FSMSG_METHOD(MSG_LockByteRange), /* NSS_LOCKBYTERANGE */ + FSMSG_METHOD(MSG_ModifyInfo), /* NSS_MODIFYINFO */ + FSMSG_METHOD(MSG_Open), /* NSS_OPEN */ + FSMSG_METHOD(MSG_ZidOpen), /* NSS_ZID_OPEN */ + FSMSG_METHOD(VIRT_ChunkyRead), /* NSS_READ */ + FSMSG_METHOD(MSG_Rename), /* NSS_RENAME */ + FSMSG_METHOD(COMN_SetEOF), /* NSS_SETEOF */ + FSMSG_METHOD(MSG_SetInheritedRightsMask), /* NSS_SETINHERITEDRIGHTSMASK */ + FSMSG_METHOD(COMN_StartAsyncRead), /* NSS_START_ASYNCREAD */ + FSMSG_METHOD(MSG_UnlockByteRange), /* NSS_UNLOCKBYTERANGE */ + FSMSG_METHOD(MSG_WildRead), /* NSS_WILDREAD */ + FSMSG_METHOD(MSG_WildRewind), /* NSS_WILDREWIND */ + FSMSG_METHOD(VIRT_Write), /* NSS_WRITE */ + FSMSG_METHOD(MSG_Enumerate), /* NSS_ENUMERATE */ + FSMSG_METHOD(MSG_GetEffectiveRights), /* NSS_GET_EFFECTIVE_RIGHTS */ + FSMSG_METHOD(MSG_ZidDelete), /* NSS_ZID_DELETE */ + FSMSG_METHOD(MSG_ZidCreate), /* NSS_ZID_CREATE */ + FSMSG_METHOD(MSG_ZidLink), /* NSS_ZID_LINK */ + FSMSG_METHOD(MSG_ZidRename), /* NSS_ZID_RENAME */ + FSMSG_METHOD(NullMethod), /* NSS_FILE_CONTROL */ + FSMSG_METHOD(MSG_GetInfoByName), /* NSS_GETINFOBYNAME */ + FSMSG_METHOD(MSG_ModifyInfoByName), /* NSS_MODIFYINFOBYNAME */ + FSMSG_METHOD(NullMethod) /* NSS_NEWCONNECTION */ } }; @@ -280,50 +285,50 @@ FileHandleType_s MigratedType = NSS_NUM_METHODS, NULL, NULL, COMN_Close, MSG_Notify, MSG_BreakDoor), { - FH_Resolve, /* NSS_RESOLVE_FILEHANDLE */ - MSG_AbortUserXaction, /* NSS_ABORTXACTION */ - MSG_AddTrustee, /* NSS_ADDTRUSTEE */ - DEMIGRATE_AsyncRead, /* NSS_ASYNCREAD */ - MSG_BeginTask, /* NSS_BEGINTASK */ - MSG_BeginUserXaction, /* NSS_BEGINXACTION */ - MSG_ChangeConnection, /* NSS_CHANGECONNECTION */ - MSG_CommitUserXaction, /* NSS_COMMITXACTION */ - MSG_Create, /* NSS_CREATE */ - MSG_Delete, /* NSS_DELETE */ - MSG_DeleteTrustee, /* NSS_DELETETRUSTEE */ - COMN_DirectReadFile, /* NSS_DIOREAD */ - COMN_DirectWriteFile, /* NSS_DIOWRITE */ - MSG_EndTask, /* NSS_ENDTASK */ - MSG_Flush, /* NSS_FLUSH */ - MSG_GetFileMap, /* NSS_GETFILEMAP */ - MSG_GetInfo, /* NSS_GETINFO */ - MSG_GetInheritedRightsMask, /* NSS_GETINHERITEDRIGHTSMASK */ - MSG_GetTrustee, /* NSS_GETTRUSTEE */ - MSG_IsNSS, /* NSS_ISNSS */ - MSG_Link, /* NSS_LINK */ - MSG_LockByteRange, /* NSS_LOCKBYTERANGE */ - MSG_ModifyInfo, /* NSS_MODIFYINFO */ - MSG_Open, /* NSS_OPEN */ - MSG_ZidOpen, /* NSS_ZID_OPEN */ - DEMIGRATE_ChunkyRead, /* NSS_READ */ - MSG_Rename, /* NSS_RENAME */ - DEMIGRATE_SetEOF, /* NSS_SETEOF */ - MSG_SetInheritedRightsMask, /* NSS_SETINHERITEDRIGHTSMASK */ - COMN_StartAsyncRead, /* NSS_START_ASYNCREAD */ - MSG_UnlockByteRange, /* NSS_UNLOCKBYTERANGE */ - MSG_WildRead, /* NSS_WILDREAD */ - MSG_WildRewind, /* NSS_WILDREWIND */ - DEMIGRATE_Write, /* NSS_WRITE */ - MSG_Enumerate, /* NSS_ENUMERATE */ - MSG_GetEffectiveRights, /* NSS_GET_EFFECTIVE_RIGHTS */ - MSG_ZidDelete, /* NSS_ZID_DELETE */ - MSG_ZidCreate, /* NSS_ZID_CREATE */ - MSG_ZidLink, /* NSS_ZID_LINK */ - MSG_ZidRename, /* NSS_ZID_RENAME */ - MSG_FileControl, /* NSS_FILE_CONTROL */ - MSG_GetInfoByName, /* NSS_GETINFOBYNAME */ - MSG_ModifyInfoByName, /* NSS_MODIFYINFOBYNAME */ - NullMethod /* NSS_NEWCONNECTION */ + FSMSG_METHOD(FH_Resolve), /* NSS_RESOLVE_FILEHANDLE */ + FSMSG_METHOD(MSG_AbortUserXaction), /* NSS_ABORTXACTION */ + FSMSG_METHOD(MSG_AddTrustee), /* NSS_ADDTRUSTEE */ + FSMSG_METHOD(DEMIGRATE_AsyncRead), /* NSS_ASYNCREAD */ + FSMSG_METHOD(MSG_BeginTask), /* NSS_BEGINTASK */ + FSMSG_METHOD(MSG_BeginUserXaction), /* NSS_BEGINXACTION */ + FSMSG_METHOD(MSG_ChangeConnection), /* NSS_CHANGECONNECTION */ + FSMSG_METHOD(MSG_CommitUserXaction), /* NSS_COMMITXACTION */ + FSMSG_METHOD(MSG_Create), /* NSS_CREATE */ + FSMSG_METHOD(MSG_Delete), /* NSS_DELETE */ + FSMSG_METHOD(MSG_DeleteTrustee), /* NSS_DELETETRUSTEE */ + FSMSG_METHOD(COMN_DirectReadFile), /* NSS_DIOREAD */ + FSMSG_METHOD(COMN_DirectWriteFile), /* NSS_DIOWRITE */ + FSMSG_METHOD(MSG_EndTask), /* NSS_ENDTASK */ + FSMSG_METHOD(MSG_Flush), /* NSS_FLUSH */ + FSMSG_METHOD(MSG_GetFileMap), /* NSS_GETFILEMAP */ + FSMSG_METHOD(MSG_GetInfo), /* NSS_GETINFO */ + FSMSG_METHOD(MSG_GetInheritedRightsMask), /* NSS_GETINHERITEDRIGHTSMASK */ + FSMSG_METHOD(MSG_GetTrustee), /* NSS_GETTRUSTEE */ + FSMSG_METHOD(MSG_IsNSS), /* NSS_ISNSS */ + FSMSG_METHOD(MSG_Link), /* NSS_LINK */ + FSMSG_METHOD(MSG_LockByteRange), /* NSS_LOCKBYTERANGE */ + FSMSG_METHOD(MSG_ModifyInfo), /* NSS_MODIFYINFO */ + FSMSG_METHOD(MSG_Open), /* NSS_OPEN */ + FSMSG_METHOD(MSG_ZidOpen), /* NSS_ZID_OPEN */ + FSMSG_METHOD(DEMIGRATE_ChunkyRead), /* NSS_READ */ + FSMSG_METHOD(MSG_Rename), /* NSS_RENAME */ + FSMSG_METHOD(DEMIGRATE_SetEOF), /* NSS_SETEOF */ + FSMSG_METHOD(MSG_SetInheritedRightsMask), /* NSS_SETINHERITEDRIGHTSMASK */ + FSMSG_METHOD(COMN_StartAsyncRead), /* NSS_START_ASYNCREAD */ + FSMSG_METHOD(MSG_UnlockByteRange), /* NSS_UNLOCKBYTERANGE */ + FSMSG_METHOD(MSG_WildRead), /* NSS_WILDREAD */ + FSMSG_METHOD(MSG_WildRewind), /* NSS_WILDREWIND */ + FSMSG_METHOD(DEMIGRATE_Write), /* NSS_WRITE */ + FSMSG_METHOD(MSG_Enumerate), /* NSS_ENUMERATE */ + FSMSG_METHOD(MSG_GetEffectiveRights), /* NSS_GET_EFFECTIVE_RIGHTS */ + FSMSG_METHOD(MSG_ZidDelete), /* NSS_ZID_DELETE */ + FSMSG_METHOD(MSG_ZidCreate), /* NSS_ZID_CREATE */ + FSMSG_METHOD(MSG_ZidLink), /* NSS_ZID_LINK */ + FSMSG_METHOD(MSG_ZidRename), /* NSS_ZID_RENAME */ + FSMSG_METHOD(MSG_FileControl), /* NSS_FILE_CONTROL */ + FSMSG_METHOD(MSG_GetInfoByName), /* NSS_GETINFOBYNAME */ + FSMSG_METHOD(MSG_ModifyInfoByName), /* NSS_MODIFYINFOBYNAME */ + FSMSG_METHOD(NullMethod) /* NSS_NEWCONNECTION */ } }; @@ -333,50 +338,50 @@ FileHandleType_s RootType = NSS_NUM_METHODS, NULL, NULL, MSG_CloseRootKey, MSG_Notify, MSG_BreakDoor), { - FH_Resolve, /* NSS_RESOLVE_FILEHANDLE */ - MSG_AbortUserXaction, /* NSS_ABORTXACTION */ - NullMethod, /* NSS_ASYNCREAD */ - NullMethod, /* NSS_ADDTRUSTEE */ - MSG_BeginTask, /* NSS_BEGINTASK */ - MSG_BeginUserXaction, /* NSS_BEGINXACTION */ - MSG_ChangeConnection, /* NSS_CHANGECONNECTION */ - MSG_CommitUserXaction, /* NSS_COMMITXACTION */ - MSG_Create, /* NSS_CREATE */ - MSG_Delete, /* NSS_DELETE */ - NullMethod, /* NSS_DELETETRUSTEE */ - NullMethod, /* NSS_DIOREAD */ - NullMethod, /* NSS_DIOWRITE */ - MSG_EndTask, /* NSS_ENDTASK */ - NullMethod, /* NSS_FLUSH */ - NullMethod, /* NSS_GETFILEMAP */ - NullMethod, /* NSS_GETINFO */ - NullMethod, /* NSS_GETINHERITEDRIGHTSMASK */ - NullMethod, /* NSS_GETTRUSTEE */ - MSG_IsNSS, /* NSS_ISNSS */ - MSG_Link, /* NSS_LINK */ - NullMethod, /* NSS_LOCKBYTERANGE */ - NullMethod, /* NSS_MODIFYINFO */ - MSG_Open, /* NSS_OPEN */ - MSG_ZidOpen, /* NSS_ZID_OPEN */ - NullMethod, /* NSS_READ */ - MSG_Rename, /* NSS_RENAME */ - NullMethod, /* NSS_SETEOF */ - NullMethod, /* NSS_SETINHERITEDRIGHTSMASK */ - NullMethod, /* NSS_START_ASYNCREAD */ - NullMethod, /* NSS_UNLOCKBYTERANGE */ - NullMethod, /* NSS_WILDREAD */ - NullMethod, /* NSS_WILDREWIND */ - NullMethod, /* NSS_WRITE */ - NullMethod, /* NSS_ENUMERATE */ - NullMethod, /* NSS_GET_EFFECTIVE_RIGHTS */ - MSG_ZidDelete, /* NSS_ZID_DELETE */ - MSG_ZidCreate, /* NSS_ZID_CREATE */ - MSG_ZidLink, /* NSS_ZID_LINK */ - MSG_ZidRename, /* NSS_ZID_RENAME */ - NullMethod, /* NSS_FILE_CONTROL */ - MSG_GetInfoByName, /* NSS_GETINFOBYNAME */ - MSG_ModifyInfoByName, /* NSS_MODIFYINFOBYNAME */ - MSG_NewConnection /* NSS_NEWCONNECTION */ + FSMSG_METHOD(FH_Resolve), /* NSS_RESOLVE_FILEHANDLE */ + FSMSG_METHOD(MSG_AbortUserXaction), /* NSS_ABORTXACTION */ + FSMSG_METHOD(NullMethod), /* NSS_ASYNCREAD */ + FSMSG_METHOD(NullMethod), /* NSS_ADDTRUSTEE */ + FSMSG_METHOD(MSG_BeginTask), /* NSS_BEGINTASK */ + FSMSG_METHOD(MSG_BeginUserXaction), /* NSS_BEGINXACTION */ + FSMSG_METHOD(MSG_ChangeConnection), /* NSS_CHANGECONNECTION */ + FSMSG_METHOD(MSG_CommitUserXaction), /* NSS_COMMITXACTION */ + FSMSG_METHOD(MSG_Create), /* NSS_CREATE */ + FSMSG_METHOD(MSG_Delete), /* NSS_DELETE */ + FSMSG_METHOD(NullMethod), /* NSS_DELETETRUSTEE */ + FSMSG_METHOD(NullMethod), /* NSS_DIOREAD */ + FSMSG_METHOD(NullMethod), /* NSS_DIOWRITE */ + FSMSG_METHOD(MSG_EndTask), /* NSS_ENDTASK */ + FSMSG_METHOD(NullMethod), /* NSS_FLUSH */ + FSMSG_METHOD(NullMethod), /* NSS_GETFILEMAP */ + FSMSG_METHOD(NullMethod), /* NSS_GETINFO */ + FSMSG_METHOD(NullMethod), /* NSS_GETINHERITEDRIGHTSMASK */ + FSMSG_METHOD(NullMethod), /* NSS_GETTRUSTEE */ + FSMSG_METHOD(MSG_IsNSS), /* NSS_ISNSS */ + FSMSG_METHOD(MSG_Link), /* NSS_LINK */ + FSMSG_METHOD(NullMethod), /* NSS_LOCKBYTERANGE */ + FSMSG_METHOD(NullMethod), /* NSS_MODIFYINFO */ + FSMSG_METHOD(MSG_Open), /* NSS_OPEN */ + FSMSG_METHOD(MSG_ZidOpen), /* NSS_ZID_OPEN */ + FSMSG_METHOD(NullMethod), /* NSS_READ */ + FSMSG_METHOD(MSG_Rename), /* NSS_RENAME */ + FSMSG_METHOD(NullMethod), /* NSS_SETEOF */ + FSMSG_METHOD(NullMethod), /* NSS_SETINHERITEDRIGHTSMASK */ + FSMSG_METHOD(NullMethod), /* NSS_START_ASYNCREAD */ + FSMSG_METHOD(NullMethod), /* NSS_UNLOCKBYTERANGE */ + FSMSG_METHOD(NullMethod), /* NSS_WILDREAD */ + FSMSG_METHOD(NullMethod), /* NSS_WILDREWIND */ + FSMSG_METHOD(NullMethod), /* NSS_WRITE */ + FSMSG_METHOD(NullMethod), /* NSS_ENUMERATE */ + FSMSG_METHOD(NullMethod), /* NSS_GET_EFFECTIVE_RIGHTS */ + FSMSG_METHOD(MSG_ZidDelete), /* NSS_ZID_DELETE */ + FSMSG_METHOD(MSG_ZidCreate), /* NSS_ZID_CREATE */ + FSMSG_METHOD(MSG_ZidLink), /* NSS_ZID_LINK */ + FSMSG_METHOD(MSG_ZidRename), /* NSS_ZID_RENAME */ + FSMSG_METHOD(NullMethod), /* NSS_FILE_CONTROL */ + FSMSG_METHOD(MSG_GetInfoByName), /* NSS_GETINFOBYNAME */ + FSMSG_METHOD(MSG_ModifyInfoByName), /* NSS_MODIFYINFOBYNAME */ + FSMSG_METHOD(MSG_NewConnection) /* NSS_NEWCONNECTION */ } }; @@ -392,49 +397,49 @@ FileHandleType_s InternalEAHandleType = NSS_NUM_METHODS, NULL, NULL, EA_Close, NULL, MSG_BreakDoor), { - FH_Resolve, /* NSS_RESOLVE_FILEHANDLE */ - NullMethod, /* NSS_ABORTXACTION */ - NullMethod, /* NSS_ADDTRUSTEE */ - COMN_AsyncRead, /* NSS_ASYNCREAD */ - NullMethod, /* NSS_BEGINTASK */ - NullMethod, /* NSS_BEGINXACTION */ - NullMethod, /* NSS_CHANGECONNECTION */ - NullMethod, /* NSS_COMMITXACTION */ - NullMethod, /* NSS_CREATE */ - NullMethod, /* NSS_DELETE */ - NullMethod, /* NSS_DELETETRUSTEE */ - NullMethod, /* NSS_DIOREAD */ - NullMethod, /* NSS_DIOWRITE */ - NullMethod, /* NSS_ENDTASK */ - NullMethod, /* NSS_FLUSH */ - NullMethod, /* NSS_GETFILEMAP */ - NullMethod, /* NSS_GETINFO */ - NullMethod, /* NSS_GETINHERITEDRIGHTSMASK */ - NullMethod, /* NSS_GETTRUSTEE */ - NullMethod, /* NSS_ISNSS */ - NullMethod, /* NSS_LINK */ - NullMethod, /* NSS_LOCKBYTERANGE */ - NullMethod, /* NSS_MODIFYINFO */ - NullMethod, /* NSS_OPEN */ - NullMethod, /* NSS_ZID_OPEN */ - MSG_ChunkyRead, /* NSS_READ */ - NullMethod, /* NSS_RENAME */ - COMN_SetEOF, /* NSS_SETEOF */ - NullMethod, /* NSS_SETINHERITEDRIGHTSMASK */ - COMN_StartAsyncRead, /* NSS_START_ASYNCREAD */ - NullMethod, /* NSS_UNLOCKBYTERANGE */ - NullMethod, /* NSS_WILDREAD */ - NullMethod, /* NSS_WILDREWIND */ - COMN_Write, /* NSS_WRITE */ - NullMethod, /* NSS_ENUMERATE */ - NullMethod, /* NSS_GET_EFFECTIVE_RIGHTS */ - NullMethod, /* NSS_ZID_DELETE */ - NullMethod, /* NSS_ZID_RENAME */ - NullMethod, /* NSS_ZID_CREATE */ - NullMethod, /* NSS_FILE_CONTROL */ - NullMethod, /* NSS_GETINFOBYNAME */ - NullMethod, /* NSS_MODIFYINFOBYNAME */ - NullMethod /* NSS_NEWCONNECTION */ + FSMSG_METHOD(FH_Resolve), /* NSS_RESOLVE_FILEHANDLE */ + FSMSG_METHOD(NullMethod), /* NSS_ABORTXACTION */ + FSMSG_METHOD(NullMethod), /* NSS_ADDTRUSTEE */ + FSMSG_METHOD(COMN_AsyncRead), /* NSS_ASYNCREAD */ + FSMSG_METHOD(NullMethod), /* NSS_BEGINTASK */ + FSMSG_METHOD(NullMethod), /* NSS_BEGINXACTION */ + FSMSG_METHOD(NullMethod), /* NSS_CHANGECONNECTION */ + FSMSG_METHOD(NullMethod), /* NSS_COMMITXACTION */ + FSMSG_METHOD(NullMethod), /* NSS_CREATE */ + FSMSG_METHOD(NullMethod), /* NSS_DELETE */ + FSMSG_METHOD(NullMethod), /* NSS_DELETETRUSTEE */ + FSMSG_METHOD(NullMethod), /* NSS_DIOREAD */ + FSMSG_METHOD(NullMethod), /* NSS_DIOWRITE */ + FSMSG_METHOD(NullMethod), /* NSS_ENDTASK */ + FSMSG_METHOD(NullMethod), /* NSS_FLUSH */ + FSMSG_METHOD(NullMethod), /* NSS_GETFILEMAP */ + FSMSG_METHOD(NullMethod), /* NSS_GETINFO */ + FSMSG_METHOD(NullMethod), /* NSS_GETINHERITEDRIGHTSMASK */ + FSMSG_METHOD(NullMethod), /* NSS_GETTRUSTEE */ + FSMSG_METHOD(NullMethod), /* NSS_ISNSS */ + FSMSG_METHOD(NullMethod), /* NSS_LINK */ + FSMSG_METHOD(NullMethod), /* NSS_LOCKBYTERANGE */ + FSMSG_METHOD(NullMethod), /* NSS_MODIFYINFO */ + FSMSG_METHOD(NullMethod), /* NSS_OPEN */ + FSMSG_METHOD(NullMethod), /* NSS_ZID_OPEN */ + FSMSG_METHOD(MSG_ChunkyRead), /* NSS_READ */ + FSMSG_METHOD(NullMethod), /* NSS_RENAME */ + FSMSG_METHOD(COMN_SetEOF), /* NSS_SETEOF */ + FSMSG_METHOD(NullMethod), /* NSS_SETINHERITEDRIGHTSMASK */ + FSMSG_METHOD(COMN_StartAsyncRead), /* NSS_START_ASYNCREAD */ + FSMSG_METHOD(NullMethod), /* NSS_UNLOCKBYTERANGE */ + FSMSG_METHOD(NullMethod), /* NSS_WILDREAD */ + FSMSG_METHOD(NullMethod), /* NSS_WILDREWIND */ + FSMSG_METHOD(COMN_Write), /* NSS_WRITE */ + FSMSG_METHOD(NullMethod), /* NSS_ENUMERATE */ + FSMSG_METHOD(NullMethod), /* NSS_GET_EFFECTIVE_RIGHTS */ + FSMSG_METHOD(NullMethod), /* NSS_ZID_DELETE */ + FSMSG_METHOD(NullMethod), /* NSS_ZID_RENAME */ + FSMSG_METHOD(NullMethod), /* NSS_ZID_CREATE */ + FSMSG_METHOD(NullMethod), /* NSS_FILE_CONTROL */ + FSMSG_METHOD(NullMethod), /* NSS_GETINFOBYNAME */ + FSMSG_METHOD(NullMethod), /* NSS_MODIFYINFOBYNAME */ + FSMSG_METHOD(NullMethod) /* NSS_NEWCONNECTION */ } }; @@ -876,7 +881,7 @@ STATUS MSG_Create (zNSSMsg_s *msg) /* * Setup the name message */ - name = (msg->sys.numDataAreas == 0) ? NULL : msg->sys.data[PATH_DATA].start; + name = (msg->sys.numDataAreas == 0) ? NULL : FSMSG_DATA_VOID(msg->sys.data[PATH_DATA].start); status = MSG_InitNameMsg(msg, &aStack->nameMsg, name, msg->body.name.nameSpace, XLATCHED); if (status != zOK) @@ -972,7 +977,7 @@ STATUS MSG_ZidCreate (zNSSMsg_s *msg) /* * Setup the name message */ - name = (msg->sys.numDataAreas == 0) ? NULL : msg->sys.data[PATH_DATA].start; + name = (msg->sys.numDataAreas == 0) ? NULL : FSMSG_DATA_VOID(msg->sys.data[PATH_DATA].start); status = MSG_InitZidNameMsg(msg, &aStack->nameMsg, msg->body.byZid.zid, name, nameSpace, XLATCHED); if (status != zOK) @@ -1051,7 +1056,7 @@ STATUS MSG_Delete (zNSSMsg_s *msg) /* * Need to do something with match */ - name = (msg->sys.numDataAreas == 0) ? NULL : msg->sys.data[PATH_DATA].start; + name = (msg->sys.numDataAreas == 0) ? NULL : FSMSG_DATA_VOID(msg->sys.data[PATH_DATA].start); status = MSG_InitNameMsg(msg, &aStack->nameMsg, name, msg->body.name.nameSpace, XLATCHED); if (status != zOK) @@ -1401,7 +1406,7 @@ STATUS MSG_Enumerate (zNSSMsg_s *msg) SearchMsg_s searchMsg; GetInfoMsg_s infoMsg; zMatchAttr_s matchAttr; - zInfo_s *info = (zInfo_s *)msg->sys.data[INFO_DATA].start; + zInfo_s *info = FSMSG_DATA_PTR(zInfo_s, msg->sys.data[INFO_DATA].start); File_s *file; typedef struct Stack_s { @@ -1541,7 +1546,7 @@ STATUS MSG_IsNSS (zNSSMsg_s *msg) STATUS status; GeneralMsg_s genMsg; Volume_s *vol; - utf8_t *path = msg->sys.data[PATH_DATA].start; + utf8_t *path = FSMSG_DATA_VOID(msg->sys.data[PATH_DATA].start); typedef struct Stack_s { unicode_t name[zMAX_COMPONENT_NAME+1]; @@ -1550,7 +1555,7 @@ STATUS MSG_IsNSS (zNSSMsg_s *msg) status = getVolName(path, aStack->name, zMAX_COMPONENT_NAME, (msg->body.name.nameSpace & zMODE_UTF8) - ? LB_UTF8ToUniChar : uni2uni); + ? (statusfunc_t)LB_UTF8ToUniChar : (statusfunc_t)uni2uni); if (status != zOK) { SetStatus(msg, status); @@ -1588,7 +1593,7 @@ STATUS MSG_NewConnection (zNSSMsg_s *msg) SetStatus(msg, zERR_BAD_METHOD); return zFAILURE; } - fdn = msg->sys.data[FDN_DATA].start; + fdn = FSMSG_DATA_PTR(unicode_t, msg->sys.data[FDN_DATA].start); fdn[msg->sys.data[FDN_DATA].length/sizeof(unicode_t) - 1] = 0; nssConn = MSG_CreateConnection(fdn); @@ -1620,7 +1625,7 @@ STATUS MSG_Open (zNSSMsg_s *msg) ASSERT_MPKNSS_LOCK(); - name = (msg->sys.numDataAreas == 0) ? NULL : msg->sys.data[PATH_DATA].start; + name = (msg->sys.numDataAreas == 0) ? NULL : FSMSG_DATA_VOID(msg->sys.data[PATH_DATA].start); status = MSG_InitNameMsg(msg, &aStack->nameMsg, name, msg->body.name.nameSpace, XLATCHED); aStack->nameMsg.parseMode = NAMPMODE_FullyResolveAny; @@ -1745,7 +1750,7 @@ STATUS getAllocationFileMap (zNSSMsg_s *msg) COMN_STRUCT_INIT(mapMsg); COMN_SETUP_FILE_MAP_MSG( &mapMsg, msg->body.map.offset, count, - zFILEMAP_ALLOCATION, msg->sys.data[MAP_DATA].start); + zFILEMAP_ALLOCATION, FSMSG_DATA_VOID(msg->sys.data[MAP_DATA].start)); COMN_SETUP_GENERAL_MSG_NO_CONNECTION_RESOLVE( &genMsg); status = COMN_GetFileMap( &genMsg, &mapMsg, &fileHandleIDP); @@ -2076,7 +2081,7 @@ void messageInfo (zNSSMsg_s *msg, File_s *file, zInfo_s *info) STATUS MSG_GetInfo (zNSSMsg_s *msg) { FileHandle_s *fh = STRUCT(msg->sys.door, FileHandle_s, door); - zInfo_s *info = (zInfo_s *)msg->sys.data[INFO_DATA].start; + zInfo_s *info = FSMSG_DATA_PTR(zInfo_s, msg->sys.data[INFO_DATA].start); STATUS status; GeneralMsg_s genMsg; @@ -2132,7 +2137,7 @@ STATUS MSG_GetInfo (zNSSMsg_s *msg) STATUS MSG_GetInfoByName (zNSSMsg_s *msg) { FileHandle_s *fh = STRUCT(msg->sys.door, FileHandle_s, door); - zInfo_s *info = (zInfo_s *)msg->sys.data[INFO_DATA].start; + zInfo_s *info = FSMSG_DATA_PTR(zInfo_s, msg->sys.data[INFO_DATA].start); void *name; STATUS status; @@ -2159,7 +2164,7 @@ STATUS MSG_GetInfoByName (zNSSMsg_s *msg) return zFAILURE; } - name = (msg->sys.numDataAreas == 1) ? NULL : msg->sys.data[PATH_FOR_INFO_DATA].start; + name = (msg->sys.numDataAreas == 1) ? NULL : FSMSG_DATA_VOID(msg->sys.data[PATH_FOR_INFO_DATA].start); status = MSG_InitNameMsg(msg, &aStack->nameMsg, name, msg->body.name.nameSpace, SLATCHED); aStack->nameMsg.parseMode = NAMPMODE_FullyResolveAny; @@ -2229,7 +2234,7 @@ STATUS MSG_Link (zNSSMsg_s *msg) COMN_INCLUDE_INTERNAL_VOLUMES( &genMsg ); status = MSG_InitNameMsg(msg, &aStack->srcNameMsg, - msg->sys.data[PATH_DATA].start, + FSMSG_DATA_VOID(msg->sys.data[PATH_DATA].start), msg->body.name.nameSpace, XLATCHED); if (status != zOK) { @@ -2241,7 +2246,7 @@ STATUS MSG_Link (zNSSMsg_s *msg) msg->body.dst.srcMatch); status = MSG_InitNameMsg(msg, &aStack->destNameMsg, - msg->sys.data[DSTPATH_DATA].start, + FSMSG_DATA_VOID(msg->sys.data[DSTPATH_DATA].start), msg->body.dst.nameSpace, XLATCHED); if (status != zOK) { @@ -2330,14 +2335,14 @@ STATUS MSG_ZidLink (zNSSMsg_s *msg) if (msg->body.byZid.dstZid == 0) { status = MSG_InitNameMsg(msg, &aStack->destNameMsg, - msg->sys.data[PATH_DATA].start, + FSMSG_DATA_VOID(msg->sys.data[PATH_DATA].start), msg->body.name.nameSpace, XLATCHED); } else { status = MSG_InitZidNameMsg(msg, &aStack->destNameMsg, msg->body.byZid.dstZid, - msg->sys.data[PATH_DATA].start, + FSMSG_DATA_VOID(msg->sys.data[PATH_DATA].start), msg->body.name.nameSpace, XLATCHED); } if (status != zOK) @@ -2473,7 +2478,7 @@ BOOL bad_numEntries (void *info, QUAD length) STATUS MSG_ModifyInfo (zNSSMsg_s *msg) { FileHandle_s *fh = STRUCT(msg->sys.door, FileHandle_s, door); - zInfo_s *info = (zInfo_s *)msg->sys.data[INFO_DATA].start; + zInfo_s *info = FSMSG_DATA_PTR(zInfo_s, msg->sys.data[INFO_DATA].start); File_s *file = fh->file; QUAD mask = msg->body.id.externalFlags; GeneralMsg_s genMsg; @@ -2560,7 +2565,7 @@ cleanup_errorNoNameMsg: STATUS MSG_ModifyInfoByName (zNSSMsg_s *msg) { FileHandle_s *fh = STRUCT(msg->sys.door, FileHandle_s, door); - zInfo_s *info = (zInfo_s *)msg->sys.data[INFO_DATA].start; + zInfo_s *info = FSMSG_DATA_PTR(zInfo_s, msg->sys.data[INFO_DATA].start); File_s *file = fh->file; QUAD mask = msg->body.id.externalFlags; GeneralMsg_s genMsg; @@ -2599,7 +2604,7 @@ STATUS MSG_ModifyInfoByName (zNSSMsg_s *msg) } COMN_SETUP_GENERAL_MSG( &genMsg, fh->connID, zNO_TASK, zSAGENT_Z); - name = (msg->sys.numDataAreas == 1) ? NULL : msg->sys.data[PATH_FOR_INFO_DATA].start; + name = (msg->sys.numDataAreas == 1) ? NULL : FSMSG_DATA_VOID(msg->sys.data[PATH_FOR_INFO_DATA].start); status = MSG_InitNameMsg(msg, &aStack->nameMsg, name, msg->body.name.nameSpace, XLATCHED); aStack->nameMsg.parseMode = NAMPMODE_FullyResolveAny; @@ -2682,7 +2687,7 @@ STATUS MSG_Rename (zNSSMsg_s *msg) return zFAILURE; } status = MSG_InitNameMsg(msg, &aStack->srcNameMsg, - msg->sys.data[PATH_DATA].start, + FSMSG_DATA_VOID(msg->sys.data[PATH_DATA].start), msg->body.name.nameSpace, XLATCHED); if (status != zOK) { @@ -2694,7 +2699,7 @@ STATUS MSG_Rename (zNSSMsg_s *msg) msg->body.dst.srcMatch); status = MSG_InitNameMsg(msg, &aStack->destNameMsg, - msg->sys.data[DSTPATH_DATA].start, + FSMSG_DATA_VOID(msg->sys.data[DSTPATH_DATA].start), msg->body.dst.nameSpace, XLATCHED); if (status != zOK) { @@ -2784,14 +2789,14 @@ STATUS MSG_ZidRename (zNSSMsg_s *msg) if (msg->body.byZid.dstZid == 0) { status = MSG_InitNameMsg(msg, &aStack->destNameMsg, - msg->sys.data[PATH_DATA].start, + FSMSG_DATA_VOID(msg->sys.data[PATH_DATA].start), msg->body.name.nameSpace, XLATCHED); } else { status = MSG_InitZidNameMsg(msg, &aStack->destNameMsg, msg->body.byZid.dstZid, - msg->sys.data[PATH_DATA].start, + FSMSG_DATA_VOID(msg->sys.data[PATH_DATA].start), msg->body.name.nameSpace, XLATCHED); } if (status != zOK) @@ -2824,7 +2829,7 @@ STATUS MSG_WildRead (zNSSMsg_s *msg) SearchMsg_s searchMsg; GetInfoMsg_s infoMsg; zMatchAttr_s matchAttr; - zInfo_s *info = (zInfo_s *)msg->sys.data[INFO_DATA].start; + zInfo_s *info = FSMSG_DATA_PTR(zInfo_s, msg->sys.data[INFO_DATA].start); typedef struct Stack_s { NamingMsg_s nameMsg; } Stack_s;