C Structure -> PB Structure

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

C Structure -> PB Structure

Beitrag von Mok »

Hallo!
Nachdem ich wieder ein paar Definitionslücken in der PB-integrierten WinAPI gefunden habe, hab ich mich einfach mal rangemacht, die Structs und Enums von Hand zu übersetzen, doch bei einer Struct in einer StructUnion bleib ich stecken.

Code: Alles auswählen

struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION {
  ULONG_PTR                      ProcessorMask;
  LOGICAL_PROCESSOR_RELATIONSHIP Relationship;
  union {
    struct {
      BYTE Flags;
    } ProcessorCore;
    struct {
      DWORD NodeNumber;
    } NumaNode;
    CACHE_DESCRIPTOR Cache;
    ULONGLONG        Reserved[2];
  } ;
}

struct _CACHE_DESCRIPTOR {
  BYTE                 Level;
  BYTE                 Associativity;
  WORD                 LineSize;
  DWORD                Size;
  PROCESSOR_CACHE_TYPE Type;
}
Außerdem: Gibt es eine möglichkeit, typisierte Enumerationen in PB zu machen?

Code: Alles auswählen

enum _PROCESSOR_CACHE_TYPE {
  CacheUnified,
  CacheInstruction,
  CacheData,
  CacheTrace 
}

enum _LOGICAL_PROCESSOR_RELATIONSHIP {
  RelationProcessorCore,
  RelationNumaNode,
  RelationCache,
  RelationProcessorPackage,
  RelationGroup,
  RelationAll                = 0xffff 
}
Voraus schon mal danke! :wink:
Gruß, Mok.
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: C Structure -> PB Structure

Beitrag von NicTheQuick »

Die Struktur würde ich wie folgt übersetzen:

Code: Alles auswählen

Structure ProcessorCore
	Flags.b
EndStructure

Structure NumaNode
	NodeNumber.l
EndStructure

Structure _CACHE_DESCRIPTOR
	Level.b
	Associativity.b
	LineSize.w
	Size.l
	Type.PROCESSOR_CACHE_TYPE
EndStructure

Structure _SYSTEM_LOGICAL_PROCESSOR_INFORMATION
	*ProcessorMask.Long
	RelationShip.LOGICAL_PROCESSOR_RELATIONSHIP
	StructureUnion
		ProcessorCore.ProcessorCore
		NumaNode.NumaNode
	EndStructureUnion
	Cache.CACHE_DESCRIPTOR
	Reserved.i[2]
EndStructure
Und wegen der Frage mit den Enums:
Nein, Typisierungen für Enums gibt es in PB nicht.
Antworten