diff options
author | tholo <> | 1997-02-09 22:55:38 +0000 |
---|---|---|
committer | tholo <> | 1997-02-09 22:55:38 +0000 |
commit | 2819515b408d1cf65d81fe1056591238bdbb5824 (patch) | |
tree | fc8d0139e90f744ce1344ed2b5595b7f5321bf45 /src | |
parent | 313abe3380c1d987d8e34b2904057c40d711e706 (diff) | |
download | openbsd-2819515b408d1cf65d81fe1056591238bdbb5824.tar.gz openbsd-2819515b408d1cf65d81fe1056591238bdbb5824.tar.bz2 openbsd-2819515b408d1cf65d81fe1056591238bdbb5824.zip |
Make this 64-bit safe again
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/libc/stdlib/malloc.c | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/src/lib/libc/stdlib/malloc.c b/src/lib/libc/stdlib/malloc.c index 94db62c585..b7890a91c0 100644 --- a/src/lib/libc/stdlib/malloc.c +++ b/src/lib/libc/stdlib/malloc.c | |||
@@ -8,7 +8,7 @@ | |||
8 | */ | 8 | */ |
9 | 9 | ||
10 | #if defined(LIBC_SCCS) && !defined(lint) | 10 | #if defined(LIBC_SCCS) && !defined(lint) |
11 | static char rcsid[] = "$OpenBSD: malloc.c,v 1.20 1997/01/05 22:12:48 tholo Exp $"; | 11 | static char rcsid[] = "$OpenBSD: malloc.c,v 1.21 1997/02/09 22:55:38 tholo Exp $"; |
12 | #endif /* LIBC_SCCS and not lint */ | 12 | #endif /* LIBC_SCCS and not lint */ |
13 | 13 | ||
14 | /* | 14 | /* |
@@ -84,7 +84,7 @@ struct pginfo { | |||
84 | u_short shift; /* How far to shift for this size chunks */ | 84 | u_short shift; /* How far to shift for this size chunks */ |
85 | u_short free; /* How many free chunks */ | 85 | u_short free; /* How many free chunks */ |
86 | u_short total; /* How many chunk */ | 86 | u_short total; /* How many chunk */ |
87 | u_int bits[1]; /* Which chunks are free */ | 87 | u_long bits[1]; /* Which chunks are free */ |
88 | }; | 88 | }; |
89 | 89 | ||
90 | /* | 90 | /* |
@@ -100,10 +100,10 @@ struct pgfree { | |||
100 | }; | 100 | }; |
101 | 101 | ||
102 | /* | 102 | /* |
103 | * How many bits per u_int in the bitmap. | 103 | * How many bits per u_long in the bitmap. |
104 | * Change only if not 8 bits/byte | 104 | * Change only if not 8 bits/byte |
105 | */ | 105 | */ |
106 | #define MALLOC_BITS (8*sizeof(u_int)) | 106 | #define MALLOC_BITS (8*sizeof(u_long)) |
107 | 107 | ||
108 | /* | 108 | /* |
109 | * Magic values to put in the page_directory | 109 | * Magic values to put in the page_directory |
@@ -127,11 +127,11 @@ struct pgfree { | |||
127 | #endif | 127 | #endif |
128 | 128 | ||
129 | #if !defined(malloc_pagesize) | 129 | #if !defined(malloc_pagesize) |
130 | #define malloc_pagesize (1U<<malloc_pageshift) | 130 | #define malloc_pagesize (1UL<<malloc_pageshift) |
131 | #endif | 131 | #endif |
132 | 132 | ||
133 | #if ((1<<malloc_pageshift) != malloc_pagesize) | 133 | #if ((1UL<<malloc_pageshift) != malloc_pagesize) |
134 | #error "(1<<malloc_pageshift) != malloc_pagesize" | 134 | #error "(1UL<<malloc_pageshift) != malloc_pagesize" |
135 | #endif | 135 | #endif |
136 | 136 | ||
137 | #ifndef malloc_maxsize | 137 | #ifndef malloc_maxsize |
@@ -437,7 +437,7 @@ malloc_init () | |||
437 | p = b; | 437 | p = b; |
438 | } else if (i == 1 && issetugid() == 0) { | 438 | } else if (i == 1 && issetugid() == 0) { |
439 | p = getenv("MALLOC_OPTIONS"); | 439 | p = getenv("MALLOC_OPTIONS"); |
440 | } else { | 440 | } else if (i == 2) { |
441 | p = malloc_options; | 441 | p = malloc_options; |
442 | } | 442 | } |
443 | for (; p && *p; p++) { | 443 | for (; p && *p; p++) { |
@@ -650,15 +650,15 @@ malloc_make_chunks(bits) | |||
650 | 650 | ||
651 | /* Do a bunch at a time */ | 651 | /* Do a bunch at a time */ |
652 | for(;k-i >= MALLOC_BITS; i += MALLOC_BITS) | 652 | for(;k-i >= MALLOC_BITS; i += MALLOC_BITS) |
653 | bp->bits[i / MALLOC_BITS] = (u_long)~0; | 653 | bp->bits[i / MALLOC_BITS] = ~0UL; |
654 | 654 | ||
655 | for(; i < k; i++) | 655 | for(; i < k; i++) |
656 | bp->bits[i/MALLOC_BITS] |= 1<<(i%MALLOC_BITS); | 656 | bp->bits[i/MALLOC_BITS] |= 1UL<<(i%MALLOC_BITS); |
657 | 657 | ||
658 | if (bp == bp->page) { | 658 | if (bp == bp->page) { |
659 | /* Mark the ones we stole for ourselves */ | 659 | /* Mark the ones we stole for ourselves */ |
660 | for(i=0;l > 0;i++) { | 660 | for(i=0;l > 0;i++) { |
661 | bp->bits[i/MALLOC_BITS] &= ~(1<<(i%MALLOC_BITS)); | 661 | bp->bits[i/MALLOC_BITS] &= ~(1UL<<(i%MALLOC_BITS)); |
662 | bp->free--; | 662 | bp->free--; |
663 | bp->total--; | 663 | bp->total--; |
664 | l -= (1 << bits); | 664 | l -= (1 << bits); |
@@ -685,10 +685,10 @@ malloc_bytes(size) | |||
685 | size_t size; | 685 | size_t size; |
686 | { | 686 | { |
687 | int i,j; | 687 | int i,j; |
688 | u_int u; | 688 | u_long u; |
689 | struct pginfo *bp; | 689 | struct pginfo *bp; |
690 | int k; | 690 | int k; |
691 | u_int *lp; | 691 | u_long *lp; |
692 | 692 | ||
693 | /* Don't bother with anything less than this */ | 693 | /* Don't bother with anything less than this */ |
694 | if (size < malloc_minsize) | 694 | if (size < malloc_minsize) |
@@ -835,7 +835,7 @@ irealloc(ptr, size) | |||
835 | i = ((u_long)ptr & malloc_pagemask) >> (*mp)->shift; | 835 | i = ((u_long)ptr & malloc_pagemask) >> (*mp)->shift; |
836 | 836 | ||
837 | /* Verify that it isn't a free chunk already */ | 837 | /* Verify that it isn't a free chunk already */ |
838 | if ((*mp)->bits[i/MALLOC_BITS] & (1<<(i%MALLOC_BITS))) { | 838 | if ((*mp)->bits[i/MALLOC_BITS] & (1UL<<(i%MALLOC_BITS))) { |
839 | wrtwarning("chunk is already free.\n"); | 839 | wrtwarning("chunk is already free.\n"); |
840 | return 0; | 840 | return 0; |
841 | } | 841 | } |
@@ -1025,7 +1025,7 @@ free_bytes(ptr, index, info) | |||
1025 | return; | 1025 | return; |
1026 | } | 1026 | } |
1027 | 1027 | ||
1028 | if (info->bits[i/MALLOC_BITS] & (1<<(i%MALLOC_BITS))) { | 1028 | if (info->bits[i/MALLOC_BITS] & (1UL<<(i%MALLOC_BITS))) { |
1029 | wrtwarning("chunk is already free.\n"); | 1029 | wrtwarning("chunk is already free.\n"); |
1030 | return; | 1030 | return; |
1031 | } | 1031 | } |
@@ -1033,7 +1033,7 @@ free_bytes(ptr, index, info) | |||
1033 | if (malloc_junk) | 1033 | if (malloc_junk) |
1034 | memset(ptr, SOME_JUNK, info->size); | 1034 | memset(ptr, SOME_JUNK, info->size); |
1035 | 1035 | ||
1036 | info->bits[i/MALLOC_BITS] |= 1<<(i%MALLOC_BITS); | 1036 | info->bits[i/MALLOC_BITS] |= 1UL<<(i%MALLOC_BITS); |
1037 | info->free++; | 1037 | info->free++; |
1038 | 1038 | ||
1039 | mp = page_dir + info->shift; | 1039 | mp = page_dir + info->shift; |