Index: kernel/arch/ia32/src/boot/multiboot.S
===================================================================
--- kernel/arch/ia32/src/boot/multiboot.S	(revision 0637ddb37d7e3d5dd0479648840f57e5a3cce14a)
+++ kernel/arch/ia32/src/boot/multiboot.S	(revision 926010246a89088c7694f5b643c549ac4e798fdb)
@@ -31,4 +31,5 @@
 #include <abi/asmtool.h>
 #include <arch/boot/boot.h>
+#include <arch/boot/memmap.h>
 #include <arch/mm/page.h>
 #include <arch/pm.h>
@@ -315,5 +316,5 @@
 		/* Check if memory map flag is present */
 		movl (%ebx), %edx
-		andl $(1 << 6), %edx
+		andl $MULTIBOOT_INFO_FLAGS_MMAP, %edx
 		jnz use_multiboot_map
 			
@@ -323,8 +324,8 @@
 		
 		/* Copy address of the memory map to edx */
-		movl 48(%ebx), %edx
+		movl MULTIBOOT_INFO_OFFSET_MMAP_ADDR(%ebx), %edx
 		movl %edx, %ecx
 		
-		addl 44(%ebx), %ecx
+		addl MULTIBOOT_INFO_OFFSET_MMAP_LENGTH(%ebx), %ecx
 		
 		/* Find a free region at least 2M in size */
@@ -332,15 +333,14 @@
 			
 			/* Is this a free region? */
-			cmp $1, 20(%edx)
+			cmpl $MEMMAP_MEMORY_AVAILABLE, MULTIBOOT_MEMMAP_OFFSET_MM_INFO + E820MEMMAP_OFFSET_TYPE(%edx)
 			jnz next_region
 			
 			/* Check size */
-			cmp $0, 16(%edx)
+			cmpl $0, MULTIBOOT_MEMMAP_OFFSET_MM_INFO + E820MEMMAP_OFFSET_SIZE + 4(%edx)
 			jnz next_region
-			
-			cmpl $(2 * 1024 * 1024 + 4 * 1024), 12(%edx)
+			cmpl $(2 * 1024 * 1024 + PAGE_SIZE), MULTIBOOT_MEMMAP_OFFSET_MM_INFO + E820MEMMAP_OFFSET_SIZE(%edx)
 			jbe next_region
 			
-			cmp $0, 8(%edx)
+			cmpl $0, MULTIBOOT_MEMMAP_OFFSET_MM_INFO + E820MEMMAP_OFFSET_BASE_ADDRESS + 4(%edx)
 			jz found_region
 		
@@ -354,6 +354,6 @@
 		next_region_do:
 			
-			addl (%edx), %edx
-			addl $4, %edx
+			addl MULTIBOOT_MEMMAP_OFFSET_SIZE(%edx), %edx
+			addl $MULTIBOOT_MEMMAP_SIZE_SIZE, %edx
 			jmp check_memmap_loop
 			
@@ -361,6 +361,6 @@
 			
 			/* Use end of the found region */
-			mov 4(%edx), %ecx
-			add 12(%edx), %ecx
+			mov MULTIBOOT_MEMMAP_OFFSET_MM_INFO + E820MEMMAP_OFFSET_BASE_ADDRESS(%edx), %ecx
+			add MULTIBOOT_MEMMAP_OFFSET_MM_INFO + E820MEMMAP_OFFSET_SIZE(%edx), %ecx
 			sub $(2 * 1024 * 1024), %ecx
 			mov %ecx, free_area
