이 름
console ioctl − 콘 솔 터 미 널 과 가 상 터 미 널 을 위 해 입 출 력 제 어 를 한 다 .
설 명
WARNING: 다 음 정 보 를 사 용 하 는 것 은 무 의 미 하 다 .
WARNING:
입 출 력 제 어 에
관 한 내 용 은 문
서 화 되 지 않 아
공 지 없 이 바 뀌
기 쉽 다 . POSIX함 수 를
사 용 한 다 .
KDGETLED
argp LEDs의 상 태 를 얻 는 다 . argp는 long int를 가 리 킨 다 . argp의 저 수 준 의 세 개 비 트 는 아 래 와 같 은 LEDs의 상 태 로 설 정 된 다 :
LED_CAP 0x04
caps lock led
LEC_NUM 0x02 num lock led
LED_SCR 0x01 scroll lock led
KDSETLED
LEDs설 정 . LEDs는 argp의 세 비 트 보 다 낮 게 설 정 된 다 . 그 러 나 , 비 트 를 높 게 설 정 한 다 면 LEDs는 표 준 으 로 전 환 된 다 : caps lock,num lock, scroll lock 키 보 드 기 능 의 디 스 플 레 이 상 태 .
버
전 1.1.54이 전 의 LEDs는
단 지 일 치 하 는
키 보 드 플 래 그
의 상 태 를 반 영
한 다 . 그 리 고
KDGTLED/KDSTLED는 또 한 키 보
드 플 래 그 를 바
꾼 다 . 버 전 1.1.54부
터 LEDs는 상 황 에 따
라 디 스 클 레 이
를 조 절 한 다 . 그
러 나 기 본 값 에
의 해 leds는 키 보 드
플 래 그 를 디 스
플 레 이 한 다 . 다
음 두 개 의 입 출
력 제 어 는 키 보
드 플 래 그 에 액
세 스 하 는 데 사
용 된 다 .
KDGKBLED
capsLock, NumLock,ScrollLock와 같 은 키 보 드 플 래 그 를 취 한 다 . argp는 플 래 그 상 태 를 설 정 하 는 char를 가 리 킨 다 . 저 수 준 지 정 비 트 (mask 0x7)는 현 재 플 래 그 상 태 를 취 하 고 , 나 머 지 는 기 본 플 래 그 상 태 를 취 한 다 .
KDSKBLED
CapsLock, NumLock, ScrollLock같 은 키 보 드 플 래 그 를 설 정 한 다 . argp는 원 하 는 플 래 그 상 태 를 갖 는 다 . 저 수 준 지 정 비 트 는 현 재 플 래 그 상 태 를 취 하 고 , 나 머 지 는 기 본 플 래 그 상 태 를 취 한 다 .
KDGKBTYPE
키 보 드 타 입 을 취 한 다 . 이 것 은 0x02로 정 의 되 는 KB_101값 을 반 환 한 다 .
KDADDIO
유 효 한 입 출 력 포 트 를 추 가 한 다 . ioperm(arg,1,1)과 같 다 .
KDDELIO
유 효 한 입 출 력 포 트 를 삭 제 한 다 . ioperm(arg,1,0)과 같 다 .
KDENABIO
비 디 오 보 드 로 입 출 력 이 가 능 하 다 . ioperm(0x3b4, 0x3df-0x3b4+1,1)과 같 다 .
KDDISABIO
비 디 오 보 드 로 입 출 력 이 불 가 능 하 다 . ioperm(0x3b4, 0x3df-0x3b4+1,0)과 같 다 .
KDSETMODE
텍 스 트 /그 래 픽 모 드 를 설 정 한 다 . argp는 다 음 중 하 나 다 :
KD_TEXT 0x00
KD_GRAPHICS 0x01
KDGETMODE
텍 스 트 /그 래 픽 모 드 를 취 한 다 . argp는 위 의 값 중 하 나 를 설 정 하 는 long 을 가 리 킨 다 .
KDMKTONE
특 정 길 이 의 톤 (tone)생 성 한 다 . argp의 낮 은 16비 트 는 시 간 사 이 클 의 기 간 을 열 거 하 고 , 높 은 16비 트 는 msec에 기 간 을 준 다 . 기 간 이 0이 면 , 소 리 는 즉 시 꺼 진 다 . 제 어 력 즉 시 반 환 된 다 .
KIOCSOUND
사 운 드 생 성 을 시 작 하 거 나 멈 춘 다 . argp의 낮 은 16비 트 는 시 간 사 이 클 의 기 간 을 열 거 한 다 .(즉 , argp = 1193180/frequency) argp = 0은 소 리 를 끈 다 . 같 은 경 우 로 , 제 어 력 은 즉 시 반 환 된 다 .
GIO_CMAP
커 널 로 부 터 현 재 기 본 컬 러 맵 을 얻 는 다 . argp는 48-바 이 트 배 열 을 가 리 킨 다 .(버 전 1.3.3부 터 )
PIO_CMAP
기 본 텍 스 트 모 드 컬 러 맵 을 바 꾼 다 . argp는 16비 트 컬 러 를 위 한 빨 강 ,녹 색 , 파 랑 색 값 을 포 함 하 는 48-바 이 트 배 열 을 가 리 킨 다 : 0 is off, and 255 is full intensity. 기 본 색 은 검 정 , 암 적 색 (dark red), 암 녹 색 (dark green), 갈 색 , 암 청 색 (dark blue), 밝 은 빨 강 , 밝 은 녹 색 , 노 랑 , 밝 은 파 랑 , 밝 은 자 주 , 밝 은 청 록 색 , 흰 색 이 다 .
GIO_FONT
확 장 된 256-문 자 폰 트 를 취 한 다 . argp는 8192바 이 트 배 열 을 가 리 킨 다 . 현 재 로 드 된 폰 트 가 512-문 자 폰 트 이 거 나 콘 솔 이 텍 스 트 모 드 가 아 니 라 면 EINVAR코 드 와 함 께 작 동 하 지 않 는 다 .
GIO_FONTX
화 면 폰 트 와 관 련 정 보 를 얻 는 다 . argp는 consolefontdisc을 가 리 킨 다 . (PIO_FONTX 참 조 ). 호 출 시 charcount필 드 는 문 자 중 가 장 큰 수 치 로 설 정 되 어 야 한 다 . 반 환 시 , charcount와 charheight는 현 재 로 드 된 폰 트 를 위 한 관 련 데 이 타 로 채 워 져 야 한 다 . 그 리 고 chardata배 열 은 charcount의 초 기 값 이 지 시 하 는 충 분 한 공 간 이 있 다 면 폰 트 데 이 타 를 포 함 한 다 . 그 렇 지 않 으 면 버 퍼 는 그 대 로 있 고 , errno는 ENOMEM를 설 정 한 다 .(버 전 1.3.1부 터 )
PIO_FONT
화 면 폰 트 를 256-문 자 로 설 정 한 다 . EGA/VGA문 자 생 성 기 로 부 터 폰 트 를 로 드 한 다 . argp는 문 자 마 다 32바 이 트 인 8192맵 을 가 리 킨 다 . 단 지 그 런 것 들 중 첫 N는 8xN폰 트 를 위 해 사 용 된 다 (0 < N <= 32). 이 호 출 은 또 한 유 니 코 드 를 쓸 모 없 게 한 다 .
PIO_FONTX
스 크 린
폰 트 와 관 련 정
보 를 설 정 한 다 .
argp는
consolefontdesc {
u_short charcount; /* characters in font (256 or 512)
*/
u_short charheight; /* scan lines per character
(1-32) */
char *chardata; /* font data in expanded form */
};
를 가 리 킨 다 . 필
요 하 다 면 , 화 면
크 기 는 적 절 하
게 재 조 정 될 것
이 고 , SIGWINCH는 적
절 한 프 로 세 스
를 보 낸 다 . 이 호
출 은 또 한 유 니
코 드 를 쓸 모 없
게 한 다 .
PIO_FONTRESET
폰 트 , 크 기 , 유 니 코 드 를 재 설 정 한 다 . argp는 사 용 되 지 않 지 만 , 리 눅 스 의 차 후 버 전 의 호 환 을 위 해 NULL는 설 정 되 어 야 한 다 .
GIO_SCRNMAP
커 널 로 부 터 화 면 맵 핑 을 얻 는 다 . argp는 E_TABSZ의 범 위 를 가 리 킨 다 . 그 것 은 각 문 자 디 스 플 레 에 사 용 되 는 폰 트 위 치 와 함 께 로 드 된 다 . 이 호 출 은 로 드 된 폰 트 가 256문 자 이 상 이 면 쓸 모 없 는 정 보 를 반 환 할 것 이 다 .
PIO_SCRNMAP
콘 솔 화 면 심 볼 의 맵 바 이 트 인 커 널 의 ’’user definable’’을 로 드 한 다 . argp는 size E_TABSZ의 공 간 에 포 인 트 한 다 .
PIO_UNISCRNMAP
유 니 코 드 의 맵 바 이 트 인 커 널 의 ’’user definable’’을 로 드 한 다 . ?
GIO_UNIMAP
커 널 로 부 터 Unicode-to-font를 구 한 다 . argp는
struct
unimapdesc {
u_short entry_ct;
struct unipair *entries;
};
where entries points to an array of
struct unipair
{
u_short unicode;
u_short fontpos;
};
를 가 리 킨 다 . (Since
1.1.92.)
PIO_UNIMAPCLR
hash 알 고 리 즘 을 참 조 해 테 이 블 을 소 거 한 다 . argp는
struct
unimapinit {
u_short advised_hashsize; /* 0 if no opinion */
u_short advised_hashstep; /* 0 if no opinion */
u_short advised_hashlevel; /* 0 if no opinion */
};
를 가 리 킨 다 . (버
전 1.1.92부 터 .)
KDGKBMODE
현 재 키 보 드 모 드 를 구 한 다 . ARGP는 다 음 중 하 나 로 설 정 된 long을 포 인 트 한 다 .
K_RAW 0x00
K_XLATE 0x01
K_MEDIUMRAW 0x02
K_UNICODE 0x03
KDSKBMODE
현 재 키 보 드 모 드 를 설 정 한 다 . argp는 위 의 값 중 하 나 와 같 은 long이 다 .
KDGKBMETA
메 타 키 운 용 모 드 를 구 한 다 . argp는 다 음 중 하 나 를 설 정 하 는 long을 포 인 트 한 다 .
K_METABIT 0x03
set high order bit
K_ESCPREFIX 0x04 escape prefix
KDSKBMETA
메 타 키 운 용 모 드 를 설 정 한 다 . argp는 위 의 값 중 하 나 와 같 은 long이 다 .
KDGKBSENT
함 수 키 구 문 을 얻 는 다 . argp는
struct kbsentry
{
u_char kb_func;
u_char kb_string[512];
};
를 가 리 킨 다 .
kb_string는 kb_func함 수
키 활 성 코 드 와
일 치 하 는 구 문
을 설 정 한 다 .
KDSKBSENT
함 수 키 문 자 내 용 (entry)을 설 정 한 다 . argp는 구 조 체 kbsentry를 가 리 킨 다 .
KDGETKEYCODE
커 널 키 코 드 테 이 블 내 용 을 읽 는 다 .(키 코 드 로 코 드 를 스 캔 한 다 . argp는
struct
kbkeycode { unsigned int scancode, keycode; };
를 가 리 킨 다 .
keycode는 주 어 진
scancode와 일 치 하 게
설 정 한 다 . (89 <=
scancode <= 255 only. For 1 <= scancode
<= 88, keycode==scancode.) (버
전 1.1.63부 터 .)
KDSETKEYCODE
커 널 키 코 드 테 이 블 기 재 사 항 을 기 록 한 다 . argp는 구 조 체 키 코 드 를 포 인 트 한 다 . (버 전 1.1.63 부 터 .)
KDSIGACCEPT
호 출 한 프 로 세 스 들 은 적 당 한 키 조 합 이 프 레 스 에 의 해 생 성 될 때 , 프 로 세 스 에 의 해 시 그 널 argp를 받 아 들 인 다 . (1 <= argp <= NSIG). (See spawn_console() in linux/drivers/char/keyboard.c.)
VT_OPENQRY
유 효 한 첫 콘 솔 을 반 환 한 다 . argp는 vt(1 <= *argp <= MAX_NR_CONSOLES)의 번 호 를 설 정 한 정 수 를 포 인 트 한 다 .
VT_GETMODE
활 성 화 된 vt모 드 를 구 한 다 . argp는
struct vt_mode
{
char mode; /* vt mode */
char waitv; /* if set, hang on writes if not active
*/
short relsig; /* signal to raise on release req */
short acqsig; /* signal to raise on acquisition */
short frsig; /* unused (set to 0) */
};
를 포 인 트 한 다 .
mode는 다 음 값 중
하 나 를 설 정 한
다 .
VT_AUTO
자 동 vt 스 위 칭
VT_PROCESS 프 로 세 스 제
어 스 위 칭
VT_ACKACQ acknowledge switch
VT_SETMODE
활 성 화 된 vt의 모 드 를 설 정 한 다 . argp는 구 조 체 vt_mode를 포 인 트 한 다 .
VT_GETSTATE
전 역 vt상 태 정 보 를 구 한 다 . argp는
struct vt_stat
{
ushort v_active; /* active vt */
ushort v_signal; /* signal to send */
ushort v_state; /* vt bitmask */
};
를 포 인 트 한 다 .
VT_RELDISP
디 스 플 레 이 를 릴 리 즈 한 다 .
VT_ACTIVATE
vt argp를 전 환 한 다 (1 <= argp <= MAX_NR_CONSOLES).
VT_WAITACTIVE
vt argp가 활 성 화 될 때 까 지 기 다 린 다 .
VT_DISALLOCATE
vt argp와 일 치 하 는 메 모 리 를 Deallocate the memory associated with vt argp. (Since 1.1.54.)
VT_RESIZE
화 면 크
기 의 커 널 이 해
(kernel’s idea)를 설 정 한
다 . argp는
struct vt_sizes {
ushort v_rows; /* # rows */
ushort v_cols; /* # columns */
ushort v_scrollsize; /* no longer used */
};
로 포 인 트 한 다 .
이 것 으 로 비 디 오 모 드 를 바 꿀 수 없 다 는 것 을 주 지 한 다 . resizecons(8) 참 조 한 다 . (버 전 1.1.54부 터 .)
VT_RESIZEX
다 양 한 화 면 매 개 변 수 의 커 널 이 해 (kernel’s idea)를 설 정 한 다 . argp
struct
vt_consize {
ushort v_rows; /* 열 (줄 )번
호 */
ushort v_cols; /* 행 번 호 */
ushort v_vlin; /* 화 면 상 의
픽 셀 열 번 호 */
ushort v_clin; /* 문 자 별 픽
셀 열 번 호 */
ushort v_vcol; /* 화 면 상 의
픽 셀 행 번 호 */
ushort v_ccol; /* 문 자 별 픽
셀 행 번 호 */
};
를 포 인 트 한 다 .
모 든 매 개 변 수 는 0으 로 설 정 될 런 지 모 른 다 . 그 러 나 복 수 의 매 개 변 수 가 설 정 된 다 면 일 관 되 어 야 만 한 다 . 이 것 으 로 비 디 오 모 드 를 바 꿀 수 없 다 는 것 을 주 지 한 다 . resizecons(8)를 참 조 한 다 . (버 전 1.3.3부 터 .)
다
음 의 입 출 력 제
어 들 은 argp에 의
해 구 조 체 포 인
트 첫 번 째 바 이
트 에 의 존 한 다 .
이 것 들 은 오 로
지 수 퍼 유 저 나
현 재 tty의 소 유 자
만 이 가 능 하 다 .
TIOCLINUX, subcode=0
화 면 을 덤 프 한 다 . 버 전 1.1.92에 는 없 는 옵 션 이 다 .
TIOCLINUX, subcode=1
처 리 정 보 를 얻 는 다 . 1.1.92에 는 없 다 .
TIOCLINUX, subcode=3
선 택 한 것 을 붙 인 다 . 선 택 된 버 퍼 의 문 자 는 fd에 기 록 된 다 .
TIOCLINUX, subcode=4
화 면 을 채 운 다 .
TIOCLINUX, subcode=6
argp는 커 널 변 수 shift_state의 값 을 설 정 하 는 char을 포 인 트 한 다 . (버 전 1.1.32부 터 .)
TIOCLINUX, subcode=7
argp는 커 널 변 수 report_mouse의 값 을 설 정 하 는 char을 포 인 트 한 다 . (버 전 1.1.33부 터 .)
TIOCLINUX, subcode=8
화 면 너 비 와 높 이 , 커 서 위 치 , 그 리 고 모 든 문 자 -속 성 쌍 을 덤 프 한 다 . (커 널 버 전 1.1.67 에 서 1.1.91까 지 만 쓸 수 있 다 . 커 널 1.1.92 이 후 버 전 에 서 는 대 신 /dev/vcsa*에 서 읽 을 수 있 다 .)
TIOCLINUX, subcode=9
화 면 너 비 와 높 이 , 커 서 위 치 , 그 리 고 모 든 문 자 -속 성 쌍 을 재 저 장 한 다 . (커 널 버 전 1.1.67 에 서 1.1.91까 지 만 쓸 수 있 다 . 커 널 1.1.92 이 후 버 전 에 서 는 대 신 /dev/vcsa*에 서 읽 을 수 있 다 .)
TIOCLINUX, subcode=10
신 세 대 모 니 터 의 강 력 한 저 장 기 능 을 다 룬 다 . VESA 화 면 공 백 모 드 는 argp[1]를 설 정 한 다 . 그 것 은 화 면 공 백 을 다 룬 다 .
0: 화 면 공 백 은 불 가 능 하 다 .
1: 현 재 비 디 오 아 답 터
레 지 스 터 설 정 이 저 장 된 후 제 어 기 는 수 직 동 기 화 펄 스 전 환 (turn off)을 프 로 그 램 한 다 . 이 것 은 모 니 터 를 "standby"모 드 로 한 다 . 모 니 터 가 타 이 머 오 프 모 드 가 있 다 면 그 것 은 결 국 자 신 을 꺼 버 린 다 .
2: 현 재
설 정 이 저 장 된 후 , 수 직 ,수 평 동 기 와 펄 스 는 꺼 진 다 . 이 것 은 모 니 터 를 "off"모 드 로 둔 다 . 모 니 터 에 타 이 머 OFF모 드 가 없 거 나 , 모 니 터 를 즉 시 끄 고 싶 다 면 이 옵 션 을 선 택 한 다 . (Caution:는 결 국 모 니 터 에 손 상 을 입 힌 다 .)
(Since 1.1.76.)
반 환 값
에 러 시 -1을 반 환 하 고 , errno는 설 정 된 다 .
에 러
errno는 아 래 의 값 을 가 진 다 :
EBADF |
파 일 디 스 크 립 터 는 유 효 치 않 다 . | ||
ENOTTY |
파 일 디 스 크 립 터 는 문 자 장 치 와 일 치 하 지 않 거 나 , 요 청 을 거 부 했 다 . | ||
EINVAL |
파 일 파 일 디 스 크 립 터 나 argp는 유 효 치 않 다 . | ||
EPERM |
권 한 위 반 . |
경 고
이 맨 페 이 지 (Man page)는 리 눅 스 콘 솔 입 출 력 에 관 한 문 서 가 아 니 다 . 이 맨 페 이 지 는 소 스 를 보 고 싶 어 하 는 사 용 자 의 호 기 심 에 대 안 으 로 제 공 되 는 것 이 다 . 입 출 력 제 어 는 문 서 화 되 지 않 았 다 . 따 라 서 경 고 없 이 내 용 이 바 뀔 수 있 다 는 것 을 주 지 하 기 바 란 다 .
입 출 력 제 어 는 커 널 과 잘 알 려 진 프 로 그 램 (fdisk, hdparm, setserisl,tunelp, loadkeys, selection, setfont, etc..) 사 이 의 통 신 을 위 해 자 주 소 개 되 고 , 입 출 력 제 어 는 프 로 그 램 의 요 구 에 따 라 변 화 할 것 이 다 .
입 출 력 제 어 를 사 용 하 는 프 로 그 램 은 다 른 버 전 의 유 닉 스 에 포 팅 할 수 없 다 . 그 리 고 이 후 버 전 에 서 는 사 라 질 수 도 있 다 .
POSIX함 수 들 을 사 용 한 다 .
관 련 항 목
kbd_mode(1), loadkeys(1), dumpkeys(1), mknod(1), setleds(1), setmetamode(1), ioperm(2), termios(2), execve(2), fcntl(2), console(4), console_codes(4), mt(4), sd(4), tty(4), ttys(4), vcs(4), vcsa(4), charsets(7), mapscrn(8), setfont(8), resizecons(8), /usr/include/linux/kd.h, /usr/include/linux/vt.h