Utility predicates for packing: UNBOUNDED-SC-P and UNBOUNDED-TN-P
[sbcl.git] / src / runtime / coreparse.c
index fefa834..9ae910c 100644 (file)
@@ -280,22 +280,23 @@ process_directory(int fd, lispobj *ptr, int count, os_vm_offset_t file_offset)
     FSHOW((stderr, "/process_directory(..), count=%d\n", count));
 
     for (entry = (struct ndir_entry *) ptr; --count>= 0; ++entry) {
+
         compressed = 0;
-        long id = entry->identifier;
+        sword_t id = entry->identifier;
         if (id <= (MAX_CORE_SPACE_ID | DEFLATED_CORE_SPACE_ID_FLAG)) {
             if (id & DEFLATED_CORE_SPACE_ID_FLAG)
                 compressed = 1;
             id &= ~(DEFLATED_CORE_SPACE_ID_FLAG);
         }
-        long offset = os_vm_page_size * (1 + entry->data_page);
+        sword_t offset = os_vm_page_size * (1 + entry->data_page);
         os_vm_address_t addr =
             (os_vm_address_t) (os_vm_page_size * entry->address);
         lispobj *free_pointer = (lispobj *) addr + entry->nwords;
-        unsigned long len = os_vm_page_size * entry->page_count;
+        uword_t len = os_vm_page_size * entry->page_count;
         if (len != 0) {
             os_vm_address_t real_addr;
             FSHOW((stderr, "/mapping %ld(0x%lx) bytes at 0x%lx\n",
-                   (long)len, (long)len, (unsigned long)addr));
+                   len, len, (uword_t)addr));
             if (compressed) {
 #ifdef LISP_FEATURE_SB_CORE_COMPRESSION
                 real_addr = inflate_core_bytes(fd, offset + file_offset, addr, len);
@@ -323,9 +324,8 @@ process_directory(int fd, lispobj *ptr, int count, os_vm_offset_t file_offset)
                 madvise(addr, len, MADV_MERGEABLE);
         }
 #endif
-
-        FSHOW((stderr, "/space id = %ld, free pointer = 0x%lx\n",
-               id, (unsigned long)free_pointer));
+        FSHOW((stderr, "/space id = %ld, free pointer = 0x%p\n",
+               id, (uword_t)free_pointer));
 
         switch (id) {
         case DYNAMIC_CORE_SPACE_ID:
@@ -333,22 +333,22 @@ process_directory(int fd, lispobj *ptr, int count, os_vm_offset_t file_offset)
                 fprintf(stderr,
                         "dynamic space too small for core: %ldKiB required, %ldKiB available.\n",
                         len >> 10,
-                        (long)dynamic_space_size >> 10);
+                        (uword_t)dynamic_space_size >> 10);
                 exit(1);
             }
 #ifdef LISP_FEATURE_GENCGC
             if (addr != (os_vm_address_t)DYNAMIC_SPACE_START) {
-                fprintf(stderr, "in core: 0x%lx; in runtime: 0x%lx \n",
-                        (long)addr, (long)DYNAMIC_SPACE_START);
+                fprintf(stderr, "in core: 0x%p; in runtime: 0x%p \n",
+                        (uword_t)addr, (uword_t)DYNAMIC_SPACE_START);
                 lose("core/runtime address mismatch: DYNAMIC_SPACE_START\n");
             }
 #else
             if ((addr != (os_vm_address_t)DYNAMIC_0_SPACE_START) &&
                 (addr != (os_vm_address_t)DYNAMIC_1_SPACE_START)) {
-                fprintf(stderr, "in core: 0x%lx; in runtime: 0x%lx or 0x%lx\n",
-                        (long)addr,
-                        (long)DYNAMIC_0_SPACE_START,
-                        (long)DYNAMIC_1_SPACE_START);
+                fprintf(stderr, "in core: 0x%p; in runtime: 0x%p or 0x%p\n",
+                        (uword_t)addr,
+                        (uword_t)DYNAMIC_0_SPACE_START,
+                        (uword_t)DYNAMIC_1_SPACE_START);
                 lose("warning: core/runtime address mismatch: DYNAMIC_SPACE_START\n");
             }
 #endif
@@ -365,20 +365,20 @@ process_directory(int fd, lispobj *ptr, int count, os_vm_offset_t file_offset)
             break;
         case STATIC_CORE_SPACE_ID:
             if (addr != (os_vm_address_t)STATIC_SPACE_START) {
-                fprintf(stderr, "in core: 0x%lx - in runtime: 0x%lx\n",
-                        (long)addr, (long)STATIC_SPACE_START);
+                fprintf(stderr, "in core: 0x%p - in runtime: 0x%p\n",
+                        (uword_t)addr, (uword_t)STATIC_SPACE_START);
                 lose("core/runtime address mismatch: STATIC_SPACE_START\n");
             }
             break;
         case READ_ONLY_CORE_SPACE_ID:
             if (addr != (os_vm_address_t)READ_ONLY_SPACE_START) {
-                fprintf(stderr, "in core: 0x%lx - in runtime: 0x%lx\n",
-                        (long)addr, (long)READ_ONLY_SPACE_START);
+                fprintf(stderr, "in core: 0x%p - in runtime: 0x%p\n",
+                        (uword_t)addr, (uword_t)READ_ONLY_SPACE_START);
                 lose("core/runtime address mismatch: READ_ONLY_SPACE_START\n");
             }
             break;
         default:
-            lose("unknown space ID %ld addr 0x%lx\n", id, (long)addr);
+            lose("unknown space ID %ld addr 0x%p\n", id, addr);
         }
     }
 }
@@ -477,7 +477,7 @@ load_core_file(char *file, os_vm_offset_t file_offset)
                               ptr,
 #ifndef LISP_FEATURE_ALPHA
                               remaining_len / (sizeof(struct ndir_entry) /
-                                               sizeof(long)),
+                                               sizeof(lispobj)),
 #else
                               remaining_len / (sizeof(struct ndir_entry) /
                                                sizeof(u32)),
@@ -515,7 +515,7 @@ load_core_file(char *file, os_vm_offset_t file_offset)
                      * The low bits of each word are allocation flags.
                      */
                     if ((word=data[i])) {
-                        page_table[offset].region_start_offset = word & ~0x03;
+                        page_table[offset].scan_start_offset = word & ~0x03;
                         page_table[offset].allocated = word & 0x03;
                     }
                     i++;