X_IPC_REF_PTR x_ipcReserveModResource(const char *modName, const char *resName) { int32 refId; MSG_PTR msg; X_IPC_REF_PTR ref; ADD_HND_FORM_TYPE addForm; addForm.hndName = modName; addForm.resName = resName; refId = 0; if (x_ipcQuery(X_IPC_RESERVE_MOD_RESOURCE_QUERY, (void *)&addForm, (void *)&refId) != Success) return NULL; if (refId < 0) { X_IPC_MOD_WARNING( "\nWARNING: Ignoring reservation request.\n"); X_IPC_MOD_WARNING2( "%s of module %s is already reserved by this module.\n", resName, modName); ref = CREATE_NULL_REF(); } else { msg = x_ipc_msgFind(X_IPC_RESERVE_MOD_RESOURCE_QUERY); if (msg == NULL) return NULL; ref = x_ipcRefCreate(msg, X_IPC_RESERVE_MOD_RESOURCE_QUERY, refId); } return ref; }
X_IPC_REF_PTR x_ipcReserveResource(const char *resName) { int32 refId; MSG_PTR msg; X_IPC_REF_PTR ref; refId = 0; if (x_ipcQuery(X_IPC_RESERVE_RESOURCE_QUERY, (void *)&resName, (void *)&refId) != Success) return NULL; if (refId < 0) { X_IPC_MOD_WARNING( "\nWARNING: Ignoring reservation request.\n"); X_IPC_MOD_WARNING1( "%s is already reserved by this module.\n", resName); ref = CREATE_NULL_REF(); } else { msg = x_ipc_msgFind(X_IPC_RESERVE_RESOURCE_QUERY); if (msg == NULL) return NULL; ref = x_ipcRefCreate(msg, X_IPC_RESERVE_RESOURCE_QUERY, refId); } return ref; }
int IPC_isModuleConnected (const char *moduleName) { if (!moduleName || strlen(moduleName) == 0) { ipcSetError(IPC_Null_Argument); return -1; } else if (!X_IPC_CONNECTED()) { ipcSetError(IPC_Not_Connected); return -1; } else { int retVal; x_ipcQuery(IPC_MODULE_CONNECTED_QUERY, &moduleName, &retVal); return retVal; } }
X_IPC_RETURN_VALUE_TYPE _x_ipcGetVar(const char *varName, void *value) { char *getMsgName; X_IPC_RETURN_VALUE_TYPE result; getMsgName = (char *)x_ipcMalloc(1+strlen(varName)+strlen(VAR_GET_PREFIX)); strcpy(getMsgName,VAR_GET_PREFIX); strcat(getMsgName,varName); result = x_ipcQuery(getMsgName, NULL, value); x_ipcFree(getMsgName); return result; }
int x_ipcMessageHandlerRegistered(const char *msgName) { MSG_ASK_TYPE ask, receive; int retVal=0; ask.msgName = msgName; ask.hndName = (const char *)NULL; receive.msgName = NULL; receive.hndName = (const char *)NULL; if (x_ipcQuery(X_IPC_HND_INFO_QUERY, (void *)&ask, (void *)&receive) == Success){ retVal = (receive.hndName != NULL); x_ipcFreeReply(X_IPC_HND_INFO_QUERY, (void *)&receive); } return retVal; }
X_IPC_REF_PTR x_ipcLockResource(const char *resName) { int32 refId; MSG_PTR msg; X_IPC_REF_PTR ref; if (x_ipcQuery(X_IPC_LOCK_RESOURCE_QUERY, (void *)&resName, (void *)&refId) != Success) return NULL; msg = x_ipc_msgFind(X_IPC_LOCK_RESOURCE_QUERY); if (msg == NULL) return NULL; ref = x_ipcRefCreate(msg, X_IPC_LOCK_RESOURCE_QUERY, refId); return ref; }
X_IPC_REF_PTR x_ipcLockModResource(const char *modName, const char *resName) { int32 refId; MSG_PTR msg; X_IPC_REF_PTR ref; ADD_HND_FORM_TYPE addForm; addForm.hndName = modName; addForm.resName = resName; if (x_ipcQuery(X_IPC_LOCK_MOD_RESOURCE_QUERY, (void *)&addForm, (void *)&refId) != Success) return NULL; msg = x_ipc_msgFind(X_IPC_LOCK_MOD_RESOURCE_QUERY); if (msg == NULL) return NULL; ref = x_ipcRefCreate(msg, X_IPC_LOCK_MOD_RESOURCE_QUERY, refId); return ref; }