Date: Thu, 14 Jul 2011 06:27:50 +0000 (UTC) From: "Jayachandran C." <jchandra@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r223999 - user/jchandra/mips-xlp-support/sys/mips/mips Message-ID: <201107140627.p6E6RoUt016907@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: jchandra Date: Thu Jul 14 06:27:50 2011 New Revision: 223999 URL: http://svn.freebsd.org/changeset/base/223999 Log: Make int to ptr conversion a macro. Modified: user/jchandra/mips-xlp-support/sys/mips/mips/elf_trampoline.c Modified: user/jchandra/mips-xlp-support/sys/mips/mips/elf_trampoline.c ============================================================================== --- user/jchandra/mips-xlp-support/sys/mips/mips/elf_trampoline.c Thu Jul 14 05:49:35 2011 (r223998) +++ user/jchandra/mips-xlp-support/sys/mips/mips/elf_trampoline.c Thu Jul 14 06:27:50 2011 (r223999) @@ -90,6 +90,12 @@ bzero(void *addr, size_t count) } /* + * Convert number to pointer, truncate on 64->32 case, sign extend + * in 32->64 case + */ +#define mkptr(x) ((void *)(intptr_t)(int)(x)) + +/* * Relocate PT_LOAD segements of kernel ELF image to their respective * virtual addresses and return entry point */ @@ -118,7 +124,7 @@ load_kernel(void * kstart) #else eh = (Elf32_Ehdr *)kstart; #endif - entry_point = (void*)(intptr_t)(int)eh->e_entry; + entry_point = mkptr(eh->e_entry); memcpy(phdr, (void *)(kstart + eh->e_phoff), eh->e_phnum * sizeof(phdr[0])); @@ -149,12 +155,12 @@ load_kernel(void * kstart) if (phdr[i].p_type != PT_LOAD) continue; - memcpy((void *)(intptr_t)(int)(phdr[i].p_vaddr), + memcpy(mkptr(phdr[i].p_vaddr), (void*)(kstart + phdr[i].p_offset), phdr[i].p_filesz); /* Clean space from oversized segments, eg: bss. */ if (phdr[i].p_filesz < phdr[i].p_memsz) - bzero((void *)(intptr_t)(int)(phdr[i].p_vaddr + phdr[i].p_filesz), + bzero(mkptr(phdr[i].p_vaddr + phdr[i].p_filesz), phdr[i].p_memsz - phdr[i].p_filesz); if (loadend < phdr[i].p_vaddr + phdr[i].p_memsz)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201107140627.p6E6RoUt016907>