+ int num_e820_entries = *((int *) E820_MEMORY_ADDR);
+ unsigned long long max_addr = 0;
+ for (int i = 0; i < num_e820_entries; ++i) {
+ struct e820_r *e82;
+ e82 = ((struct e820_r *)((int *) E820_MEMORY_ADDR
+ + 1 + 6 * i));
+ if (e82->type == 1) {
+ if (e82-> pa + e82->length > max_addr) {
+ max_addr = e82->pa + e82->length;
+ }
+ }
+ }
+
+ if (max_addr > (DEVSPACE - KERNBASE)) {
+ max_addr = DEVSPACE - KERNBASE;
+ }
+