elf_freebsd.c (100318) | elf_freebsd.c (114379) |
---|---|
1/*- 2 * Copyright (c) 2001 Benno Rice <benno@FreeBSD.org> 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 9 unchanged lines hidden (view full) --- 18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 * | 1/*- 2 * Copyright (c) 2001 Benno Rice <benno@FreeBSD.org> 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 9 unchanged lines hidden (view full) --- 18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 * |
26 * $FreeBSD: head/sys/boot/ofw/libofw/elf_freebsd.c 100318 2002-07-18 12:39:02Z benno $ | 26 * $FreeBSD: head/sys/boot/ofw/libofw/elf_freebsd.c 114379 2003-05-01 03:56:30Z peter $ |
27 */ 28 29#include <sys/param.h> 30#include <sys/linker.h> 31 32#include <machine/metadata.h> 33#include <machine/elf.h> 34 35#include <stand.h> 36 37#include "bootstrap.h" 38#include "libofw.h" 39#include "openfirm.h" 40 41extern char end[]; 42extern vm_offset_t reloc; /* From <arch>/conf.c */ 43 44int | 27 */ 28 29#include <sys/param.h> 30#include <sys/linker.h> 31 32#include <machine/metadata.h> 33#include <machine/elf.h> 34 35#include <stand.h> 36 37#include "bootstrap.h" 38#include "libofw.h" 39#include "openfirm.h" 40 41extern char end[]; 42extern vm_offset_t reloc; /* From <arch>/conf.c */ 43 44int |
45ofw_elf_loadfile(char *filename, vm_offset_t dest, | 45__elfN(ofw_loadfile)(char *filename, vm_offset_t dest, |
46 struct preloaded_file **result) 47{ 48 int r; 49 void *addr; 50 | 46 struct preloaded_file **result) 47{ 48 int r; 49 void *addr; 50 |
51 r = elf_loadfile(filename, dest, result); | 51 r = __elfN(loadfile)(filename, dest, result); |
52 if (r != 0) 53 return (r); 54 55 return (0); 56} 57 58int | 52 if (r != 0) 53 return (r); 54 55 return (0); 56} 57 58int |
59ofw_elf_exec(struct preloaded_file *fp) | 59__elfN(ofw_exec)(struct preloaded_file *fp) |
60{ 61 struct file_metadata *fmp; 62 vm_offset_t mdp; 63 Elf_Ehdr *e; 64 int error; 65 66 if ((fmp = file_findmetadata(fp, MODINFOMD_ELFHDR)) == NULL) { 67 return(EFTYPE); --- 10 unchanged lines hidden (view full) --- 78 OF_chain((void *)reloc, end - (char *)reloc, (void *)e->e_entry, 79 (void *)mdp, sizeof(mdp)); 80 81 panic("exec returned"); 82} 83 84struct file_format ofw_elf = 85{ | 60{ 61 struct file_metadata *fmp; 62 vm_offset_t mdp; 63 Elf_Ehdr *e; 64 int error; 65 66 if ((fmp = file_findmetadata(fp, MODINFOMD_ELFHDR)) == NULL) { 67 return(EFTYPE); --- 10 unchanged lines hidden (view full) --- 78 OF_chain((void *)reloc, end - (char *)reloc, (void *)e->e_entry, 79 (void *)mdp, sizeof(mdp)); 80 81 panic("exec returned"); 82} 83 84struct file_format ofw_elf = 85{ |
86 ofw_elf_loadfile, 87 ofw_elf_exec | 86 __elfN(ofw_loadfile), 87 __elfN(ofw_exec) |
88}; | 88}; |