Manpages

이 름

modify_ldt − ldt를 가 져 오 거 나 설 정 한 다 .

사 용 법

#include <linux/ldt.h>
#include <linux/unistd.h>

_syscall3( int, modify_ldt, int, func, void *, ptr, unsigned long, bytecount )

int modify_ldt(int func, void *ptr, unsigned long bytecount);

설 명

modify_ldt는 프 로 세 스 를 위 해 지 역 기 술 자 테 이 블 (local descriptor table, ldt)을 읽 거 나 쓴 다 . ldt는 i386 프 로 세 스 에 의 해 사 용 되 는 프 로 세 스 당 메 모 리 관 리 테 이 블 이 다 . 이 테 이 블 에 관 한 더 많 은 정 보 를 원 한 다 면 , Intel 386 프 로 세 스 핸 드 북 을 참 조 해 라 .

func가 0이 라 면 , modify_ldtptr가 가 리 키 는 메 모 리 로 ldt를 읽 어 들 인 다 . 읽 을 바 이 트 수 는 bytecount보 다 작 으 며 ldt의 실 제 크 기 를 나 타 낸 다 .

func가 1이 라 면 , modify_ldt는 하 나 의 ldt 엔 트 리 를 수 정 한 다 . ptrmodify_ldt_ldt_s 구 조 체 를 가 리 키 며 bytecount는 이 구 조 체 의 크 기 와 같 아 야 한 다 .

반 환 값

성 공 시 , modify_ldt는 읽 은 (읽 기 시 에 ) 바 이 트 의 실 제 수 나 0(쓰 기 시 에 )을 반 환 한 다 . 실 패 시 , modify_ldt는 −1을 반 환 하 며 errno는 적 당 한 값 으 로 설 정 된 다 .

에 러

ENOSYS

func가 0도 1도 아 니 다 .

EINVAL

ptr이 0이 거 나 , func가 1이 고 bytecountmodify_ldt_ldt_s구 조 체 의 크 기 와 같 지 않 을 경 우 나 , func가 1이 고 새 로 운 ldt 엔 트 리 가 허 용 되 지 않 는 값 이 다 .

EFAULT

ptr이 주 소 공 간 이 아 닌 곳 을 가 리 키 고 있 다 .

호 환

이 함 수 는 리 눅 스 에 의 존 적 이 며 호 환 성 을 염 두 에 둔 프 로 그 램 에 서 사 용 해 서 는 안 된 다 .

관 련 항 목

vm86(2)

역 자

정 강 훈 <skyeyes [AT] soback.net>, 2000년 5월 28일