名 前
console_ioctl − コ ン ソ ー ル 端 末 と 仮 想 コ ン ソ ー ル の ioctl
説 明
次 の よ う な Linux 固 有 の ioctl(2) が サ ポ ー ト さ れ て い る 。 そ れ ぞ れ 3番 目 の 引 数 が 必 要 で あ る 、 こ こ で は argp と す る 。
KDGETLED
LED の 状 態 を 取 得 す る 。 argp は char の ポ イ ン タ ー で あ る 。 *argp の 下 位 3 ビ ッ ト に 以 下 の よ う に LED の 状 態 が セ ッ ト さ れ る 。
KDSETLED
LEDを 点 灯 さ せ る 。 LEDは argp の 下 位 3 ビ ッ ト に 従 い 点 灯 さ れ る 。 し か し 、 よ り 高 位 の ビ ッ ト が セ ッ ト さ れ て い る 時 に は 、 キ ャ ピ タ ル ロ ッ ク 、 ナ ン バ ー ロ ッ ク 、 ス ク ロ ー ル ロ ッ ク の キ ー ボ ー ド 機 能 の 状 態 を 表 示 す る LED は 通 常 状 態 に 戻 る 。 カ ー ネ ル 1.1.54 以 前 は 、 LED は そ れ ぞ れ の キ ー ボ ー ド フ ラ グ の 状 態 を 反 映 す る だ け で 、 KDGETLED/KDSETLED も キ ー ボ ー ド フ ラ グ を 変 更 す る だ け で あ っ た 。 カ ー ネ ル 1.1.54 か ら は LED に 任 意 の 表 示 を す る こ と が で き る よ う に な っ た が 、 デ フ ォ ル ト で は キ ー ボ ー ド フ ラ グ を 表 示 す る 。 次 に 示 す 2 つ の ioctl は キ ー ボ ー ド フ ラ グ に ア ク セ ス す る の に 用 い ら れ る 。
KDGKBLED キ
ャ ピ タ ル ロ ッ
ク 、 ナ ン バ ー
ロ ッ ク 、 ス ク
ロ ー ル ロ ッ ク
の (LED の 表 示 で は
な く )キ ー ボ ー
ド フ ラ グ を 得
る 。 argp は フ ラ
グ の 状 態 が セ
ッ ト さ れ る 文
字 変 数 を 指 す
。 (0x7)で マ ス ク し
て 得 ら れ る 下
位 3 ビ ッ ト が 現
在 の フ ラ グ の
状 態 を 示 し 、
(0x70)で マ ス ク し て
得 ら れ る 次 の 3
ビ ッ ト が デ フ
ォ ル ト の フ ラ
グ の 状 態 を 示
す 。 (カ ー ネ ル
1.1.54以 降 )
KDSKBLED キ ャ ピ タ ル
ロ ッ ク 、 ナ ン
バ ー ロ ッ ク 、
ス ク ロ ー ル ロ
ッ ク の (LED の 表 示
で は な く ) キ ー
ボ ー ド フ ラ グ
を セ ッ ト す る
。 argp が セ ッ ト
し た い フ ラ グ
で あ る 。 (0x7)で マ
ス ク し て 得 ら
れ る 下 位 3 ビ ッ
ト が フ ラ グ の
状 態 で 、 (0x70)で マ
ス ク し て 得 ら
れ る 次 の 3 ビ ッ
ト が デ フ ォ ル
ト の フ ラ グ の
状 態 で あ る 。
(カ ー ネ ル 1.1.54以 降
)
KDGKBTYPE キ ー ボ ー ド
の 種 類 を 得 る
。 こ れ は 値 0x02 と
定 義 さ れ て い
る KB_101を 返 す 。
KDADDIO
I/Oポ ー ト を 有 効 な 物 と し て 加 え る 。 こ れ は ioperm(arg,1,1) と 等 価 で あ る 。
KDDELIO
I/Oポ ー ト を 有 効 な 物 か ら 外 す 。 こ れ は ioperm(arg,1,0) と 等 価 で あ る 。
KDENABIO ビ
デ オ ボ ー ド へ
の I/O を 可 能 に す
る 。 こ れ は
ioperm(0x3b4, 0x3df−0x3b4+1, 1) と
等 価 で あ る 。
KDDISABIO ビ デ オ ボ ー
ド へ の I/O を 不 可
能 に す る 。 こ
れ は ioperm(0x3b4, 0x3df−0x3b4+1,
0) と 等 価 で あ る
。
KDSETMODE テ キ ス ト /グ
ラ フ ィ ク ス モ
ー ド を 設 定 す
る 。 argp は 次 の
う ち の ど れ か
:
KDGETMODE
テ キ ス ト /グ ラ
フ ィ ク ス モ ー
ド を 取 得 す る
。 argp が 指 す long
型 変 数 に 上 述
の 値 の ど ち ら
か が セ ッ ト さ
れ る 。
KDMKTONE 指 定 さ れ た
長 さ の ト ー ン
を 発 生 す る 。
argp の 下 位 16 ビ ッ
ト は ク ロ ッ ク
サ イ ク ル を 単
位 に し て 周 期
を 指 定 し 、 上
位 16 ビ ッ ト が msec
の 単 位 で 表 し
た 、 (ト ー ン を
発 生 さ せ る )時
間 を 指 定 す る
。 ト ー ン を 発
生 さ せ る 時 間
が ゼ ロ の と き
は 、 サ ウ ン ド
は オ フ に な る
。 制 御 は 直 ち
に 戻 る 。 例 え
ば 、 argp = (125<<16) + 0x637
と す れ ば 、 通
常 ctrl−G を 押 し た
時 に 発 生 す る
音 に な る 。 (カ
ー ネ ル 0.99pl1 以 降
;こ の 機 能 は カ
ー ネ ル 2.1.49 か ら 2.1.50
で は バ グ の た
め 動 作 し な い )
KIOCSOUND 音 の 発 生 の
開 始 や 停 止 を
行 う 。 argp の 下
位 16 ビ ッ ト は ク
ロ ッ ク サ イ ク
ル を 単 位 と し
て 周 期 を 示 す
。 (つ ま り argp =
1193180/周 波 数 )。 argp = 0
の 場 合 、 サ ウ
ン ド は オ フ に
な る 。 ど ち ら
の 場 合 で も 、
た だ ち に 制 御
は 戻 る 。
GIO_CMAP 現 在 の デ フ
ォ ル ト の カ ラ
ー マ ッ プ を カ
ー ネ ル よ り 取
得 す る 。
PIO_CMAP デ フ ォ ル ト
の テ キ ス ト モ
ー ド の カ ラ ー
マ ッ プ を 変 更
す る 。 argp が 指
す 48 バ イ ト の 配
列 中 に は 、 16 の
可 能 な ス ク リ
ー ン の 色 を 、
赤 、 緑 、 青 の
順 に 0 を オ フ 、
255を 最 大 強 度 と
し た 値 と し て
納 め る 。 デ フ
ォ ル ト の 色 は
順 に 、 黒 、 濃
い 赤 、 濃 い 緑
、 茶 、 濃 い 青
、 濃 い 紫 、 濃
い シ ア ン 、 明
る い 灰 色 、 濃
い 灰 色 、 明 る
い 赤 、 明 る い
緑 、 黄 、 明 る
い 青 、 明 る い
紫 、 明 る い シ
ア ン 、 白 で あ
る 。 (カ ー ネ ル
1.3.3以 降 )
GIO_FONT 拡 張 さ れ た
形 式 で 256 文 字 の
ス ク リ ー ン フ
ォ ン ト を 得 る
。 argp は 8192 バ イ
ト の 配 列 を 指
す 。 現 在 ロ ー
ド さ れ て い る
フ ォ ン ト が 512 文
字 の フ ォ ン ト
で あ る か 、 コ
ン ソ ー ル が テ
キ ス ト モ ー ド
で な い 時 に は
失 敗 し EINVAL の エ
ラ ー コ ー ド を
返 す 。
GIO_FONTX ス ク リ ー ン
フ ォ ン ト と そ
れ に 関 連 し た
情 報 を 取 得 す
る 。 argp は 構 造
体 consolefontdesc (PIO_FONTX を 参
照 の こ と )を 指
す 。 関 数 呼 び
出 し の と き に
は 、 charcount に は
、 chardata が 指 す バ
ッ フ ァ ー に お
さ ま る 最 大 の
文 字 数 を セ ッ
ト し な け れ ば
な ら な い 。 関
数 呼 び 出 し か
ら 戻 っ た 時 に
は charcount と charheight
に は 、 現 在 ロ
ー ド さ れ て い
る フ ォ ン ト の
該 当 す る デ ー
タ が 収 め ら れ
て い る 。 配 列
chardata に は 、 最 初
に charcount に い れ
た 値 に よ っ て
フ ォ ン ト を 収
め る の に 十 分
な ス ペ ー ス が
あ る と わ か れ
ば フ ォ ン ト デ
ー タ が 収 め ら
れ る 。 そ う で
な い 時 に は 、
バ ッ フ ァ ー は
変 更 さ れ ず 、
errno に ENOMEM が セ
ッ ト さ れ る (カ
ー ネ ル 1.3.1 以 降 )。
PIO_FONT
256 文 字 の フ ォ ン ト を セ ッ ト す る 。 EGA/VGA キ ャ ラ ク タ ー ジ ェ ネ レ ー タ ー (character generator) に フ ォ ン ト を ロ ー ド す る 。 argp は 、 8192 バ イ ト (一 文 字 32 バ イ ト )の マ ッ プ を 指 す 。 マ ッ プ の う ち 、 最 初 の N の み が 8xN の フ ォ ン ト の た め に 用 い ら れ る (0 < N <= 32)。 こ の 呼 び 出 し を す る と Unicode の マ ッ ピ ン グ が 無 効 に な る 。
PIO_FONTX ス ク リ ー ン フ ォ ン ト と 、 そ れ に 関 連 す る レ ン ダ リ ン グ 情 報 を セ ッ ト す る 。 argp は 、 以 下 の 構 造 体 を 指 す 。
struct
consolefontdesc {
unsigned short charcount; /* フ ォ ン
ト の 文 字 数
(256 ま た は 512) */
unsigned short charheight; /* 一 文 字
の 走 査 線 の 数
(1−32) */
char *chardata; /* 展 開 さ れ
た フ ォ ン ト デ
ー タ */ }; 必 要 な ら
ス ク リ ー ン は
適 当 に サ イ ズ
変 更 さ れ 、 SIGWINCH
が 適 切 な プ ロ
セ ス に 送 ら れ
る 。 こ の コ ー
ル に よ り Unicode の
マ ッ ピ ン グ が
無 効 に な る 。
PIO_FONTRESET ス
ク リ ー ン フ ォ
ン ト 、 サ イ ズ
、 Unicode マ ッ ピ ン
グ を ブ ー ト 時
の デ フ ォ ル ト
値 に リ セ ッ ト
す る 。 argp は 用
い ら れ な い が
、 将 来 の バ ー
ジ ョ ン の Linux と の
互 換 性 を 保 つ
た め に NULL に セ ッ
ト す べ き で あ
る 。
GIO_SCRNMAP ス ク リ ー ン
マ ッ ピ ン グ を
カ ー ネ ル よ り
取 得 す る 。 argp
は サ イ ズ E_TABSZ の
領 域 を 指 す 。
そ の 領 域 に は
各 キ ャ ラ ク タ
ー を 表 示 す る
の に 用 い ら れ
る フ ォ ン ト の
位 置 が ロ ー ド
さ れ て い る 。
こ の 呼 び 出 し
は 現 在 ロ ー ド
さ れ て い る フ
ォ ン ト が 256 文 字
よ り も 多 い 時
に は 無 意 味 な
情 報 を 返 す 事
が 多 い 。
GIO_UNISCRNMAP フ ル Unicode ス
ク リ ー ン マ ッ
ピ ン グ を カ ー
ネ ル よ り 取 得
す る 。 argp は サ
イ ズ E_TABSZ*sizeof(unsigned short)
の 領 域 を 指 す
。 そ の 領 域 に
は 各 キ ャ ラ ク
タ ー を 示 す Unicode
が ロ ー ド さ れ
て い る 。 U+F000 に 始
ま る Unicode の 特 別
な 集 合 は 、 「
フ ォ ン ト 直 接
な (direct to font)」 マ ッ ピ
ン グ を 示 す の
に 用 い ら れ る
(カ ー ネ ル 1.3.1 以 降
)。
PIO_SCRNMAP 「 ユ ー ザ ー
定 義 可 能 な (user
definable)」 (4番 目 の )テ
ー ブ ル を カ ー
ネ ル に ロ ー ド
す る 。 そ の テ
ー ブ ル は 各 バ
イ ト を ス ク リ
ー ン シ ン ボ ル
に マ ッ ピ ン グ
す る 。 argp は サ
イ ズ E_TABSZの 領 域 を
指 す 。
PIO_UNISCRNMAP 「 ユ ー ザ
ー 定 義 可 能 な
」 (4番 目 の )テ ー
ブ ル を カ ー ネ
ル に ロ ー ド す
る 。 そ の テ ー
ブ ル は 各 バ イ
ト を ユ ニ コ ー
ド に マ ッ ピ ン
グ し 、 そ の 後
、 現 在 ロ ー ド
さ れ て い る ユ
ニ コ ー ド か ら
フ ォ ン ト へ の
マ ッ プ に 従 い
ス ク リ ー ン シ
ン ボ ル に 変 換
さ れ る 。 U+F000 に 始
ま る ユ ニ コ ー
ド は 直 接 フ ォ
ン ト シ ン ボ ル
に マ ッ ピ ン グ
す る の に 使 え
る (カ ー ネ ル 1.3.1 以
降 )
GIO_UNIMAP
Unicode か ら フ ォ ン ト へ の マ ッ ピ ン グ を カ ー ネ ル か ら 取 得 す る 。 argp は 、
struct
unimapdesc {
unsigned short entry_ct;
struct unipair *entries; }; と い う
構 造 体 を 指 す
。 こ こ で entries は
以 下 の 構 造 体
の 配 列 へ の ポ
イ ン タ ー で あ
る 。
struct unipair
{
unsigned short unicode;
unsigned short fontpos; };
(カ ー ネ ル 1.1.92 以 降 )
PIO_UNIMAP
Unicode か ら フ ォ ン ト へ の マ ッ ピ ン グ を カ ー ネ ル に セ ッ ト す る 。 argp は 構 造 体 struct unimapdesc へ の ポ イ ン タ ー で あ る 。 (カ ー ネ ル 1.1.92 以 降 )
PIO_UNIMAPCLR テ ー ブ ル を ク リ ア し 、 そ の 事 を ハ シ ュ ア ル ゴ リ ズ ム に 伝 え る 。 argpは
struct
unimapinit {
unsigned short advised_hashsize; /* 0 if no opinion */
unsigned short advised_hashstep; /* 0 if no opinion */
unsigned short advised_hashlevel; /* 0 if no opinion */
};
(カ ー ネ ル 1.1.92 以 降 )
KDGKBMODE 現 在 の キ ー ボ ー ド モ ー ド を 取 得 す る 。 argp の 指 す long 型 変 数 が 、 次 の う ち の ど れ か に 設 定 さ れ る 。
KDSKBMODE
現 在 の キ ー ボ
ー ド モ ー ド を
設 定 す る 。 argp
は 上 記 の 値 の
う ち の ど れ か
に 等 し い long に
す る 。
KDGKBMETA メ タ キ ー ハ
ン ド リ ン グ モ
ー ド (meta key handling mode)を 取
得 す る 。 argp が
指 す long 型 変 数
は 、 次 の う ち
の ど れ か に 設
定 さ れ る 。
KDSKBMETA
メ タ キ ー ハ ン
ド リ ン グ モ ー
ド を 設 定 す る
。 argp は 上 記 の
値 の ど れ か に
等 し い long に す
る 。
KDGKBENT キ ー コ ー ド
を ア ク シ ョ ン
コ ー ド に 変 換
す る キ ー 変 換
表 の エ ン ト リ
ー の 一 つ を 取
得 す る 。 argp は
、
struct kbentry
{
unsigned char kb_table;
unsigned char kb_index;
unsigned short kb_value; }; へ の ポ
イ ン タ ー で あ
る 。 最 初 の 2つ
の 要 素 、 kb_table に
は 選 択 す る キ
ー テ ー ブ ル (0 <=
kb_table < MAX_NR_KEYMAPS)、 kb_index
に は キ ー コ ー
ド (0 <= kb_index < NR_KEYS)を
設 定 す る 。 kb_value
は 対 応 す る ア
ク シ ョ ン コ ー
ド 、 ま た は 、
そ の よ う な キ
ー が な い と き
に は K_HOLE、 kb_table が
無 効 な 時 に は
K_NOSUCHMAP に 設 定 さ れ
る 。
KDSKBENT 変
換 テ ー ブ ル の
エ ン ト リ ー の
一 つ を 設 定 す
る 。 argp は 構 造
体 struct kbentry へ の ポ
イ ン タ ー で あ
る 。
KDGKBSENT フ ァ ン ク シ
ョ ン キ ー の 文
字 列 を 取 得 す
る 。 argp は 以 下
の 構 造 体 へ の
ポ イ ン タ ー で
あ る 。
struct kbsentry
{
unsigned char kb_func;
unsigned char kb_string[512]; };
kb_func 番 目 の フ ァ ン ク シ ョ ン キ ー の ア ク シ ョ ン コ ー ド に 対 応 す る (ヌ ル で 終 端 さ れ た ) 文 字 列 が kb_string に 設 定 さ れ る 。
KDSKBSENT フ
ァ ン ク シ ョ ン
キ ー の 文 字 列
の エ ン ト リ ー
を 設 定 す る 。
argp は 、 構 造 体
struct kbsentry へ の ポ イ
ン タ ー で あ る
。
KDGKBDIACR カ ー ネ ル の
ア ク セ ン ト テ
ー ブ ル (accent table)を 読
み 込 む 。 argpは
、 次 の 構 造 体
へ の ポ イ ン タ
ー で あ る 。
struct kbdiacrs
{
unsigned int kb_cnt;
struct kbdiacr kbdiacr[256]; }; こ こ で
、 kb_cnt は 配 列 中
の エ ン ト リ ー
の 個 数 で 、 個
々 の エ ン ト リ
ー は 以 下 の 構
造 体 で あ る 。
struct kbdiacr
{
unsigned char diacr;
unsigned char base;
unsigned char result; };
KDGETKEYCODE カ ー ネ ル の (ス キ ャ ン コ ー ド か ら キ ー コ ー ド へ 変 換 す る )キ ー コ ー ド テ ー ブ ル エ ン ト リ ー を 読 み 込 む 。 argp は 、
struct
kbkeycode {
unsigned int scancode;
unsigned int keycode; }; へ の ポ イ
ン タ ー で あ る
。 keycode は 、 scancode
に 対 応 し た 値
に 設 定 さ れ る
。 (た だ し 、 89 <=
scancode <= 255 の み に
つ い て 。 1 <= scancode
<= 88 で は keycode == scancode
で あ る 。 ) (カ ー
ネ ル 1.1.63 以 降 )
KDSETKEYCODE カ
ー ネ ル の キ ー
コ ー ド テ ー ブ
ル エ ン ト リ ー
を 書 き 込 む 。
argp は 構 造 体 struct
kbkeycode へ の ポ イ ン
タ ー で あ る 。
(カ ー ネ ル 1.1.63 以
降 )
KDSIGACCEPT こ の 関 数 呼
び 出 し は 、 特
別 な 組 合 せ で
キ ー を 押 し た
時 に 発 生 す る
シ グ ナ ル argp (1 <=
argp <= NSIG) を 進 ん で
受 け 付 け る か
ど う か を 示 す
。 (linux/drivers/char/keyboard.c の
spawn_console() を 見 よ 。 )
VT_OPENQRY 最 初 の 空 い
て い る (ま だ オ
ー プ ン さ れ て
い な い )コ ン ソ
ー ル を 返 す 。
argp の 指 す int 型
の 整 数 に は 、 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) */ }; と い
う 構 造 体 を 指
す ポ イ ン タ ー
で あ り 、 ア ク
テ ィ ブ な vt の モ
ー ド が セ ッ ト
さ れ る 。 mode は
次 の ど れ か に
設 定 さ れ る 。
VT_SETMODE
ア ク テ ィ ブ な vt
の モ ー ド を 設
定 す る 。 argp は
構 造 体 struct vt_mode へ
の ポ イ ン タ ー
で あ る 。
VT_GETSTATE グ ロ ー バ ル
な vt の 状 態 の 情
報 を 取 得 す る
。 argpは 、
struct vt_stat
{
unsigned short v_active; /* active vt */
unsigned short v_signal; /* signal to send */
unsigned short v_state; /* vt bit mask */ }; へ
の ポ イ ン タ ー
で あ る 。 使 用
さ れ て い る そ
れ ぞ れ の vt に つ
き v_state の 対 応 す
る ビ ッ ト が セ
ッ ト さ れ る 。
(カ ー ネ ル l 1.0 か ら
1.1.92 ま で )
VT_RELDISP デ
ィ ス プ レ ー を
解 放 す る 。
VT_ACTIVATE
argp (1 <= argp <= MAX_NR_CONSOLES)の vt に 切 替 え る 。
VT_WAITACTIVE
argpの vt が ア ク テ ィ ブ に な る ま で 待 つ 。
VT_DISALLOCATE
argp の vt に 結 び つ け ら れ た メ モ リ ー を 解 放 す る 。 (カ ー ネ ル 1.1.54 以 降 )
VT_RESIZE カ ー ネ ル が 認 識 す る ス ク リ ー ン サ イ ズ を 設 定 す る 。 argp は 、
struct vt_sizes
{
unsigned short v_rows; /* # rows */
unsigned short v_cols; /* # columns */
unsigned short v_scrollsize; /* no longer used */ };
へ の ポ イ ン タ
ー で あ る 。 こ
れ は ビ デ オ モ
ー ド を 変 更 し
な い 事 に 注 意
。 resizecons(8) を 見 よ
(カ ー ネ ル 1.1.54 以
降 )。
VT_RESIZEX カ ー ネ ル が 認 識 す る 各 種 の ス ク リ ー ン パ ラ メ ー タ ー を 設 定 す る 。 argp は 、 以 下 の 構 造 体 へ の ポ イ ン タ ー で あ る 。
struct
vt_consize {
unsigned short v_rows; /* number of rows */
unsigned short v_cols; /* number of columns */
unsigned short v_vlin; /* number of pixel rows
on screen */
unsigned short v_clin; /* number of pixel rows
per character */
unsigned short v_vcol; /* number of pixel columns
on screen */
unsigned short v_ccol; /* number of pixel columns
per character */ }; パ ラ メ ー
タ ー は ゼ ロ で
あ っ て も よ い
。 そ の と き は
「 変 更 し な い
こ と 」 を 意 味
す る が 、 複 数
の パ ラ メ ー タ
ー が 設 定 さ れ
た 時 に は そ れ
ら の 間 で 矛 盾
が な い よ う に
し な け れ ば な
ら な い 。 こ の
関 数 呼 び 出 し
に よ っ て も ビ
デ オ モ ー ド は
変 更 さ れ な い
事 に 注 意 。
resizecons(8) を 参 照 の
事 (カ ー ネ ル 1.3.3 以
降 )。 以 下 の ioctl が
ど の よ う に 動
作 を す る か は
、 argp が 指 す 構
造 体 の 最 初 の
バ イ ト (こ こ で
は subcode と 呼 ぶ )に
依 存 す る 。 こ
れ ら の 呼 出 し
は 、 ス ー パ ー
ユ ー ザ ー か 現
在 の 端 末 の オ
ー ナ に の み 許
さ れ る 。
TIOCLINUX, subcode=0
ス ク リ ー ン を
ダ ン プ (dump)す る カ
ー ネ ル 1.1.92 以 降 で
な く な っ た (1.1.92
以 降 で は 、 代
わ り に /dev/vcsN ま
た は /dev/vcsaN よ り
読 み 込 む )。
TIOCLINUX, subcode=1 タ ス ク 情
報 を 取 得 す る
。 カ ー ネ ル 1.1.92 で
な く な っ た 。
TIOCLINUX, subcode=2 選 択 を 設
定 す る 。 argp が
指 す の は 、
struct {
char subcode;
short xs, ys, xe, ye;
short sel_mode; } で あ り 、
こ こ で xs と ys
は 始 め の 桁 と
行 で 、 xe と ye
は 終 り の 桁 と
行 で あ る 。 (左
上 の 隅 が 桁 =行 =1 )
sel_mode は 0 が 文 字
毎 の 選 択 で 、
1は 語 毎 の 選 択
、 2は 行 毎 の 選
択 を 意 味 す る
。 示 さ れ た ス
ク リ ー ン 上 の
文 字 は ハ イ ラ
イ ト 表 示 さ れ
devices/char/console.c の 静 的
配 列 sel_buffer に 保 存
さ れ る 。
TIOCLINUX, subcode=3
選 択 し た も の
を ペ ー ス ト す
る 。 選 択 バ ッ
フ ァ ー 中 の 文
字 が fd に 書 き
出 さ れ る 。
TIOCLINUX, subcode=4 ス ク リ ー
ン を ア ン ブ ラ
ン ク (unblank)す る 。
TIOCLINUX, subcode=5 語 毎 の 選
択 の た め の 「
語 」 中 の 文 字
を 規 定 し て い
る 256 ビ ッ ト の ル
ッ ク ア ッ プ テ
ー ブ ル の 内 容
を 設 定 す る (カ
ー ネ ル 1.1.32 以 降
)。
TIOCLINUX, subcode=6
argp は 文 字 変 数 を 指 す ポ イ ン タ ー で 、 そ の 内 容 が カ ー ネ ル 変 数 shift_stateの 値 に 設 定 さ れ る (カ ー ネ ル 1.1.32 以 降 )。
TIOCLINUX, subcode=7
argp は 文 字 変 数 を 指 す ポ イ ン タ ー で 、 そ の 内 容 が カ ー ネ ル 変 数 report_mouse の 値 に 設 定 さ れ る (カ ー ネ ル 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: 現 在 の ビ デ オ ア ダ プ タ ー レ ジ ス タ ー が 保 存 さ れ た あ と 、 コ ン ト ロ ー ラ ー は 垂 直 同 期 パ ル ス を オ フ に す る よ う プ ロ グ ラ ム さ れ る 。 こ れ に よ り モ ニ タ ー は 「 ス タ ン バ イ 」 モ ー ド に 入 る 。 モ ニ タ ー に |
Off_Mode タ イ マ ー が 備 わ っ て お れ ば 、 最 終 的 に は モ ニ タ ー が 自 分 で 電 源 を 落 と す 。
2: 現 在 の 設 定 を 保 存 し た 後 、 垂 直 、 水 平 同 期 パ ル ス が オ フ に な る 。 こ れ に よ り モ ニ タ ー は 「 オ フ 」 モ ー ド に な る 。 モ ニ タ ー に |
Off_Mode タ イ マ ー が な い 時 、 ま た は 、 blank_timer が タ イ ム ア ウ ト し た ら す ぐ に モ ニ タ ー の 電 源 を 落 し た い と き に こ の 選 択 肢 を 選 ぶ 。 (注 意 : 頻 繁 に モ ニ タ ー の 電 源 を 切 る と モ ニ タ ー を 痛 め る 。 ) (1.1.76 以 降 )
返 り 値
成 功 時 に は 0 が 返 さ れ る 。 エ ラ ー の 場 合 −1 が 返 さ れ 、 errno が 設 定 さ れ る 。
エ ラ ー
errno は 次 の よ う な 値 を と る :
EBADF フ ァ イ ル デ ィ ス ク リ プ タ ー が 無 効 。 | |
ENOTTY フ ァ イ ル デ ィ ス ク リ プ タ ー が キ ャ ラ ク タ ー ス ペ シ ャ ル デ バ イ ス と 関 連 付 け ら れ て い な い 。 ま た は 、 要 求 さ れ た も の が そ れ に 当 て は ま ら な い 。 | |
EINVAL フ ァ イ ル デ ィ ス ク リ プ タ ー ま た は |
argp が 無 効 。
EPERM 権 限 が 不 十 分 。 |
注 意
警 告 : こ の マ ニ ュ ア ル ペ ー ジ を Linux の コ ン ソ ー ル ioctl を 文 書 化 し た も の と 思 わ な い 事 。 こ れ は 、 興 味 が あ る 人 が ソ ー ス を 読 む こ と の 代 わ り に な る よ う に 用 意 し た 物 で あ る 。 ioctl は 文 書 化 さ れ な い Linux の 内 部 機 能 で あ っ て 、 警 告 な し に 変 更 さ れ る こ と が あ る 。 (そ し て 、 こ の ペ ー ジ は カ ー ネ ル 1.1.94 の と き の 状 況 を 記 述 し た 物 で 、 そ れ は 以 前 の バ ー ジ ョ ン と 比 べ れ ば 、 多 く の 違 い が あ る )
ioctl は カ ー ネ ル と 、 あ る 特 定 の よ く 知 ら れ た プ ロ グ ラ ム と の 情 報 交 換 の た め に 導 入 さ れ る 事 が 非 常 に 多 い (fdisk, hdparm, setserial,tunelp, loadkeys, selection, setfont な ど )。 そ の た め ioctl の 動 作 は 、 そ の 特 定 の プ ロ グ ラ ム が 必 要 と し た 時 に は 変 更 に な る 。 こ れ ら の ioctl を 使 っ た プ ロ グ ラ ム は 他 の バ ー ジ ョ ン の UNIX と の 互 換 性 が な い し 、 古 い バ ー ジ ョ ン の Linux で は 、 走 ら な い 。 さ ら に 将 来 の バ ー ジ ョ ン の Linux で は 走 ら な く な る か も 知 れ な い 。
POSIX 機 能 を 使 い な さ い 。
関 連 項 目
dumpkeys(1), kbd_mode(1), loadkeys(1), mknod(1), setleds(1), setmetamode(1), execve(2), fcntl(2), ioperm(2), termios(3), console(4), console_codes(4), mt(4), sd(4), tty(4), tty_ioctl(4), ttyS(4), vcs(4), vcsa(4), charsets(7), mapscrn(8), resizecons(8), setfont(8)
/usr/include/linux/kd.h, /usr/include/linux/vt.h
こ の 文 書 に つ い て
こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。