]> git.saurik.com Git - apple/libc.git/blobdiff - gen/nlist.c
Libc-1244.50.9.tar.gz
[apple/libc.git] / gen / nlist.c
index bc09f42d0389b7963a49d606fef108dcfd0c131a..817c043490d0ed79831e4cfcc7079c877ae70372 100644 (file)
@@ -1,10 +1,8 @@
 /*
- * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
+ * Copyright (c) 1999, 2008 Apple Inc. All rights reserved.
  *
  * @APPLE_LICENSE_HEADER_START@
  * 
- * Copyright (c) 1999-2003 Apple Computer, Inc.  All Rights Reserved.
- * 
  * This file contains Original Code and/or Modifications of Original Code
  * as defined in and that are subject to the Apple Public Source License
  * Version 2.0 (the 'License'). You may not use this file except in
@@ -23,7 +21,8 @@
  * @APPLE_LICENSE_HEADER_END@
  */
 /*
- *
+ * Copyright (c) 1989, 1993
+ * The Regents of the University of California.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -54,6 +53,8 @@
  * SUCH DAMAGE.
  */
 
+/* temporarily comment this file out for LP64, until code can be modified */
+#ifndef __LP64__
 
 #include <stdlib.h>
 #include <sys/types.h>
@@ -61,6 +62,7 @@
 #include <fcntl.h>
 #include <string.h>
 #include <unistd.h>
+#include <malloc_private.h>
 
 /* Stuff lifted from <a.out.h> and <sys/exec.h> since they are gone */
 /*
@@ -150,13 +152,13 @@ __fdnlist(fd, list)
                        maxlen = n;
        }
        if (read(fd, (char *)&buf, sizeof(buf)) != sizeof(buf) ||
-           (N_BADMAG(buf) && *((long *)&buf) != MH_MAGIC &&
-            NXSwapBigLongToHost(*((long *)&buf)) != FAT_MAGIC)) {
+           (N_BADMAG(buf) && *((uint32_t *)&buf) != MH_MAGIC &&
+            OSSwapBigToHostInt32(*((uint32_t *)&buf)) != FAT_MAGIC)) {
                return (-1);
        }
 
        /* Deal with fat file if necessary */
-       if (NXSwapBigLongToHost(*((long *)&buf)) == FAT_MAGIC) {
+       if (OSSwapBigToHostInt32(*((uint32_t *)&buf)) == FAT_MAGIC) {
                struct host_basic_info hbi;
                struct fat_header fh;
                struct fat_arch *fat_archs, *fap;
@@ -179,11 +181,11 @@ __fdnlist(fd, list)
                }
 
                /* Convert fat_narchs to host byte order */
-               fh.nfat_arch = NXSwapBigLongToHost(fh.nfat_arch);
+               fh.nfat_arch = OSSwapBigToHostInt32(fh.nfat_arch);
 
                /* Read in the fat archs */
-               fat_archs = (struct fat_arch *)malloc(fh.nfat_arch *
-                                                     sizeof(struct fat_arch));
+               fat_archs = (struct fat_arch *)reallocarray(NULL, fh.nfat_arch,
+                               sizeof(struct fat_arch));
                if (fat_archs == NULL) {
                        return (-1);
                }
@@ -200,22 +202,21 @@ __fdnlist(fd, list)
                 */
                for (i = 0; i < fh.nfat_arch; i++) {
                        fat_archs[i].cputype =
-                               NXSwapBigLongToHost(fat_archs[i].cputype);
+                               OSSwapBigToHostInt32(fat_archs[i].cputype);
                        fat_archs[i].cpusubtype =
-                             NXSwapBigLongToHost(fat_archs[i].cpusubtype);
+                             OSSwapBigToHostInt32(fat_archs[i].cpusubtype);
                        fat_archs[i].offset =
-                               NXSwapBigLongToHost(fat_archs[i].offset);
+                               OSSwapBigToHostInt32(fat_archs[i].offset);
                        fat_archs[i].size =
-                               NXSwapBigLongToHost(fat_archs[i].size);
+                               OSSwapBigToHostInt32(fat_archs[i].size);
                        fat_archs[i].align =
-                               NXSwapBigLongToHost(fat_archs[i].align);
+                               OSSwapBigToHostInt32(fat_archs[i].align);
                }
 
 #if    CPUSUBTYPE_SUPPORT
                fap = cpusubtype_getbestarch(hbi.cpu_type, hbi.cpu_subtype,
                                             fat_archs, fh.nfat_arch);
 #else
-#warning       Use the cpusubtype functions!!!
                fap = NULL;
                for (i = 0; i < fh.nfat_arch; i++) {
                        if (fat_archs[i].cputype == hbi.cpu_type) {
@@ -238,7 +239,7 @@ __fdnlist(fd, list)
                }
        }
                
-       if (*((long *)&buf) == MH_MAGIC) {
+       if (*((uint32_t *)&buf) == MH_MAGIC) {
            struct mach_header mh;
            struct load_command *load_commands, *lcp;
            struct symtab_command *stp;
@@ -260,7 +261,7 @@ __fdnlist(fd, list)
                stp = NULL;
                lcp = load_commands;
                for (i = 0; i < mh.ncmds; i++) {
-                       if (lcp->cmdsize % sizeof(long) != 0 ||
+                       if (lcp->cmdsize % sizeof(uint32_t) != 0 ||
                            lcp->cmdsize <= 0 ||
                            (char *)lcp + lcp->cmdsize >
                            (char *)load_commands + mh.sizeofcmds) {
@@ -296,7 +297,7 @@ __fdnlist(fd, list)
 
        lseek(fd, sa, SEEK_SET);
        while (n) {
-               long savpos;
+               off_t savpos;
 
                m = sizeof (space);
                if (n < m)
@@ -335,3 +336,5 @@ __fdnlist(fd, list)
        }
        return (nreq);
 }
+
+#endif /* !__LP64__ */