Lines Matching refs:pNode

77 static void cfgmR3DumpPath(PCFGMNODE pNode, PCDBGFINFOHLP pHlp);
80 static int cfgmR3ResolveNode(PCFGMNODE pNode, const char *pszPath, PCFGMNODE *ppChild);
81 static int cfgmR3ResolveLeaf(PCFGMNODE pNode, const char *pszName, PCFGMLEAF *ppLeaf);
82 static int cfgmR3InsertLeaf(PCFGMNODE pNode, const char *pszName, PCFGMLEAF *ppLeaf);
83 static void cfgmR3RemoveLeaf(PCFGMNODE pNode, PCFGMLEAF pLeaf);
154 * @param pNode The node structure to free.
156 static void cfgmR3FreeNodeOnly(PCFGMNODE pNode)
158 pNode->pFirstLeaf = NULL;
159 pNode->pFirstChild = NULL;
160 pNode->pNext = NULL;
161 pNode->pPrev = NULL;
162 if (!pNode->pVM)
163 RTMemFree(pNode);
166 pNode->pVM = NULL;
167 MMR3HeapFree(pNode);
276 * @returns NULL if pNode is Root or pNode is the start of a
279 * @param pNode The node which parent we query.
281 VMMR3DECL(PCFGMNODE) CFGMR3GetParent(PCFGMNODE pNode)
283 if (pNode && !pNode->fRestrictedRoot)
284 return pNode->pParent;
293 * @returns NULL if pNode is Root or pVM is not correct.
296 * @param pNode The node which parent we query.
298 VMMR3DECL(PCFGMNODE) CFGMR3GetParentEx(PVM pVM, PCFGMNODE pNode)
300 if (pNode && pNode->pVM == pVM)
301 return pNode->pParent;
310 * @returns NULL if node was not found or pNode is NULL.
311 * @param pNode Node pszPath is relative to.
312 * @param pszPath Path to the child node or pNode.
315 VMMR3DECL(PCFGMNODE) CFGMR3GetChild(PCFGMNODE pNode, const char *pszPath)
318 int rc = cfgmR3ResolveNode(pNode, pszPath, &pChild);
329 * @returns NULL if node was not found or pNode is NULL.
330 * @param pNode Node pszPath is relative to.
331 * @param pszPathFormat Path to the child node or pNode.
335 VMMR3DECL(PCFGMNODE) CFGMR3GetChildF(PCFGMNODE pNode, const char *pszPathFormat, ...)
339 PCFGMNODE pRet = CFGMR3GetChildFV(pNode, pszPathFormat, Args);
349 * @returns NULL if node was not found or pNode is NULL.
350 * @param pNode Node pszPath is relative to.
351 * @param pszPathFormat Path to the child node or pNode.
355 VMMR3DECL(PCFGMNODE) CFGMR3GetChildFV(PCFGMNODE pNode, const char *pszPathFormat, va_list Args)
362 int rc = cfgmR3ResolveNode(pNode, pszPath, &pChild);
377 * @param pNode Node to enumerate children for.
379 VMMR3DECL(PCFGMNODE) CFGMR3GetFirstChild(PCFGMNODE pNode)
381 return pNode ? pNode->pFirstChild : NULL;
449 * @param pNode The node which children should be examined.
455 VMMR3DECL(bool) CFGMR3AreChildrenValid(PCFGMNODE pNode, const char *pszzValid)
457 if (pNode)
459 for (PCFGMNODE pChild = pNode->pFirstChild; pChild; pChild = pChild->pNext)
575 * @param pNode The node which values should be examined.
580 VMMR3DECL(bool) CFGMR3AreValuesValid(PCFGMNODE pNode, const char *pszzValid)
582 if (pNode)
584 for (PCFGMLEAF pLeaf = pNode->pFirstLeaf; pLeaf; pLeaf = pLeaf->pNext)
617 * @param pNode Which node to search for pszName in.
620 VMMR3DECL(bool) CFGMR3Exists(PCFGMNODE pNode, const char *pszName)
623 int rc = cfgmR3ResolveLeaf(pNode, pszName, &pLeaf);
632 * @param pNode Which node to search for pszName in.
636 VMMR3DECL(int) CFGMR3QueryType(PCFGMNODE pNode, const char *pszName, PCFGMVALUETYPE penmType)
639 int rc = cfgmR3ResolveLeaf(pNode, pszName, &pLeaf);
654 * @param pNode Which node to search for pszName in.
658 VMMR3DECL(int) CFGMR3QuerySize(PCFGMNODE pNode, const char *pszName, size_t *pcb)
661 int rc = cfgmR3ResolveLeaf(pNode, pszName, &pLeaf);
692 * @param pNode Which node to search for pszName in.
696 VMMR3DECL(int) CFGMR3QueryInteger(PCFGMNODE pNode, const char *pszName, uint64_t *pu64)
699 int rc = cfgmR3ResolveLeaf(pNode, pszName, &pLeaf);
715 * @param pNode Which node to search for pszName in.
720 VMMR3DECL(int) CFGMR3QueryIntegerDef(PCFGMNODE pNode, const char *pszName, uint64_t *pu64, uint64_t u64Def)
723 int rc = cfgmR3ResolveLeaf(pNode, pszName, &pLeaf);
747 * @param pNode Which node to search for pszName in.
752 VMMR3DECL(int) CFGMR3QueryString(PCFGMNODE pNode, const char *pszName, char *pszString, size_t cchString)
755 int rc = cfgmR3ResolveLeaf(pNode, pszName, &pLeaf);
780 * @param pNode Which node to search for pszName in.
786 VMMR3DECL(int) CFGMR3QueryStringDef(PCFGMNODE pNode, const char *pszName, char *pszString, size_t cchString, const char *pszDef)
789 int rc = cfgmR3ResolveLeaf(pNode, pszName, &pLeaf);
829 * @param pNode Which node to search for pszName in.
834 VMMR3DECL(int) CFGMR3QueryBytes(PCFGMNODE pNode, const char *pszName, void *pvData, size_t cbData)
837 int rc = cfgmR3ResolveLeaf(pNode, pszName, &pLeaf);
868 * @param pNode The node to validate.
880 VMMR3DECL(int) CFGMR3ValidateConfig(PCFGMNODE pNode, const char *pszNode,
885 AssertPtrNullReturn(pNode, VERR_INVALID_POINTER);
892 if (pNode)
897 for (PCFGMLEAF pLeaf = pNode->pFirstLeaf; pLeaf; pLeaf = pLeaf->pNext)
905 return VMSetError(pNode->pVM, VERR_CFGM_CONFIG_UNKNOWN_VALUE, RT_SRC_POS,
915 for (PCFGMNODE pChild = pNode->pFirstChild; pChild; pChild = pChild->pNext)
923 return VMSetError(pNode->pVM, VERR_CFGM_CONFIG_UNKNOWN_NODE, RT_SRC_POS,
1203 * @param pNode Which node to search for pszName in.
1207 static int cfgmR3ResolveNode(PCFGMNODE pNode, const char *pszPath, PCFGMNODE *ppChild)
1210 if (!pNode)
1235 pChild = pNode->pFirstChild;
1251 pNode = pChild;
1263 * @param pNode Which node to search for pszName in.
1267 static int cfgmR3ResolveLeaf(PCFGMNODE pNode, const char *pszName, PCFGMLEAF *ppLeaf)
1270 if (!pNode)
1274 PCFGMLEAF pLeaf = pNode->pFirstLeaf;
1452 * @param pNode Parent node.
1457 VMMR3DECL(int) CFGMR3InsertSubTree(PCFGMNODE pNode, const char *pszName, PCFGMNODE pSubTree, PCFGMNODE *ppChild)
1462 AssertPtrReturn(pNode, VERR_INVALID_POINTER);
1464 AssertReturn(pNode != pSubTree, VERR_INVALID_PARAMETER);
1466 AssertReturn(pNode->pVM == pSubTree->pVM, VERR_INVALID_PARAMETER);
1475 int rc = CFGMR3InsertNode(pNode, pszName, &pNewChild);
1658 * @param pNode Parent node.
1662 VMMR3DECL(int) CFGMR3InsertNode(PCFGMNODE pNode, const char *pszName, PCFGMNODE *ppChild)
1665 if (pNode)
1692 PCFGMNODE pChild = CFGMR3GetChild(pNode, psz);
1696 rc = CFGMR3InsertNode(pNode, psz, &pChild);
1715 pNode = pChild;
1733 PCFGMNODE pNext = pNode->pFirstChild;
1751 PCFGMNODE pNew = (PCFGMNODE)cfgmR3MemAlloc(pNode->pVM, MM_TAG_CFGM, sizeof(*pNew) + cchName);
1754 pNew->pParent = pNode;
1757 pNew->pVM = pNode->pVM;
1769 pNode->pFirstChild = pNew;
1801 * @param pNode Parent node.
1806 VMMR3DECL(int) CFGMR3InsertNodeF(PCFGMNODE pNode, PCFGMNODE *ppChild, const char *pszNameFormat, ...)
1810 int rc = CFGMR3InsertNodeFV(pNode, ppChild, pszNameFormat, Args);
1820 * @param pNode Parent node.
1825 VMMR3DECL(int) CFGMR3InsertNodeFV(PCFGMNODE pNode, PCFGMNODE *ppChild, const char *pszNameFormat, va_list Args)
1832 rc = CFGMR3InsertNode(pNode, pszName, ppChild);
1845 * @param pNode The node to mark.
1847 VMMR3DECL(void) CFGMR3SetRestrictedRoot(PCFGMNODE pNode)
1849 if (pNode)
1850 pNode->fRestrictedRoot = true;
1858 * @param pNode Parent node.
1863 static int cfgmR3InsertLeaf(PCFGMNODE pNode, const char *pszName, PCFGMLEAF *ppLeaf)
1868 if (pNode)
1875 PCFGMLEAF pNext = pNode->pFirstLeaf;
1893 PCFGMLEAF pNew = (PCFGMLEAF)cfgmR3MemAlloc(pNode->pVM, MM_TAG_CFGM, sizeof(*pNew) + cchName);
1906 pNode->pFirstLeaf = pNew;
1929 * @param pNode The node to remove.
1931 VMMR3DECL(void) CFGMR3RemoveNode(PCFGMNODE pNode)
1933 if (pNode)
1938 while (pNode->pFirstChild)
1939 CFGMR3RemoveNode(pNode->pFirstChild);
1944 while (pNode->pFirstLeaf)
1945 cfgmR3RemoveLeaf(pNode, pNode->pFirstLeaf);
1950 if (pNode->pPrev)
1951 pNode->pPrev->pNext = pNode->pNext;
1954 if (pNode->pParent)
1955 pNode->pParent->pFirstChild = pNode->pNext;
1956 else if ( pNode->pVM /* might be a different tree */
1957 && pNode == pNode->pVM->cfgm.s.pRoot)
1958 pNode->pVM->cfgm.s.pRoot = NULL;
1960 if (pNode->pNext)
1961 pNode->pNext->pPrev = pNode->pPrev;
1966 cfgmR3FreeNodeOnly(pNode);
1974 * @param pNode Parent node.
1977 static void cfgmR3RemoveLeaf(PCFGMNODE pNode, PCFGMLEAF pLeaf)
1979 if (pNode && pLeaf)
1987 pNode->pFirstLeaf = pLeaf->pNext;
1994 cfgmR3FreeValue(pNode->pVM, pLeaf);
1997 cfgmR3MemFree(pNode->pVM, pLeaf);
2058 * @param pNode Parent node.
2062 VMMR3DECL(int) CFGMR3InsertInteger(PCFGMNODE pNode, const char *pszName, uint64_t u64Integer)
2065 int rc = cfgmR3InsertLeaf(pNode, pszName, &pLeaf);
2080 * @param pNode Parent node.
2086 VMMR3DECL(int) CFGMR3InsertStringN(PCFGMNODE pNode, const char *pszName, const char *pszString, size_t cchString)
2091 if (pNode)
2096 char *pszStringCopy = (char *)cfgmR3StrAlloc(pNode->pVM, MM_TAG_CFGM_STRING, cchString + 1);
2106 rc = cfgmR3InsertLeaf(pNode, pszName, &pLeaf);
2114 cfgmR3StrFree(pNode->pVM, pszStringCopy);
2131 * @param pNode Parent node.
2135 VMMR3DECL(int) CFGMR3InsertString(PCFGMNODE pNode, const char *pszName, const char *pszString)
2137 return CFGMR3InsertStringN(pNode, pszName, pszString, strlen(pszString));
2146 * @param pNode Parent node.
2151 VMMR3DECL(int) CFGMR3InsertStringFV(PCFGMNODE pNode, const char *pszName, const char *pszFormat, va_list va)
2154 if (pNode)
2160 if (!pNode->pVM)
2163 pszString = MMR3HeapAPrintfVU(pNode->pVM->pUVM, MM_TAG_CFGM_STRING, pszFormat, va);
2170 rc = cfgmR3InsertLeaf(pNode, pszName, &pLeaf);
2178 cfgmR3StrFree(pNode->pVM, pszString);
2195 * @param pNode Parent node.
2200 VMMR3DECL(int) CFGMR3InsertStringF(PCFGMNODE pNode, const char *pszName, const char *pszFormat, ...)
2204 int rc = CFGMR3InsertStringFV(pNode, pszName, pszFormat, va);
2214 * @param pNode Parent node.
2218 VMMR3DECL(int) CFGMR3InsertStringW(PCFGMNODE pNode, const char *pszName, PCRTUTF16 pwszValue)
2224 rc = CFGMR3InsertString(pNode, pszName, pszValue);
2235 * @param pNode Parent node.
2240 VMMR3DECL(int) CFGMR3InsertBytes(PCFGMNODE pNode, const char *pszName, const void *pvBytes, size_t cbBytes)
2243 if (pNode)
2250 void *pvCopy = cfgmR3MemAlloc(pNode->pVM, MM_TAG_CFGM_STRING, cbBytes);
2259 rc = cfgmR3InsertLeaf(pNode, pszName, &pLeaf);
2267 cfgmR3MemFree(pNode->pVM, pvCopy);
2286 * @param pNode Parent node.
2289 VMMR3DECL(int) CFGMR3InsertValue(PCFGMNODE pNode, PCFGMLEAF pValue)
2295 rc = CFGMR3InsertInteger(pNode, pValue->szName, pValue->Value.Integer.u64);
2299 rc = CFGMR3InsertBytes(pNode, pValue->szName, pValue->Value.Bytes.pau8, pValue->Value.Bytes.cb);
2303 rc = CFGMR3InsertStringN(pNode, pValue->szName, pValue->Value.String.psz, pValue->Value.String.cb - 1);
2319 * @param pNode Parent node.
2322 VMMR3DECL(int) CFGMR3RemoveValue(PCFGMNODE pNode, const char *pszName)
2325 int rc = cfgmR3ResolveLeaf(pNode, pszName, &pLeaf);
2327 cfgmR3RemoveLeaf(pNode, pLeaf);
2342 * @param pNode Which node to search for pszName in.
2346 VMMR3DECL(int) CFGMR3QueryU64(PCFGMNODE pNode, const char *pszName, uint64_t *pu64)
2348 return CFGMR3QueryInteger(pNode, pszName, pu64);
2356 * @param pNode Which node to search for pszName in.
2361 VMMR3DECL(int) CFGMR3QueryU64Def(PCFGMNODE pNode, const char *pszName, uint64_t *pu64, uint64_t u64Def)
2363 return CFGMR3QueryIntegerDef(pNode, pszName, pu64, u64Def);
2371 * @param pNode Which node to search for pszName in.
2375 VMMR3DECL(int) CFGMR3QueryS64(PCFGMNODE pNode, const char *pszName, int64_t *pi64)
2378 int rc = CFGMR3QueryInteger(pNode, pszName, &u64);
2389 * @param pNode Which node to search for pszName in.
2394 VMMR3DECL(int) CFGMR3QueryS64Def(PCFGMNODE pNode, const char *pszName, int64_t *pi64, int64_t i64Def)
2397 int rc = CFGMR3QueryIntegerDef(pNode, pszName, &u64, i64Def);
2407 * @param pNode Which node to search for pszName in.
2411 VMMR3DECL(int) CFGMR3QueryU32(PCFGMNODE pNode, const char *pszName, uint32_t *pu32)
2414 int rc = CFGMR3QueryInteger(pNode, pszName, &u64);
2430 * @param pNode Which node to search for pszName in.
2435 VMMR3DECL(int) CFGMR3QueryU32Def(PCFGMNODE pNode, const char *pszName, uint32_t *pu32, uint32_t u32Def)
2438 int rc = CFGMR3QueryIntegerDef(pNode, pszName, &u64, u32Def);
2456 * @param pNode Which node to search for pszName in.
2460 VMMR3DECL(int) CFGMR3QueryS32(PCFGMNODE pNode, const char *pszName, int32_t *pi32)
2463 int rc = CFGMR3QueryInteger(pNode, pszName, &u64);
2480 * @param pNode Which node to search for pszName in.
2485 VMMR3DECL(int) CFGMR3QueryS32Def(PCFGMNODE pNode, const char *pszName, int32_t *pi32, int32_t i32Def)
2488 int rc = CFGMR3QueryIntegerDef(pNode, pszName, &u64, i32Def);
2507 * @param pNode Which node to search for pszName in.
2511 VMMR3DECL(int) CFGMR3QueryU16(PCFGMNODE pNode, const char *pszName, uint16_t *pu16)
2514 int rc = CFGMR3QueryInteger(pNode, pszName, &u64);
2530 * @param pNode Which node to search for pszName in.
2535 VMMR3DECL(int) CFGMR3QueryU16Def(PCFGMNODE pNode, const char *pszName, uint16_t *pu16, uint16_t u16Def)
2538 int rc = CFGMR3QueryIntegerDef(pNode, pszName, &u64, u16Def);
2556 * @param pNode Which node to search for pszName in.
2560 VMMR3DECL(int) CFGMR3QueryS16(PCFGMNODE pNode, const char *pszName, int16_t *pi16)
2563 int rc = CFGMR3QueryInteger(pNode, pszName, &u64);
2580 * @param pNode Which node to search for pszName in.
2585 VMMR3DECL(int) CFGMR3QueryS16Def(PCFGMNODE pNode, const char *pszName, int16_t *pi16, int16_t i16Def)
2588 int rc = CFGMR3QueryIntegerDef(pNode, pszName, &u64, i16Def);
2607 * @param pNode Which node to search for pszName in.
2611 VMMR3DECL(int) CFGMR3QueryU8(PCFGMNODE pNode, const char *pszName, uint8_t *pu8)
2614 int rc = CFGMR3QueryInteger(pNode, pszName, &u64);
2630 * @param pNode Which node to search for pszName in.
2635 VMMR3DECL(int) CFGMR3QueryU8Def(PCFGMNODE pNode, const char *pszName, uint8_t *pu8, uint8_t u8Def)
2638 int rc = CFGMR3QueryIntegerDef(pNode, pszName, &u64, u8Def);
2656 * @param pNode Which node to search for pszName in.
2660 VMMR3DECL(int) CFGMR3QueryS8(PCFGMNODE pNode, const char *pszName, int8_t *pi8)
2663 int rc = CFGMR3QueryInteger(pNode, pszName, &u64);
2680 * @param pNode Which node to search for pszName in.
2685 VMMR3DECL(int) CFGMR3QueryS8Def(PCFGMNODE pNode, const char *pszName, int8_t *pi8, int8_t i8Def)
2688 int rc = CFGMR3QueryIntegerDef(pNode, pszName, &u64, i8Def);
2707 * @param pNode Which node to search for pszName in.
2712 VMMR3DECL(int) CFGMR3QueryBool(PCFGMNODE pNode, const char *pszName, bool *pf)
2715 int rc = CFGMR3QueryInteger(pNode, pszName, &u64);
2726 * @param pNode Which node to search for pszName in.
2732 VMMR3DECL(int) CFGMR3QueryBoolDef(PCFGMNODE pNode, const char *pszName, bool *pf, bool fDef)
2735 int rc = CFGMR3QueryIntegerDef(pNode, pszName, &u64, fDef);
2745 * @param pNode Which node to search for pszName in.
2749 VMMR3DECL(int) CFGMR3QueryPort(PCFGMNODE pNode, const char *pszName, PRTIOPORT pPort)
2752 return CFGMR3QueryU16(pNode, pszName, pPort);
2760 * @param pNode Which node to search for pszName in.
2765 VMMR3DECL(int) CFGMR3QueryPortDef(PCFGMNODE pNode, const char *pszName, PRTIOPORT pPort, RTIOPORT PortDef)
2768 return CFGMR3QueryU16Def(pNode, pszName, pPort, PortDef);
2776 * @param pNode Which node to search for pszName in.
2780 VMMR3DECL(int) CFGMR3QueryUInt(PCFGMNODE pNode, const char *pszName, unsigned int *pu)
2783 return CFGMR3QueryU32(pNode, pszName, (uint32_t *)pu);
2791 * @param pNode Which node to search for pszName in.
2796 VMMR3DECL(int) CFGMR3QueryUIntDef(PCFGMNODE pNode, const char *pszName, unsigned int *pu, unsigned int uDef)
2799 return CFGMR3QueryU32Def(pNode, pszName, (uint32_t *)pu, uDef);
2807 * @param pNode Which node to search for pszName in.
2811 VMMR3DECL(int) CFGMR3QuerySInt(PCFGMNODE pNode, const char *pszName, signed int *pi)
2814 return CFGMR3QueryS32(pNode, pszName, (int32_t *)pi);
2822 * @param pNode Which node to search for pszName in.
2827 VMMR3DECL(int) CFGMR3QuerySIntDef(PCFGMNODE pNode, const char *pszName, signed int *pi, signed int iDef)
2830 return CFGMR3QueryS32Def(pNode, pszName, (int32_t *)pi, iDef);
2838 * @param pNode Which node to search for pszName in.
2842 VMMR3DECL(int) CFGMR3QueryPtr(PCFGMNODE pNode, const char *pszName, void **ppv)
2845 int rc = CFGMR3QueryInteger(pNode, pszName, &u64);
2862 * @param pNode Which node to search for pszName in.
2867 VMMR3DECL(int) CFGMR3QueryPtrDef(PCFGMNODE pNode, const char *pszName, void **ppv, void *pvDef)
2870 int rc = CFGMR3QueryIntegerDef(pNode, pszName, &u64, (uintptr_t)pvDef);
2889 * @param pNode Which node to search for pszName in.
2893 VMMR3DECL(int) CFGMR3QueryGCPtr(PCFGMNODE pNode, const char *pszName, PRTGCPTR pGCPtr)
2896 int rc = CFGMR3QueryInteger(pNode, pszName, &u64);
2913 * @param pNode Which node to search for pszName in.
2918 VMMR3DECL(int) CFGMR3QueryGCPtrDef(PCFGMNODE pNode, const char *pszName, PRTGCPTR pGCPtr, RTGCPTR GCPtrDef)
2921 int rc = CFGMR3QueryIntegerDef(pNode, pszName, &u64, GCPtrDef);
2940 * @param pNode Which node to search for pszName in.
2944 VMMR3DECL(int) CFGMR3QueryGCPtrU(PCFGMNODE pNode, const char *pszName, PRTGCUINTPTR pGCPtr)
2947 int rc = CFGMR3QueryInteger(pNode, pszName, &u64);
2964 * @param pNode Which node to search for pszName in.
2969 VMMR3DECL(int) CFGMR3QueryGCPtrUDef(PCFGMNODE pNode, const char *pszName, PRTGCUINTPTR pGCPtr, RTGCUINTPTR GCPtrDef)
2972 int rc = CFGMR3QueryIntegerDef(pNode, pszName, &u64, GCPtrDef);
2991 * @param pNode Which node to search for pszName in.
2995 VMMR3DECL(int) CFGMR3QueryGCPtrS(PCFGMNODE pNode, const char *pszName, PRTGCINTPTR pGCPtr)
2998 int rc = CFGMR3QueryInteger(pNode, pszName, &u64);
3015 * @param pNode Which node to search for pszName in.
3020 VMMR3DECL(int) CFGMR3QueryGCPtrSDef(PCFGMNODE pNode, const char *pszName, PRTGCINTPTR pGCPtr, RTGCINTPTR GCPtrDef)
3023 int rc = CFGMR3QueryIntegerDef(pNode, pszName, &u64, GCPtrDef);
3043 * @param pNode Which node to search for pszName in.
3049 VMMR3DECL(int) CFGMR3QueryStringAlloc(PCFGMNODE pNode, const char *pszName, char **ppszString)
3052 int rc = CFGMR3QuerySize(pNode, pszName, &cbString);
3055 char *pszString = cfgmR3StrAlloc(pNode->pVM, MM_TAG_CFGM_USER, cbString);
3058 rc = CFGMR3QueryString(pNode, pszName, pszString, cbString);
3062 cfgmR3StrFree(pNode->pVM, pszString);
3076 * @param pNode Which node to search for pszName in. This cannot be
3086 VMMR3DECL(int) CFGMR3QueryStringAllocDef(PCFGMNODE pNode, const char *pszName, char **ppszString, const char *pszDef)
3088 Assert(pNode || !pszDef); /* We need pVM if we need to duplicate the string later. */
3095 int rc = cfgmR3ResolveLeaf(pNode, pszName, &pLeaf);
3101 char *pszString = cfgmR3StrAlloc(pNode->pVM, MM_TAG_CFGM_USER, cbSrc);
3120 *ppszString = cfgmR3StrAlloc(pNode->pVM, MM_TAG_CFGM_USER, cbDef);
3182 static void cfgmR3DumpPath(PCFGMNODE pNode, PCDBGFINFOHLP pHlp)
3184 if (pNode->pParent)
3185 cfgmR3DumpPath(pNode->pParent, pHlp);
3186 pHlp->pfnPrintf(pHlp, "%s/", pNode->szName);