Hallo,
beim Programmieren (ähm, vielmehr übertragen) der x64-Paging-Strukturen in meine Bitfelder bekomme ich leider ständig einen mir nicht ersichtlichen Fehler. (Wahrscheinlich total trivial und dumm, aber wie auch immer. Vier Augen sehen mehr als zwei!
)
Code (gekürzt, das ganze gibts natürlich für jede Struktur, und Entschuldigung für die grauenhafte Formatierung, irgendwie funktionieren Tabs im Editor nicht):
Output:
Kompiliert auf Ubuntu 12.04 LTS, gcc-Version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) mit folgenden Flags:
-Wall -Wextra -Wshadow -Wconversion -Wunreachable-code -Werror-implicit-function-declaration -Wuninitialized -nostdlib -nostartfiles -nodefaultlibs -ffreestanding -fno-builtin -m32 -g3 -O0 -c
Besonders die Warnung am Ende ist komisch - da ist doch ein Semikolon?!
Vielen Dank für eure Hilfe und sorry für meine Dummheit...
beim Programmieren (ähm, vielmehr übertragen) der x64-Paging-Strukturen in meine Bitfelder bekomme ich leider ständig einen mir nicht ersichtlichen Fehler. (Wahrscheinlich total trivial und dumm, aber wie auch immer. Vier Augen sehen mehr als zwei!
)Code (gekürzt, das ganze gibts natürlich für jede Struktur, und Entschuldigung für die grauenhafte Formatierung, irgendwie funktionieren Tabs im Editor nicht):
Code: [Auswählen]
typedef struct tag_pml4
{
uint64_t PML4_PRESENT : 1; // Zeile 60
uint64_t PML4_WRITE : 1;
uint64_t PML4_USER : 1;
uint64_t PML4_WRITETHRU : 1;
uint64_t PML4_NOCACHE : 1;
uint64_t PML4_DIRTY : 1; // Zeile 65
uint64_t : 3;
uint64_t PML4_3FREE : 3;
uint64_t PML4_PHYSADDR :40;
uint64_t PML4_11FREE :11; // Zeile 69
uint64_t PML4_NXE : 1; // 0 = EXE/ALLOWED 1 = EXE/FORBIDDEN
} pml4;
Output:
Code: [Auswählen]
In file included from vmm.c:2:0:
paging.h:61:11: Fehler: expected identifier or »(« before numeric constant
paging.h:62:11: Fehler: expected identifier or »(« before numeric constant
paging.h:63:11: Fehler: expected identifier or »(« before numeric constant
paging.h:64:11: Fehler: expected identifier or »(« before numeric constant
paging.h:65:11: Fehler: expected identifier or »(« before numeric constant
paging.h:70:11: Fehler: expected identifier or »(« before numeric constant
paging.h:71:1: Warnung: kein Semikolon am Ende von »struct« oder »union« [standardmäßig aktiviert]
Kompiliert auf Ubuntu 12.04 LTS, gcc-Version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) mit folgenden Flags:
-Wall -Wextra -Wshadow -Wconversion -Wunreachable-code -Werror-implicit-function-declaration -Wuninitialized -nostdlib -nostartfiles -nodefaultlibs -ffreestanding -fno-builtin -m32 -g3 -O0 -c
Besonders die Warnung am Ende ist komisch - da ist doch ein Semikolon?!
Vielen Dank für eure Hilfe und sorry für meine Dummheit...

Übersicht
Wiki
Hilfe
Suche
Einloggen
Registrieren
Drucken

Gespeichert
