The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/arm/include/machdep.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /* $NetBSD: machdep.h,v 1.7 2002/02/21 02:52:21 thorpej Exp $ */
    2 /* $FreeBSD$ */
    3 
    4 #ifndef _MACHDEP_BOOT_MACHDEP_H_
    5 #define _MACHDEP_BOOT_MACHDEP_H_
    6 
    7 /* Structs that need to be initialised by initarm */
    8 #if __ARM_ARCH >= 6
    9 extern vm_offset_t irqstack;
   10 extern vm_offset_t undstack;
   11 extern vm_offset_t abtstack;
   12 #else
   13 struct pv_addr;
   14 extern struct pv_addr irqstack;
   15 extern struct pv_addr undstack;
   16 extern struct pv_addr abtstack;
   17 #endif
   18 
   19 /* Define various stack sizes in pages */
   20 #define IRQ_STACK_SIZE  1
   21 #define ABT_STACK_SIZE  1
   22 #define UND_STACK_SIZE  1
   23 
   24 /* misc prototypes used by the many arm machdeps */
   25 struct trapframe;
   26 void arm_lock_cache_line(vm_offset_t);
   27 void init_proc0(vm_offset_t kstack);
   28 void halt(void);
   29 void abort_handler(struct trapframe *, int );
   30 void set_stackptrs(int cpu);
   31 void undefinedinstruction_bounce(struct trapframe *);
   32 
   33 /* Early boot related helper functions */
   34 struct arm_boot_params;
   35 vm_offset_t default_parse_boot_param(struct arm_boot_params *abp);
   36 vm_offset_t fake_preload_metadata(struct arm_boot_params *abp,
   37     void *dtb_ptr, size_t dtb_size);
   38 vm_offset_t parse_boot_param(struct arm_boot_params *abp);
   39 void arm_parse_fdt_bootargs(void);
   40 void arm_print_kenv(void);
   41 
   42 void arm_generic_initclocks(void);
   43 int arm_get_vfpstate(struct thread *td, void *args);
   44 
   45 /* Board-specific attributes */
   46 void board_set_serial(uint64_t);
   47 void board_set_revision(uint32_t);
   48 
   49 int arm_predict_branch(void *, u_int, register_t, register_t *,
   50     u_int (*)(void*, int), u_int (*)(void*, vm_offset_t, u_int*));
   51 
   52 #ifdef PLATFORM
   53 typedef void delay_func(int, void *);
   54 void arm_set_delay(delay_func *, void *);
   55 #endif
   56 
   57 #ifdef EFI
   58 struct efi_map_header;
   59 struct mem_region;
   60 void arm_add_efi_map_entries(struct efi_map_header *efihdr,
   61     struct mem_region *mr, int *mrcnt);
   62 #endif
   63 
   64 /*
   65  * Symbols created by ldscript.arm which are accessible in the kernel as global
   66  * symbols. They have uint8 type because they mark the byte location where the
   67  * corresponding data starts or ends (in the end case, it's the next byte
   68  * following the data, so the data size is end-start).  These are listed below
   69  * in the order they occur within the kernel (i.e., the address of each variable
   70  * should be greater than any of the ones before it).
   71  */
   72 extern uint8_t _start;          /* Kernel entry point in locore.S */
   73 extern uint8_t _etext;          /* text segment end */
   74 extern uint8_t _extab_start;    /* unwind table start */
   75 extern uint8_t _exidx_start;    /* unwind index start */
   76 extern uint8_t _exidx_end;      /* unwind index end */
   77 extern uint8_t _start_ctors;    /* ctors data start */
   78 extern uint8_t _stop_ctors;     /* ctors data end */
   79 extern uint8_t _edata;          /* data segment end */
   80 extern uint8_t __bss_start;     /* bss segment start */
   81 extern uint8_t _ebss;           /* bss segment end */
   82 extern uint8_t _end;            /* End of kernel (text+ctors+unwind+data+bss) */
   83 
   84 #endif /* !_MACHINE_MACHDEP_H_ */

Cache object: 86d96df7d55240faf3d11009e05e77ba


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.