uint32_t * buffer, uint32_t ppnum)
{
uint64_t dst = ptoa_64(ppnum);
- uint8_t scratch[WKdm_SCRATCH_BUF_SIZE] __attribute__ ((aligned (16)));
+ uint8_t scratch[WKdm_SCRATCH_BUF_SIZE_INTERNAL] __attribute__ ((aligned (16)));
if (compressedSize != PAGE_SIZE)
{
dst = pal_hib_map(DEST_COPY_AREA, dst);
if (compressedSize != 4) WKdm_decompress_new((WK_word*) src, (WK_word*)(uintptr_t)dst, (WK_word*) &scratch[0], compressedSize);
- else {
- int i;
- uint32_t *s, *d;
-
- s = src;
- d = (uint32_t *)(uintptr_t)dst;
+ else
+ {
+ size_t i;
+ uint32_t s, *d;
- for (i = 0; i < (int)(PAGE_SIZE / sizeof(int32_t)); i++)
- *d++ = *s;
+ s = *src;
+ d = (uint32_t *)(uintptr_t)dst;
+ if (!s) bzero((void *) dst, PAGE_SIZE);
+ else for (i = 0; i < (PAGE_SIZE / sizeof(int32_t)); i++) *d++ = s;
}
}
else
uint64_t timeStart;
timeStart = rdtsc64();
- assert_static(sizeof(IOHibernateImageHeader) == 512);
+ static_assert(sizeof(IOHibernateImageHeader) == 512);
headerPhys = ptoa_64(p1);