1 /* 2 * COPYRIGHT: See COPYING in the top level directory 3 * PROJECT: ReactOS kernel 4 * FILE: lib/rossym/getraw.c 5 * PURPOSE: Convert rossym info to raw external format 6 * 7 * PROGRAMMERS: Ge van Geldorp (gvg@reactos.com) 8 */ 9 10 #define NTOSAPI 11 #include <ntdef.h> 12 #include <reactos/rossym.h> 13 #include "rossympriv.h" 14 15 ULONG 16 RosSymGetRawDataLength(PROSSYM_INFO RosSymInfo) 17 { 18 return sizeof(ROSSYM_HEADER) 19 + RosSymInfo->SymbolsCount * sizeof(ROSSYM_ENTRY) 20 + RosSymInfo->StringsLength; 21 } 22 23 VOID 24 RosSymGetRawData(PROSSYM_INFO RosSymInfo, PVOID RawData) 25 { 26 PROSSYM_HEADER RosSymHeader; 27 28 RosSymHeader = (PROSSYM_HEADER) RawData; 29 RosSymHeader->SymbolsOffset = sizeof(ROSSYM_HEADER); 30 RosSymHeader->SymbolsLength = RosSymInfo->SymbolsCount * sizeof(ROSSYM_ENTRY); 31 RosSymHeader->StringsOffset = RosSymHeader->SymbolsOffset + RosSymHeader->SymbolsLength; 32 RosSymHeader->StringsLength = RosSymInfo->StringsLength; 33 34 memcpy((char *) RawData + RosSymHeader->SymbolsOffset, RosSymInfo->Symbols, 35 RosSymHeader->SymbolsLength); 36 memcpy((char *) RawData + RosSymHeader->StringsOffset, RosSymInfo->Strings, 37 RosSymHeader->StringsLength); 38 } 39