ncloader  0.1
 모두 데이타 구조 파일들 함수 변수 타입정의 열거형 타입 열거형 멤버 매크로 그룹들 페이지들
pt_regs 구조체 참조

[Stage 2 Error Code] 더 자세히 ...

#include <x86.h>

데이타 필드

struct {
   unsigned long   edi
 
   unsigned long   esi
 
   unsigned long   ebp
 
   unsigned long   esp
 
   unsigned long   ebx
 
   unsigned long   edx
 
   unsigned long   ecx
 
   unsigned long   eax
 
pushad
 
unsigned short ds
 
unsigned short reserved0
 
unsigned short es
 
unsigned short reserved1
 
unsigned short fs
 
unsigned short reserved2
 
unsigned short gs
 
unsigned short reserved3
 
unsigned long irq
 
unsigned long ecode
 
unsigned long eip
 
unsigned long cs
 
unsigned long eflags
 

상세한 설명

[Stage 2 Error Code]

Thread context 에서 CPU Context 정보를 담는 자료구조로써, x86 CPU 는 Interrupt 가 발생하면, eip, cs, eflags 를 push 한다. 그 이후의 것들은 각 ISR 에 진입하기 직전에 OS 개발자가 모두 Push 하는 것으로 CPU 의 현재 상태를 모두 저장해 놓는 것이다.

Context switching 은 CPU 를 사용하는 사용자가 계속 바뀌는 것을 의미하는 것이라고도 볼 수 있는데, CPU 사용자가 바뀔 때마다, 그 사용자의 Context 를 유지해주어야 한다.

이 자료구조는 Context 를 유지하기 위한 자료들로 구성된다.

참고
irq_router

필드 문서화

unsigned long pt_regs::cs

복귀할 코드가 있는 코드 세그먼트 셀렉터

unsigned short pt_regs::ds

Initialize these segment selectors using USER selectors

unsigned long pt_regs::eax
unsigned long pt_regs::ebp
unsigned long pt_regs::ebx
unsigned long pt_regs::ecode

에러 코드

unsigned long pt_regs::ecx
unsigned long pt_regs::edi
unsigned long pt_regs::edx
unsigned long pt_regs::eflags
unsigned long pt_regs::eip

복귀할 Instruction pointer

unsigned short pt_regs::es
unsigned long pt_regs::esi
unsigned long pt_regs::esp
unsigned short pt_regs::fs
unsigned short pt_regs::gs
unsigned long pt_regs::irq

인터럽트 요청 번호

struct { ... } pt_regs::pushad

pushad 명령으로 채워지는 값들

unsigned short pt_regs::reserved0
unsigned short pt_regs::reserved1
unsigned short pt_regs::reserved2
unsigned short pt_regs::reserved3

이 구조체에 대한 문서화 페이지는 다음의 파일로부터 생성되었습니다.: