processor.h
来自「基于组件方式开发操作系统的OSKIT源代码」· C头文件 代码 · 共 102 行
H
102 行
/* * include/asm-arm/processor.h * * Copyright (C) 1995 Russell King */#ifndef __ASM_ARM_PROCESSOR_H#define __ASM_ARM_PROCESSOR_H#define FP_SIZE 35struct fp_hard_struct { unsigned int save[FP_SIZE]; /* as yet undefined */};struct fp_soft_struct { unsigned int save[FP_SIZE]; /* undefined information */};union fp_state { struct fp_hard_struct hard; struct fp_soft_struct soft;};typedef unsigned long mm_segment_t; /* domain register */#ifdef __KERNEL__#include <asm/assembler.h> #define NR_DEBUGS 5#include <asm/arch/processor.h>#include <asm/proc/processor.h>struct thread_struct { unsigned long address; /* Address of fault */ unsigned long trap_no; /* Trap number */ unsigned long error_code; /* Error code of trap */ union fp_state fpstate; /* FPE save state */ unsigned long debug[NR_DEBUGS]; /* Debug/ptrace */ struct context_save_struct *save; /* context save */ unsigned long memmap; /* page tables */ EXTRA_THREAD_STRUCT};#define INIT_MMAP \{ &init_mm, 0, 0, NULL, PAGE_SHARED, VM_READ | VM_WRITE | VM_EXEC, 1, NULL, NULL }#define INIT_TSS { \ 0, \ 0, \ 0, \ { { { 0, }, }, }, \ { 0, }, \ (struct context_save_struct *)0, \ SWAPPER_PG_DIR \ EXTRA_THREAD_STRUCT_INIT \}/* * Return saved PC of a blocked thread. */extern __inline__ unsigned long thread_saved_pc(struct thread_struct *t){ return t->save ? t->save->pc & ~PCMASK : 0;}extern __inline__ unsigned long get_css_fp(struct thread_struct *t){ return t->save ? t->save->fp : 0;}asmlinkage void ret_from_sys_call(void) __asm__("ret_from_sys_call");extern __inline__ void init_thread_css(struct context_save_struct *save){ *save = INIT_CSS; save->pc |= (unsigned long)ret_from_sys_call;}/* Forward declaration, a strange C thing */struct mm_struct;/* Free all resources held by a thread. */extern void release_thread(struct task_struct *);/* Copy and release all segment info associated with a VM */#define copy_segments(nr, tsk, mm) do { } while (0)#define release_segments(mm) do { } while (0)#define forget_segments() do { } while (0)extern struct task_struct *alloc_task_struct(void);extern void free_task_struct(struct task_struct *);#define init_task (init_task_union.task)#define init_stack (init_task_union.stack)#endif#endif /* __ASM_ARM_PROCESSOR_H */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?