diff --git a/Makefile.am b/Makefile.am index 1ad3f70..a4e47f3 100644 --- a/Makefile.am +++ b/Makefile.am @@ -25,13 +25,18 @@ libkernaux_a_SOURCES = \ src/libc.c \ src/printf.c +if WITH_ARCH_I386 if ARCH_I386 libkernaux_a_SOURCES += src/arch/i386/asm.S endif +libkernaux_a_SOURCES += src/arch/i386/paging.c +endif +if WITH_ARCH_X86_64 if ARCH_X86_64 libkernaux_a_SOURCES += src/arch/x86_64/asm.S endif +endif if WITH_CMDLINE libkernaux_a_SOURCES += src/cmdline.c diff --git a/src/arch/i386/paging.c b/src/arch/i386/paging.c new file mode 100644 index 0000000..d367e79 --- /dev/null +++ b/src/arch/i386/paging.c @@ -0,0 +1,23 @@ +#include + +// TODO: There are some static asserts just for example. + +__attribute__((unused)) +static const int assert0[ + sizeof(struct KernAux_Arch_I386_PDE) == sizeof(uint32_t) ? 1 : -1 +]; + +__attribute__((unused)) +static const int assert1[ + sizeof(struct KernAux_Arch_I386_PTE) == sizeof(uint32_t) ? 1 : -1 +]; + +__attribute__((unused)) +static const int assert1[ + sizeof(struct KernAux_Arch_I386_PageDir) == 1024 * sizeof(uint32_t) ? 1 : -1 +]; + +__attribute__((unused)) +static const int assert1[ + sizeof(struct KernAux_Arch_I386_PageTable) == 1024 * sizeof(uint32_t) ? 1 : -1 +];