Mercurial > emacs
comparison src/w32heap.c @ 18506:bcc706aedcea
Add pragma to force zero initialized
data into .data segment.
author | Geoff Voelker <voelker@cs.washington.edu> |
---|---|
date | Tue, 01 Jul 1997 05:05:45 +0000 |
parents | 36babc489b0c |
children | 16e69fbdbf0f |
comparison
equal
deleted
inserted
replaced
18505:ca4d948da78d | 18506:bcc706aedcea |
---|---|
64 /* Cache page size, allocation unit, processor type, etc. */ | 64 /* Cache page size, allocation unit, processor type, etc. */ |
65 GetSystemInfo (&sysinfo_cache); | 65 GetSystemInfo (&sysinfo_cache); |
66 syspage_mask = sysinfo_cache.dwPageSize - 1; | 66 syspage_mask = sysinfo_cache.dwPageSize - 1; |
67 } | 67 } |
68 | 68 |
69 /* Emulate getpagesize. */ | |
70 int | |
71 getpagesize (void) | |
72 { | |
73 return sysinfo_cache.dwPageSize; | |
74 } | |
75 | |
69 /* Round ADDRESS up to be aligned with ALIGN. */ | 76 /* Round ADDRESS up to be aligned with ALIGN. */ |
70 unsigned char * | 77 unsigned char * |
71 round_to_next (unsigned char *address, unsigned long align) | 78 round_to_next (unsigned char *address, unsigned long align) |
72 { | 79 { |
73 unsigned long tmp; | 80 unsigned long tmp; |
75 tmp = (unsigned long) address; | 82 tmp = (unsigned long) address; |
76 tmp = (tmp + align - 1) / align; | 83 tmp = (tmp + align - 1) / align; |
77 | 84 |
78 return (unsigned char *) (tmp * align); | 85 return (unsigned char *) (tmp * align); |
79 } | 86 } |
87 | |
88 /* Force zero initialized variables to be placed in the .data segment; | |
89 MSVC 5.0 otherwise places them in .bss, which breaks the dumping code. */ | |
90 #pragma data_seg(".data") | |
80 | 91 |
81 /* Info for keeping track of our heap. */ | 92 /* Info for keeping track of our heap. */ |
82 unsigned char *data_region_base = NULL; | 93 unsigned char *data_region_base = NULL; |
83 unsigned char *data_region_end = NULL; | 94 unsigned char *data_region_end = NULL; |
84 unsigned char *real_data_region_end = NULL; | 95 unsigned char *real_data_region_end = NULL; |