Files | |
file | arch.h |
file | arg.h |
file | regname.h |
file | asm.h |
file | atomic.h |
file | barrier.h |
file | boot.h |
file | byteorder.h |
file | context.h |
file | cpu.h |
file | cpuid.h |
file | elf.h |
file | exception.h |
file | faddr.h |
file | fpu_context.h |
file | memstr.h |
file | types.h |
file | cpu.c |
file | ppc64.c |
Data Structures | |
struct | utask_t |
struct | taskmap_t |
struct | memzone_t |
struct | memmap_t |
struct | screen_t |
struct | bootinfo_t |
struct | context |
struct | cpu_arch |
struct | cpu_info |
struct | istate |
struct | fpu_context |
struct | pte_t |
Defines | |
#define | cr0 0 |
#define | cr1 1 |
#define | cr2 2 |
#define | cr3 3 |
#define | cr4 4 |
#define | cr5 5 |
#define | cr6 6 |
#define | cr7 7 |
#define | r0 0 |
#define | r1 1 |
#define | r2 2 |
#define | r3 3 |
#define | r4 4 |
#define | r5 5 |
#define | r6 6 |
#define | r7 7 |
#define | r8 8 |
#define | r9 9 |
#define | r10 10 |
#define | r11 11 |
#define | r12 12 |
#define | r13 13 |
#define | r14 14 |
#define | r15 15 |
#define | r16 16 |
#define | r17 17 |
#define | r18 18 |
#define | r19 19 |
#define | r20 20 |
#define | r21 21 |
#define | r22 22 |
#define | r23 23 |
#define | r24 24 |
#define | r25 25 |
#define | r26 26 |
#define | r27 27 |
#define | r28 28 |
#define | r29 29 |
#define | r30 30 |
#define | r31 31 |
#define | sp 1 |
#define | fr0 0 |
#define | fr1 1 |
#define | fr2 2 |
#define | fr3 3 |
#define | fr4 4 |
#define | fr5 5 |
#define | fr6 6 |
#define | fr7 7 |
#define | fr8 8 |
#define | fr9 9 |
#define | fr10 10 |
#define | fr11 11 |
#define | fr12 12 |
#define | fr13 13 |
#define | fr14 14 |
#define | fr15 15 |
#define | fr16 16 |
#define | fr17 17 |
#define | fr18 18 |
#define | fr19 19 |
#define | fr20 20 |
#define | fr21 21 |
#define | fr22 22 |
#define | fr23 23 |
#define | fr24 24 |
#define | fr25 25 |
#define | fr26 26 |
#define | fr27 27 |
#define | fr28 28 |
#define | fr29 29 |
#define | fr30 30 |
#define | fr31 31 |
#define | vr0 0 |
#define | vr1 1 |
#define | vr2 2 |
#define | vr3 3 |
#define | vr4 4 |
#define | vr5 5 |
#define | vr6 6 |
#define | vr7 7 |
#define | vr8 8 |
#define | vr9 9 |
#define | vr10 10 |
#define | vr11 11 |
#define | vr12 12 |
#define | vr13 13 |
#define | vr14 14 |
#define | vr15 15 |
#define | vr16 16 |
#define | vr17 17 |
#define | vr18 18 |
#define | vr19 19 |
#define | vr20 20 |
#define | vr21 21 |
#define | vr22 22 |
#define | vr23 23 |
#define | vr24 24 |
#define | vr25 25 |
#define | vr26 26 |
#define | vr27 27 |
#define | vr28 28 |
#define | vr29 29 |
#define | vr30 30 |
#define | vr31 31 |
#define | evr0 0 |
#define | evr1 1 |
#define | evr2 2 |
#define | evr3 3 |
#define | evr4 4 |
#define | evr5 5 |
#define | evr6 6 |
#define | evr7 7 |
#define | evr8 8 |
#define | evr9 9 |
#define | evr10 10 |
#define | evr11 11 |
#define | evr12 12 |
#define | evr13 13 |
#define | evr14 14 |
#define | evr15 15 |
#define | evr16 16 |
#define | evr17 17 |
#define | evr18 18 |
#define | evr19 19 |
#define | evr20 20 |
#define | evr21 21 |
#define | evr22 22 |
#define | evr23 23 |
#define | evr24 24 |
#define | evr25 25 |
#define | evr26 26 |
#define | evr27 27 |
#define | evr28 28 |
#define | evr29 29 |
#define | evr30 30 |
#define | evr31 31 |
#define | xer 1 |
#define | lr 8 |
#define | ctr 9 |
#define | dec 22 |
#define | sdr1 25 |
#define | srr0 26 |
#define | srr1 27 |
#define | sprg0 272 |
#define | sprg1 273 |
#define | sprg2 274 |
#define | sprg3 275 |
#define | prv 287 |
#define | hid0 1008 |
#define | msr_ir (1 << 4) |
#define | msr_dr (1 << 5) |
#define | msr_pr (1 << 14) |
#define | msr_ee (1 << 15) |
#define | hid0_ice (1 << 15) |
#define | hid0_dce (1 << 14) |
#define | hid0_icfi (1 << 11) |
#define | hid0_dci (1 << 10) |
#define | CS_ENTER_BARRIER() asm volatile ("" ::: "memory") |
#define | CS_LEAVE_BARRIER() asm volatile ("" ::: "memory") |
#define | memory_barrier() asm volatile ("sync" ::: "memory") |
#define | read_barrier() asm volatile ("sync" ::: "memory") |
#define | write_barrier() asm volatile ("eieio" ::: "memory") |
#define | BOOT_OFFSET 0x4000 |
#define | TEMP_STACK_SIZE 0x100 |
#define | TASKMAP_MAX_RECORDS 32 |
#define | MEMMAP_MAX_RECORDS 32 |
#define | BIG_ENDIAN |
#define | SP_DELTA 16 |
#define | ELF_MACHINE EM_PPC64 |
#define | ELF_DATA_ENCODING ELFDATA2MSB |
#define | ELF_CLASS ELFCLASS32 |
#define | FADDR(fptr) ((__address) (fptr)) |
#define | memcpy(dst, src, cnt) __builtin_memcpy((dst), (src), (cnt)) |
#define | NULL 0 |
Typedefs | |
typedef signed char | __s8 |
typedef signed short | __s16 |
typedef signed int | __s32 |
typedef signed long | __s64 |
typedef unsigned char | __u8 |
typedef unsigned short | __u16 |
typedef unsigned int | __u32 |
typedef unsigned long | __u64 |
typedef __u64 | __address |
typedef __u64 | pfn_t |
typedef __u64 | ipl_t |
typedef __u64 | __native |
Functions | |
static ipl_t | interrupts_enable (void) |
static ipl_t | interrupts_disable (void) |
static void | interrupts_restore (ipl_t ipl) |
static ipl_t | interrupts_read (void) |
static __address | get_stack_base (void) |
static void | cpu_sleep (void) |
static void | cpu_halt (void) |
void | asm_delay_loop (__u32 t) |
void | userspace_asm (__address uspace_uarg, __address stack, __address entry) |
static void | atomic_inc (atomic_t *val) |
static void | atomic_dec (atomic_t *val) |
static long | atomic_postinc (atomic_t *val) |
static long | atomic_postdec (atomic_t *val) |
static long | atomic_preinc (atomic_t *val) |
static long | atomic_predec (atomic_t *val) |
static __u64 | __u64_le2host (__u64 n) |
static __native | __native_le2host (__native n) |
static void | cpu_version (struct cpu_info *info) |
static void | istate_set_retaddr (istate_t *istate, __address retaddr) |
static int | istate_from_uspace (istate_t *istate) |
static __native | istate_get_pc (istate_t *istate) |
void | memsetw (__address dst, size_t cnt, __u16 x) |
void | memsetb (__address dst, size_t cnt, __u8 x) |
int | memcmp (__address src, __address dst, int cnt) |
void | cpu_arch_init (void) |
void | cpu_identify (void) |
void | cpu_print_report (cpu_t *m) |
void | arch_pre_main (void) |
void | arch_pre_mm_init (void) |
void | arch_post_mm_init (void) |
void | arch_pre_smp_init (void) |
void | arch_post_smp_init (void) |
void | calibrate_delay_loop (void) |
void | userspace (uspace_arg_t *kernel_uarg) |
void | arch_grab_console (void) |
void | arch_release_console (void) |
Variables | |
bootinfo_t | bootinfo |
context | packed |
cpu_info | packed |
fpu_context | packed |
bootinfo_t | bootinfo |
|
Definition at line 41 of file byteorder.h. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Definition at line 38 of file barrier.h. Referenced by spinlock_trylock(). |
|
Definition at line 39 of file barrier.h. Referenced by spinlock_unlock(). |
|
|
|
|
|
Definition at line 40 of file elf.h. Referenced by elf_load(). |
|
Definition at line 39 of file elf.h. Referenced by elf_load(). |
|
Definition at line 38 of file elf.h. Referenced by elf_load(). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Definition at line 40 of file faddr.h. Referenced by main_ap(), scheduler(), and thread_create(). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Definition at line 38 of file memstr.h. Referenced by _bubblesort(), _qsort(), clear_screen(), ptl0_create(), scroll_screen(), sys_ipc_answer(), sys_ipc_answer_fast(), thread_create(), and vsnprintf_write(). |
|
|
|
Definition at line 41 of file barrier.h. Referenced by preemption_disable(), and preemption_enable(). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Definition at line 42 of file context.h. Referenced by before_thread_runs_arch(), and userspace(). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Definition at line 43 of file barrier.h. Referenced by clock_update_counters(). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Convert little-endian __native to host __native Convert little-endian __native parameter to host endianess.
Definition at line 58 of file byteorder.h. |
|
Definition at line 43 of file byteorder.h. References __u64_byteorder_swap(). Referenced by get_symbol_addr(), get_symtab_entry(), and symtab_print_search(). Here is the call graph for this function: |
|
Acquire console back for kernel Definition at line 103 of file ppc64.c. Referenced by sys_debug_enable_console(). |
|
Definition at line 68 of file ppc64.c. References screen_t::addr, bootinfo, screen_t::bpp, config, config_t::cpu_active, fb_init(), screen_t::height, screen_t::scanline, bootinfo_t::screen, screen_t::width, and zone_merge_all(). Referenced by main_ap(), and main_bsp_separated_stack(). Here is the call graph for this function: |
|
|
|
Definition at line 46 of file ppc64.c. References utask_t::addr, init_task_t::addr, bootinfo, init_t::cnt, taskmap_t::count, init, utask_t::size, init_task_t::size, bootinfo_t::taskmap, taskmap_t::tasks, and init_t::tasks. |
|
Definition at line 59 of file ppc64.c. References interrupt_init(), and start_decrementer(). Referenced by main_ap(), and main_bsp_separated_stack(). Here is the call graph for this function: |
|
Definition at line 78 of file ppc64.c. References memory_print_map(). Referenced by main_bsp_separated_stack(). Here is the call graph for this function: |
|
Return console to userspace Definition at line 109 of file ppc64.c. Referenced by cmd_continue(). |
|
Referenced by delay(). |
|
Definition at line 54 of file atomic.h. References atomic::count. Referenced by _slab_free(), atomic_postdec(), atomic_predec(), check_call_limit(), get_mag_from_cache(), ipc_wait_for_call(), kcpulb(), magazine_destroy(), magazine_obj_get(), slab_space_free(), and sys_ipc_wait_for_call(). |
|
Definition at line 38 of file atomic.h. References atomic::count. Referenced by _ipc_call(), atomic_postinc(), atomic_preinc(), ipc_backsend_err(), magazine_obj_put(), put_mag_to_cache(), slab_alloc(), slab_space_alloc(), and thread_ready(). |
|
Definition at line 76 of file atomic.h. References atomic_dec(), and atomic::count. Here is the call graph for this function: |
|
Definition at line 70 of file atomic.h. References atomic_inc(), and atomic::count. Here is the call graph for this function: |
|
Definition at line 88 of file atomic.h. References atomic_dec(), and atomic::count. Here is the call graph for this function: |
|
Definition at line 82 of file atomic.h. References atomic_inc(), and atomic::count. Referenced by check_call_limit(), ipc_irq_send_msg(), and ipc_irq_send_notif(). Here is the call graph for this function: |
|
Definition at line 87 of file ppc64.c. Referenced by main_ap(), and main_bsp_separated_stack(). |
|
|
|
|
|
Definition at line 48 of file cpu.c. References CPU, cpu_version(), and info. Here is the call graph for this function: |
|
Definition at line 57 of file cpu.c. References cpu::arch, cpu::id, printf(), cpu_arch::revision, and cpu_arch::version. Referenced by cpu_list(). Here is the call graph for this function: |
|
Definition at line 143 of file asm.h. Referenced by find_best_thread(). |
|
Definition at line 45 of file cpuid.h. Referenced by cpu_identify(). |
|
Return base address of current stack. Return the base address of the current stack. The stack is assumed to be STACK_SIZE bytes long. The stack must start on page boundary. Definition at line 131 of file asm.h. References STACK_SIZE. |
|
Disable interrupts. Disable interrupts and return previous value of EE.
|
|
Enable interrupts. Enable interrupts and return previous value of EE.
|
|
Return interrupt priority level. Return EE.
|
|
Restore interrupt priority level. Restore EE.
|
|
Return true if exception happened while in userspace Definition at line 91 of file exception.h. References panic. Referenced by exc_dispatch(). |
|
Definition at line 96 of file exception.h. References istate::pc. |
|
Definition at line 85 of file exception.h. References istate::pc. |
|
|
|
|
|
|
Switch to user-space (CPU user priviledge level) Definition at line 91 of file ppc64.c. References SP_DELTA, THREAD_STACK_SIZE, userspace_asm(), uspace_arg::uspace_entry, uspace_arg::uspace_stack, and uspace_arg::uspace_uarg. Referenced by uinit(). Here is the call graph for this function: |
|
Referenced by userspace(). |
|
Definition at line 44 of file ppc64.c. Referenced by arch_post_mm_init(), arch_pre_main(), frame_arch_init(), get_memory_size(), and memory_print_map(). |
|
Definition at line 44 of file ppc64.c. Referenced by arch_post_mm_init(), arch_pre_main(), frame_arch_init(), get_memory_size(), and memory_print_map(). |
|
|
|
|
|
|