Home | History | Annotate | Line # | Download | only in common
      1  1.1  itohy /*
      2  1.1  itohy  *	definitions for exec_kernel()
      3  1.1  itohy  *
      4  1.5  itohy  *	written by ITOH Yasufumi
      5  1.1  itohy  *	public domain
      6  1.1  itohy  *
      7  1.5  itohy  *	$NetBSD: execkern.h,v 1.5 2011/02/21 02:31:58 itohy Exp $
      8  1.1  itohy  */
      9  1.1  itohy 
     10  1.1  itohy #ifndef X68K_BOOT_EXECKERN_H
     11  1.1  itohy #define X68K_BOOT_EXECKERN_H
     12  1.1  itohy 
     13  1.2  isaki /*
     14  1.2  isaki  * Max number of ``sections''.
     15  1.2  isaki  * Currently this includes: .text, .data, size sym, Elf32_Ehdr, Elf32_Shdr x 4,
     16  1.2  isaki  *	.shstrtab, .symtab, .strtab, .stab
     17  1.2  isaki  */
     18  1.2  isaki #define XK_NSEC			12
     19  1.2  isaki 
     20  1.2  isaki #ifndef __ASSEMBLER__
     21  1.2  isaki 
     22  1.2  isaki #include <sys/types.h>
     23  1.2  isaki #include <sys/exec_elf.h>
     24  1.2  isaki 
     25  1.1  itohy struct execkern_arg {
     26  1.2  isaki 	/* Don't change this structure (see exec_sub.c). */
     27  1.2  isaki 	u_long		load_addr;	/* text start address */
     28  1.2  isaki 
     29  1.2  isaki 	struct execkern_section {
     30  1.2  isaki 		void	*sec_image;	/* section image source address */
     31  1.2  isaki 		u_long	sec_size;	/* section size */
     32  1.2  isaki 		u_long	sec_pad;	/* zero fill size after the image */
     33  1.2  isaki 	} sec[XK_NSEC];
     34  1.2  isaki 
     35  1.1  itohy 	unsigned	d5;		/* reserved */
     36  1.1  itohy 	int		rootdev;
     37  1.1  itohy 	u_long		boothowto;
     38  1.1  itohy 	u_long		entry_addr;
     39  1.2  isaki 	/* end of "Don't change this" */
     40  1.2  isaki 
     41  1.2  isaki 	int		elfsymsiz;
     42  1.2  isaki 	Elf32_Ehdr	ehdr;		/* saved ELF header */
     43  1.2  isaki 
     44  1.2  isaki #define SHSTRTAB_FAKE	"\0.shstrtab\0.symtab\0.strtab\0.stab"
     45  1.2  isaki #define SIZE_SHSTRTAB_FAKE_WITH_STAB	33	/* sizeof SHSTRTAB_FAKE */
     46  1.2  isaki #define SIZE_SHSTRTAB_FAKE		27	/*   - sizeof ".stab" */
     47  1.2  isaki #define SHNAME_OFF_SHSTRTAB		1
     48  1.2  isaki #define SHNAME_OFF_SYMTAB		11
     49  1.2  isaki #define SHNAME_OFF_STRTAB		19
     50  1.2  isaki #define SHNAME_OFF_STAB			27
     51  1.2  isaki 	char shstrtab_fake[SIZE_SHSTRTAB_FAKE_WITH_STAB];
     52  1.1  itohy };
     53  1.1  itohy 
     54  1.4    dsl int xk_load(struct execkern_arg *, void *, u_long);
     55  1.4    dsl void __dead exec_kernel(struct execkern_arg *);
     56  1.2  isaki 
     57  1.2  isaki #endif /* __ASSEMBLER__ */
     58  1.1  itohy 
     59  1.1  itohy #endif /* X68K_BOOT_EXECKERN_H */
     60