bool MUtils::Translation::insert(const QString &langId, const QString &qmFile, const QString &langName, const quint32 &systemId, const quint32 &country) { QWriteLocker writeLockTranslations(&g_translation_lock); const QString key = langId.simplified().toLower(); if(key.isEmpty() || qmFile.isEmpty() || langName.isEmpty() || (systemId < 1)) { return false; } if(g_translation_data.isNull()) { g_translation_data.reset(new translation_store_t()); } if(g_translation_data->contains(key)) { qWarning("Translation store already contains entry for '%s', going to replace!", MUTILS_UTF8(key)); } g_translation_data->insert(key, MAKE_ENTRY(langName, qmFile, systemId, country)); return true; }
/* * Register tool */ void lamexp_tools_register(const QString &toolName, LockedFile *const file, const quint32 &version, const QString &tag) { QWriteLocker writeLock(&g_lamexp_tools_lock); if(!file) { MUTILS_THROW("lamexp_register_tool: Tool file must not be NULL!"); } if(g_lamexp_tools_data.isNull()) { g_lamexp_tools_data.reset(new tool_hash_t()); atexit(lamexp_tools_clean_up); } const QString key = toolName.simplified().toLower(); if(g_lamexp_tools_data->contains(key)) { MUTILS_THROW("lamexp_register_tool: Tool is already registered!"); } g_lamexp_tools_data->insert(key, MAKE_ENTRY(file, version, tag)); }
#undef VMBIF_DEFINE_VECTOR #define MAKE_ENTRY(entry_name, cls) \ { entry_name, countof(cls::bif_table), cls::bif_table, \ &cls::attach, &cls::detach } /* ------------------------------------------------------------------------ */ /* * The function set registration table. Each entry in the table * provides the definition of one function set, keyed by the function * set's universally unique identifier. */ vm_bif_entry_t G_bif_reg_table[] = { /* T3 VM system function set */ MAKE_ENTRY("t3vm/010006", CVmBifT3), /* T3 VM Testing interface */ MAKE_ENTRY("t3vmTEST/010000", CVmBifT3Test), /* TADS generic data manipulation functions */ MAKE_ENTRY("tads-gen/030008", CVmBifTADS), /* TADS input/output functions */ MAKE_ENTRY("tads-io/030007", CVmBifTIO), /* TADS extended input/output functions (if the platform supports them) */ MAKE_ENTRY("tads-io-ext/030000", CVmBifTIOExt), // !!! ADD ANY HOST-SPECIFIC FUNCTION SETS HERE
{"id", "Id", CMPI_chars}, {"name", "Name", CMPI_chars}, {"value", "Value", CMPI_chars} }; static const map_entry_t HA_LOCATION_CONSTRAINT_RULE_entry [] = { {"id", "Id", CMPI_chars}, {"attribute", "Attribute", CMPI_chars}, {"operation", "Operation", CMPI_chars}, {"value", "Value", CMPI_chars}, }; #define MAKE_ENTRY(id,entry) {id, MAPDIM(entry), entry} static const struct map_t map_table [] = { MAKE_ENTRY(HA_CLUSTER, HA_CLUSTER_entry), MAKE_ENTRY(HA_CLUSTER_NODE, HA_CLUSTER_NODE_entry), MAKE_ENTRY(HA_PRIMITIVE_RESOURCE, HA_PRIMITIVE_RESOURCE_entry), MAKE_ENTRY(HA_RESOURCE_CLONE, HA_RESOURCE_CLONE_entry), MAKE_ENTRY(HA_RESOURCE_GROUP, HA_RESOURCE_GROUP_entry), MAKE_ENTRY(HA_MASTERSLAVE_RESOURCE, HA_MASTERSLAVE_RESOURCE_entry), MAKE_ENTRY(HA_OPERATION, HA_OPERATION_entry), MAKE_ENTRY(HA_ORDER_CONSTRAINT, HA_ORDER_CONSTRAINT_entry), MAKE_ENTRY(HA_COLOCATION_CONSTRAINT, HA_COLOCATION_CONSTRAINT_entry), MAKE_ENTRY(HA_LOCATION_CONSTRAINT, HA_LOCATION_CONSTRAINT_entry), MAKE_ENTRY(HA_INSTANCE_ATTRIBUTES, HA_INSTANCE_ATTRIBUTES_entry), MAKE_ENTRY(HA_LOCATION_CONSTRAINT_RULE, HA_LOCATION_CONSTRAINT_RULE_entry), };
#define NDEBUG #include <debug.h> typedef struct _VIDEO_PORT_FUNCTION_TABLE { PVOID Address; PCSZ Name; } *PVIDEO_PORT_FUNCTION_TABLE, VIDEO_PORT_FUNCTION_TABLE; /* GLOBAL VARIABLES ***********************************************************/ #define VP_EXPORTED_FUNCS (sizeof(VideoPortExports) / sizeof(*VideoPortExports)) /* Create an array of entries with pfn, psz, for IntVideoPortGetProcAddress */ #define MAKE_ENTRY(FUNCTIONNAME) { FUNCTIONNAME, #FUNCTIONNAME } const VIDEO_PORT_FUNCTION_TABLE VideoPortExports[] = { MAKE_ENTRY(VideoPortQueueDpc), MAKE_ENTRY(VideoPortAllocatePool), MAKE_ENTRY(VideoPortFreePool), MAKE_ENTRY(VideoPortReleaseCommonBuffer), MAKE_ENTRY(VideoPortAllocateCommonBuffer), MAKE_ENTRY(VideoPortCreateSecondaryDisplay), MAKE_ENTRY(VideoPortGetDmaAdapter), MAKE_ENTRY(VideoPortGetVersion), MAKE_ENTRY(VideoPortLockBuffer), MAKE_ENTRY(VideoPortUnlockBuffer), MAKE_ENTRY(VideoPortSetEvent), MAKE_ENTRY(VideoPortClearEvent), MAKE_ENTRY(VideoPortReadStateEvent), MAKE_ENTRY(VideoPortRegisterBugcheckCallback), MAKE_ENTRY(VideoPortCreateEvent), MAKE_ENTRY(VideoPortDeleteEvent),
} } return entry->name; } entry++; } return NULL; } // Attribute -> String table, generated using: // // grep 'define.*\/\*' NVCtrl.h | sed 's/.*define \([^ ]*\).*/ MAKE_ENTRY(\1),/' > DATA | head DATA // static AttrEntry attr_int_table[] = { MAKE_ENTRY(NV_CTRL_FLATPANEL_SCALING), MAKE_ENTRY(NV_CTRL_FLATPANEL_DITHERING), MAKE_ENTRY(NV_CTRL_DITHERING), MAKE_ENTRY(NV_CTRL_DIGITAL_VIBRANCE), MAKE_ENTRY(NV_CTRL_BUS_TYPE), MAKE_ENTRY(NV_CTRL_VIDEO_RAM), MAKE_ENTRY(NV_CTRL_IRQ), MAKE_ENTRY(NV_CTRL_OPERATING_SYSTEM), MAKE_ENTRY(NV_CTRL_SYNC_TO_VBLANK), MAKE_ENTRY(NV_CTRL_LOG_ANISO), MAKE_ENTRY(NV_CTRL_FSAA_MODE), MAKE_ENTRY(NV_CTRL_TEXTURE_SHARPEN), MAKE_ENTRY(NV_CTRL_UBB), MAKE_ENTRY(NV_CTRL_OVERLAY), MAKE_ENTRY(NV_CTRL_STEREO), MAKE_ENTRY(NV_CTRL_EMULATE),
/* done with the vector definition */ #undef VMBIF_DEFINE_VECTOR #define MAKE_ENTRY(entry_name, entry_table) \ { entry_name, sizeof(entry_table)/sizeof(entry_table[0]), entry_table } /* ------------------------------------------------------------------------ */ /* * The function set registration table. Each entry in the table * provides the definition of one function set, keyed by the function * set's universally unique identifier. */ vm_bif_entry_t G_bif_reg_table[] = { /* T3 VM system function set, v1 */ MAKE_ENTRY("t3vm/010003", G_bif_t3), /* T3 VM Testing interface, v1 */ MAKE_ENTRY("t3vmTEST/010000", G_bif_t3_test), /* TADS generic data manipulation functions */ MAKE_ENTRY("tads-gen/030005", G_bif_tadsgen), // Our sample function set for the t3core build MAKE_ENTRY("core-sample/010000", G_bif_sample), // !!! ADD ANY HOST-SPECIFIC FUNCTION SETS HERE /* end of table marker */ { 0, 0, 0 } };
#undef VMBIF_DEFINE_VECTOR #define MAKE_ENTRY(entry_name, cls) \ { entry_name, countof(cls::bif_table), cls::bif_table, \ &cls::attach, &cls::detach } /* ------------------------------------------------------------------------ */ /* * The function set registration table. Each entry in the table * provides the definition of one function set, keyed by the function * set's universally unique identifier. */ vm_bif_entry_t G_bif_reg_table[] = { /* T3 VM system function set, v1 */ MAKE_ENTRY("t3vm/010003", CVmBifT3), /* T3 VM Testing interface, v1 */ MAKE_ENTRY("t3vmTEST/010000", CVmBifT3Test), /* TADS generic data manipulation functions */ MAKE_ENTRY("tads-gen/030005", CVmBifTADS), // Our sample function set for the t3core build MAKE_ENTRY("core-sample/010000", CVmBifSample), // !!! ADD ANY HOST-SPECIFIC FUNCTION SETS HERE /* end of table marker */ { 0, 0, 0 } };