Provided by:
manpages-pt_20040726-2_all 
NOME
console ioctl - ioctl’s para terminais de console e consoles virtuais
DESCRIÇÃO
ADVERTÊNCIA: Se você usar a informação seguintes você pode queimar a si
mesmo.
ADVERTÊNCIA: ioctlâ€â€™s são chamadas internas do Linux sem documentação,
propensa em ser altera sem nenhum aviso. Usar as funções POSIX.
As seguintes requisição peculiar ioctl() do linux são suportadas. Cada
requer um terçeiro argumento, presumido aqui para ser argp.
KDGETLED
Obtém os estados dos LEDs. argp aponta para um inteiro longo. Os
três menores bits de *argp são selecionados para o estado dos
LEDs, como segue:
LED_CAP 0x04 caps lock led
LEC_NUM 0x02 num lock led
LED_SCR 0x01 scroll lock led
KDSETLED
Seleciona os LEDs. Os LEDs são selecionados para os três menores
bits de argp. De outra forma, se um bit de ordem maior é
selecionado, os LEDs são revertidos para o estado normal:
mostrando o estado das funções do teclado de caps lock, num
lock, e scroll lock.
Antes da versão 1.1.54, os LEDs devolvia justamente o estado do
correspondente do sinalizador do teclado, e KDGETLED/KDSETLED além
disso alteraria o sinalizador do teclado. Desde a versão 1.1.54 os
leds podem ser usados para exibir informações arbitrárias, mas por
padrão eles mostram o sinalizador de teclado. As duas seguintes
ioctl’s são usadas para acessar o sinalizador de teclado.
KDGKBLED
Obtém o sinalizador de teclado CapsLock, NumLock, ScrollLock
(sem luzes). argp aponta para um caracter no qual é marcado o
estado do sinalizador. Os três bits de menor ordem (mask 0x7)
recebem o estado atual do sinalizador, e os bits de menor ordem
nos próximos quatro bits (mask 0x70) obtém o estado padrão do
sinalizador. (Desde a versão 1.1.54.)
KDSKBLED
Seleciona o sinalizador do teclado CapsLock, NumLock, ScrollLock
(sem luzes). argp tem o estado do sinalizador que é desejado.
Os três bits de menor ordem (mask 0x7) tem o estado do
sinalizador, e os bits de menor ordem nos próximos 4 bits (mask
0x70) tem o estado padrão do sinalizador. (Desde a versão
1.1.54.)
KDGKBTYPE
Obtém o tipo de teclado. Este retorna o valor KB_101, definido
como 0x02.
KDADDIO
Adiciona uma porta de I/O como válida. Equivalente a
ioperm(arg,1,1).
KDDELIO
Remove uma porta de I/O como válida. Equivalente a
ioperm(arg,1,0).
KDENABIO
Habilita a I/O para a placa de vÃdeo. Equivalente a
ioperm(0x3b4, 0x3df-0x3b4+1, 1).
KDDISABIO
Desabilita a I/O para a placa de vÃdeo. Equivalente a
ioperm(0x3b4, 0x3df-0x3b4+1, 0).
KDSETMODE
Seleciona o modo texto/gráfico. argp é um destes:
KD_TEXT 0x00
KD_GRAPHICS 0x01
KDGETMODE
Obtém o modo text/graphics. argp aponta para um tipo longo o
qual é selecionado para um dos valores abaixo.
KDMKTONE
Gera um som de comprimento especificado. Os 16 bits mais baixos
de argp especificado o periodo em ciclos de relógio, e os 16
bits mais altos entrega a duração em in msec. Se a duração é
zero, o som é desligado. O controle retorna imediatamente. Por
exemplo, argp = (125<<16) + 0x637 especificaria o beep
normalmente associado com ctrl-G. (Desta forma desde a versão
0.99pl1; interrompido em 2.1.49-50.)
KIOCSOUND
Inicia ou termina a geração do som. O 16 bits mais baixos de
argp especificam o periodo em ciclos de relógio (que é, argp =
1193180/freqüencia). argp = 0 desliga o som. Em ambos os
casos, o controle retorna imediatamente.
GIO_CMAP
Obtém o atual mapa de cores padrão a partir do kernel. argp
aponta para um vetor de 48 bytes. (Desde 1.3.3.)
PIO_CMAP
Altera o mapa de cores padrão no modo texto. argp aponta para um
vetor de 48 bytes o qual contém, em ordem, os valores Vermelho,
Verde, e Azul para as 16 cores disponÃveis da tela: 0 é
desligado, e 255 é intensidade máxima. As cores padrão são, em
ordem: preto, vermelho escuro, verde escuro, marrom, azul
escuro, violeta escuro, ciano escuro, cinza claro, cinza escuro,
vermelho brilhante, verde brilhante, amarelo, azul brilhante,
violeta brilhante, ciano brilhante e branco. (Desde 1.3.3.)
GIO_FONT
Obtém os 256 caracteres da fonte da tela em forma expandida.
argp aponta para um vetor de 8192 bytes. Falha com código de
erro EINVAL se a fonte atualmente carregado é uma fonte de 512
caracteres, ou se o console não está em modo texto.
GIO_FONTX
Obtém a fonte da tela e informações associadas. argp aponta para
uma estrutua consolefontdesc (veja PIO_FONTX). Na chamada, o
campo charcount precisaria ser selecionado para o número máximo
de caracteres que poderia combinar no buffer apontado por
chardata. No retorno, o charcount e charheight são recheados
dos respectivos dados para a fonte atualmente carregada, e o
vetor chardata contém o dados da fonte se o valor inicial de
charcount indicava espaço suficiente disponÃvel; de outra forma
o buffer fica intocado e errno é selecionado para ENOMEM. (Desde
1.3.1.)
PIO_FONT
Seleciona uma fonte da tela de 256 caracteres. Carrega a fonte
dentro do gerador de caracteres EGA/VGA. argp aponta para um
mapa de bits de 8192, com 32 bytes por caractere. Somente o
primeiro N deles são usados para uma fonte 8xN (0 < N <= 32).
Esta chamada também elimina o mapeamento Unicode.
PIO_FONTX
Seleciona a fonte da tela e associa informações de desenho. argp
aponta para uma
struct consolefontdesc {
u_short charcount; /* caracteres na fonte (256 ou 512) */
u_short charheight; /* linhas rastreadas por caracteres (1-32) */
char *chardata; /* dados da fone em forma expandida */
};
Se necessário a tela será apropriadamente redimensionada, e
SIGWINCH envia para o processo apropriado. Esta chamada também
elimina o mapeamento Unicode. (Desde 1.3.1.)
PIO_FONTRESET
Repões o fonte da tela, tamanho e mapeamento Unicode para a
incialização padrão. argp não é usado, mas seria selecinado para
NULL para assegurar compatibilidade com futuras versões do
Linux. (Desde 1.3.28.)
GIO_SCRNMAP
Obtém o mapeamento da tela a partir do kernel. argp aponta para
uma área de tamanho E_TABSZ, o qual é carregado com a
posicionamento da fonte usada para exibir cada caractere. Esta
chamada é provavelmente para retornar informações imprestáveis
se a fonte atualmente carregada é maior que 256 caracteres.
GIO_UNISCRNMAP
Obtém o mapeamento completo Unicode da tela a partir do kernel.
argp aponta para uma área de tamanho E_TABSZ*sizeof(unsigned
short), o qual é carregado com a representação Unicode de cada
caractere. Um conjunto especial de Unicode, começando em U+F000,
são usados para representar o mapeamento ‘‘direto para a
fonte’’. (Desde 1.3.1.)
PIO_SCRNMAP
Carrega o ‘‘definÃvel pelo usuário’’ (quatro) tabelas no kernel
o qual mapeia bytes dentro dos simbolos da tela da console. argp
aponta para uma área de tamanho E_TABSZ.
PIO_UNISCRNMAP
Carrega o ‘‘definÃvel pelo usuário’’ (quatro) tabelas no kernel
a qual mapeia bytes dentro dos Unicodes, o qual são então
traduzidos em sÃmbolos da tela de acordo com o mapa atualmente
carregado de Unicode para fonte. Unicodes especiais iniciam em
U+F000 e podem ser usados para mapear diretamente para os
sÃmbolos da fonte. (Desde 1.3.1.)
GIO_UNIMAP
Obtém o mapeamento Unicode para fonte a partir do kernel. argp
aponta para uma
struct unimapdesc {
u_short entry_ct;
struct unipair *entries;
};
aonde entries aponta para um vetor de
struct unipair {
u_short unicode;
u_short fontpos;
};
(Desde 1.1.92.)
PIO_UNIMAP
Coloca o mapeamento unicode para fonte no kernel. argp aponta
para uma estrutura unimapdesc. (Desde 1.1.92)
PIO_UNIMAPCLR
Limpa a tabela, possivelmente um algoritmo picado. argp aponta
para uma
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 */
};
(Desde 1.1.92.)
KDGKBMODE
Obtém o modo atual do teclado. argp aponta para um longo o qual
é selecionado para um destes:
K_RAW 0x00
K_XLATE 0x01
K_MEDIUMRAW 0x02
K_UNICODE 0x03
KDSKBMODE
Seleciona o modo atual do teclado. argp é um longo igual a um
dos valores acima.
KDGKBMETA
Obtém o modo de manipulação da tecla meta. argp aponta para um
longo o qual é selecionado para um destes:
K_METABIT 0x03 set high order bit
K_ESCPREFIX 0x04 escape prefix
KDSKBMETA
Seleciona o modo de manipulação da tecla meta. argp é um longo
igual a um dos valores acima.
KDGKBENT
Obtém uma entrada na tabela de translação da tecla (keycode para
action code). argp aponta para uma
struct kbentry {
u_char kb_table;
u_char kb_index;
u_short kb_value;
};
com o primeito dos dos membros preenchido em: kb_table seleciona
a tabela de tecla (0 <= kb_table < MAX_NR_KEYMAPS), e kb_index é
o keycode (0 <= kb_index < NR_KEYS). kb_value é selecionado
para o correspondente action code, ou K_HOLE se não havia tecla
semelhante, ou K_NOSUCHMAP se kb_table é invalido.
KDSKBENT
Seleciona uma entrada na tabela de tradução. argp aponta para
uma estrutura kbentry.
KDGKBSENT
Obtém uma tecla de função. argp aponta para uma
struct kbsentry {
u_char kb_func;
u_char kb_string[512];
};
kb_string é selecionada para a (terminação NULA) seqüencia
correspondente para a tecla de função kb_func action code.
KDSKBSENT
Seleciona uma entrada para uma tecla de função. argp aponta para
uma struct kbsentry.
KDGKBDIACR
Lê a tabela de acentuação do kernel. argp aponta para uma
struct kbdiacrs {
unsigned int kb_cnt;
struct kbdiacr kbdiacr[256];
};
onde kb_cnt é o número de entradas no vetor, cada qual é uma
struct kbdiacr { u_char diacr, base, result; };
KDGETKEYCODE
Lê a tabela de entrada keycode do kernel (rastrei o code para
keycode). argp aponta para uma
struct kbkeycode { unsigned int scancode, keycode; };
keycode é selecionada para corresponder ao scancode fornecido.
(89 <= scancode <= 255 somente. Para 1 <= scancode <= 88,
keycode==scancode.) (Desde 1.1.63.)
KDSETKEYCODE
Escreve no kernel a entrada da tabela keycode. argp aponta para
uma estrutura kbkeycode. (Desde 1.1.63.)
KDSIGACCEPT
O processo chamante indicado dele concordância para aceita o
sinal argp quandop ele é gerado pelo presionamento de uma
combinação de teclas apropriadas. (1 <= argp <= NSIG). (Veja
spawn_console() em linux/drivers/char/keyboard.c.)
VT_OPENQRY
Devolve o primeiro console disponivel (fechado). argp aponta
para um int o qual é selecionado para um número de vt (1 <=
*argp <= MAX_NR_CONSOLES).
VT_GETMODE
Obtém o modo de ativação do vt. argp aponta para uma
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 é selecionada para um destes valores:
VT_AUTO auto vt switching
VT_PROCESS process controls switching
VT_ACKACQ acknowledge switch
VT_SETMODE
Seleciona o modo de ativação do vt. argp aponta para uma struct
vt_mode.
VT_GETSTATE
Obtém a informação global do estado vt. argp aponta para uma
struct vt_stat {
ushort v_active; /* active vt */
ushort v_signal; /* signal to send */
ushort v_state; /* vt bitmask */
};
Para cada vt em uso, o bit correspondente no membro v_state é
selecionado. (Kerneis 1.0 direto 1.1.92.)
VT_RELDISP
Libera um monitor.
VT_ACTIVATE
Troca para o vt argp (1 <= argp <= MAX_NR_CONSOLES).
VT_WAITACTIVE
Aguarda até o vt argp ser ativado.
VT_DISALLOCATE
Desalocar a memória associada com o vt argp. (Desde 1.1.54.)
VT_RESIZE
Seleciona o tamanho ideal da tela kernel. argp aponta para um
struct vt_sizes {
ushort v_rows; /* # rows */
ushort v_cols; /* # columns */
ushort v_scrollsize; /* no longer used */
};
Note que isto não é alterado para o modo de video. Veja
resizecons(8). (Desde 1.1.54.)
VT_RESIZEX
Seleciona os vários parâmetros ideais da tela do kernel. argp
aponta para um
struct vt_consize {
ushort v_rows; /* number of rows */
ushort v_cols; /* number of columns */
ushort v_vlin; /* number of pixel rows on screen */
ushort v_clin; /* number of pixel rows per character */
ushort v_vcol; /* number of pixel columns on screen */
ushort v_ccol; /* number of pixel columns per character */
};
Qualquer parâmetro pode ser selecionada para zero, indicando
‘‘nenhuma alteração’’, mas se multiplos parâmetros são
alterados, eles devem ser auto consistentes. Note que isto não
mudou o modo de video. Veja resizecons(8). (Desde 1.3.3.)
A ação das seguintes following dependia do primeiro byte na estrutura
apontada pelo argp, relativo a este lugar como o subcode. Estes são
somente válido para o superusuário ou o proprietário do tty atual.
TIOCLINUX, subcode=0
Esvazia a tela. Desapareçeu em 1.1.92. (Com o kernel 1.1.92 ou
posterior, lê a partir de /dev/vcsN ou /dev/vcsaN ao invez de.)
TIOCLINUX, subcode=1
Obtém a informação da tarefa. Desapareçeu em 1.1.92.
TIOCLINUX, subcode=2
Seleciona a seleção. argp aponta para uma
struct {char subcode;
short xs, ys, xe, ye;
short sel_mode;
}
xs e ys estão começando as colunas e linhas. xe e ye estão
terminando as colunas e linhas. (O canto superior esquerdo é a
linha=coluna=1.) sel_mode é 0 para uma seleção caractere por
caractere, 1 para uma seleção palavra por palavra, ou 2 para uma
seleção linha por linha. Os caracteres indicados na tela são
brilhantes e guardados no vetor estático sel_buffer em
devices/char/console.c.
TIOCLINUX, subcode=3
Cola a seleção. Os caracteres no buffer são escritos para fd.
TIOCLINUX, subcode=4
Tela não vazia.
TIOCLINUX, subcode=5
Seleciona o conteúdo de uma tabela de visualização de caracteres
de 256 bits definida na "palavra", para seleção palavra por
palavra. (Desde 1.1.32.)
TIOCLINUX, subcode=6
argp aponta para um char oq qual é selecionada para o valor da
variável do kernel shift_state. (Desde 1.1.32.)
TIOCLINUX, subcode=7
argp aponta para um caractere o qual é selecionado para o valor
da variável do kernel report_mouse. (Desde 1.1.33.)
TIOCLINUX, subcode=8
Esvazia a tela na largura e comprimento, posição do cursor, e
todos os pares de atributos de caracteres. (Somente os kerneis
1.1.67 direto 1.1.91. Com o kernel 1.1.92 ou mais novos, lê a
partir /dev/vcsa* ao invez de.)
TIOCLINUX, subcode=9
Restaura o comprimento e largura da tela, posição do cursor, e
todos os pares de atributos de caracteres. (Somente os kerneis
1.1.67 direto 1.1.91. Com o kernel 1.1.92 ou mais novos, lê a
partir /dev/vcsa* ao invez de.)
TIOCLINUX, subcode=10
Manipulação da caracteristÃca de Power Saving da nova geração de
monitores. Tela VESA em modo vazio é selecionado para argp[1],
o qual governa o que a tela em branco fará:
0: Tela em branco é desabilitada.
1: O adptador de vÃdeo atual ‘‘registra a seleções
guardadas, então o controlador é programada para desligar os
pulsos de sincronização vertical. Isto coloca o monitor em mode
"standby". Se o monitor tem um temporizador Off_Mode, então ele
irá eventualmente desligar a enegia de si mesmo.
2: As seleções atuais são guardadas, então ambos os pulsos
de sincronização vertical e horizontal são desligados. Isto
coloca o monitor em modo "off". Se o monitor tem um
temporizador Off_Mode, ou se você procura que seu monitor
desligue imediadamente quando o tempo de blank_timer termina,
então você preferirá esta opção. (Cuidado: Desligar o monitor
freqünetemente irá danificr o monitor.)
(Desde 1.1.76.)
VALORES DE RETORNO
-1 para erro, e errno é selecionado.
ERRORS
errno pode ter um destes valores:
EBADF descritor de arquivo é inválido.
ENOTTY descritor de arquivo não é associado com um dispositivo especial
de caractere, ou a requesição especificada não se aplica para
ele.
EINVAL descritor de arquivo ou argp é invalido.
EPERM violação de permissão.
ADVERTÊNCIAS
Não respeite esta página de manual como documentação das chamadas de
console ioctl’s do Linux. Isto é fornecido para curiosos somente, com
um alternativa para estudar o fonte. Ioctl’s são chamadas não
documentadas do Linux, propensa em ser alterada sem nenhum aviso. (E de
fato, esta página descreve mais ou menos a situação da versão do kernel
1.1.94; tem pequenas e muitas e não somente pequenas diferenças com as
versão mais recentes.)
Muito frequentemente, são introduzidas para comunicação ente o kernel e
um programa particular bem conhecido, (fdisk, hdparm, setserial,
tunelp, loadkeys, selection, setfont, etc.), e o comportamento deles
será alterado quando requerido por este programa particular.
Programas usando estas ioctl’s podem não ser portáveis para outras
versões de Unix, podem não trabalhar em versões antiguas do Linux, e
podem não trabalhar nas futuras versões do Linux.
Usar as funções POSIX.
VEJA TAMBÉM
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
TRADUZIDO POR LDP-BR em 21/08/2000.
André L. Fassone Canova <lonelywolf@blv.com.br> (tradução) Carlos
Augusto Horylka <horylka@conectiva.com.br> (revisão)