.\" -*- coding: UTF-8 -*-
'\" t
.\" Copyright 1995, Jim Van Zandt <jrv@vanzandt.mv.com> and aeb
.\" Copyright 1995, <faith@cs.unc.edu>
.\" Copyright 1995, <jrv@vanzandt.mv.com>
.\" Copyright 1995, "H. Peter Anvin" <hpa@storm.net>
.\" Copyright 2024, Alejandro Colomar <alx@kernel.org>
.\"
.\" SPDX-License-Identifier: GPL-2.0-or-later
.\"
.\" FIXME The following are not documented:
.\"     KDFONTOP (since Linux 2.1.111)
.\"     KDGKBDIACRUC (since Linux 2.6.24)
.\"     KDSKBDIACR
.\"     KDSKBDIACRUC (since Linux 2.6.24)
.\"     KDKBDREP (since Linux 2.1.113)
.\"     KDMAPDISP (not implemented as at Linux 2.6.27)
.\"     KDUNMAPDISP (not implemented as at Linux 2.6.27)
.\"
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.TH ioctl_kd 2 "13 czerwca 2024 r." "Linux man\-pages 6.9.1" 
.SH NAZWA
ioctl_vt \- funkcje ioctl konsoli i konsoli wirtualnych
.SH SKŁADNIA
.nf
\fB#include <linux/kd.h>\fP  /* Definicja zmiennych op */
\fB#include <sys/ioctl.h>\fP
.P
\fBint ioctl(int \fP\fIfd\fP\fB, unsigned long \fP\fIop\fP\fB, void *\fP\fIargp\fP\fB);\fP
.fi
.SH OPIS
Przedstawione poniżej operacje \fBioctl\fP(2) są specyficzne dla Linuksa i są
obsługiwane dla konsoli i konsoli wirtualnych.
.TP 
\fBKDGETLED\fP
Pobranie stanu diod LED. \fIargp\fP wskazuje na zmienną typu \fIchar\fP. Trzy
najmniej znaczące bity \fI*argp\fP wskazują aktualny stan diod wg schematu:
.TS
l l l.
LED_CAP 	0x04	dioda caps lock
LED_NUM 	0x02	dioda num lock
LED_SCR 	0x01	dioda scroll lock
.TE
.TP 
\fBKDSETLED\fP
Ustawienie diod LED. Diody są ustawiane odpowiednio do wartości trzech
najmniej znaczących bitów liczby całkowitej bez znaku, typu long, w
\fIargp\fP. Jednakże jeśli ustawiony jest najbardziej znaczący bit, stan diod
wraca do stanu normalnego: odzwierciedla stan funkcji klawiatury caps lock,
num lock i scroll lock.
.P
Przed Linuksem 1.1.54 diody odzwierciedlały jedynie stan znaczników
klawiatury, a ioctl KDGETLED/KDSETLED zmieniały również stan tych
znaczników. Od Linuksa 1.1.54 diody mogą wyświetlać dowolną informację, lecz
standardowo wskazują stan znaczników klawiatury. Do zmiany znaczników
klawiatury służą dwa następne wywołania funkcji ioctl.
.TP 
\fBKDGKBLED\fP
Pobranie wartości znaczników klawiatury: CapsLock, NumLock, ScrollLock
(znaczników, nie stanu diod). \fIargp\fP wskazuje na zmienną typu char, do
której zostaną przepisane wartości znaczników. Najniższe trzy bity (maska
0x7) odzwierciedlają stan znaczników, a trzy najniższe bity następnego bajtu
(maska 0x70) zawierają domyślne ustawienie znaczników. (Od Linuksa 1.1.54).
.TP 
\fBKDSKBLED\fP
Ustawienie wartości znaczników klawiatury: CapsLock, NumLock, ScrollLock
(znaczników, nie stanu diod). \fIargp\fP zawiera pożądany stan znaczników.
Trzy najniższe bity (maska 0x7) zawierają stan znaczników, a trzy najniższe
bity następnego bajtu (maska 0x70) zawierają domyślne ustawienie
znaczników. (Od Linuksa 1.1.54).
.TP 
\fBKDGKBTYPE\fP
Pobranie typu klawiatury. Przekazuje wartość KB_101, zdefiniowaną jako 0x02;
.TP 
\fBKDADDIO\fP
Dodanie portu we/wy jako poprawnego. Równoważne funkcji \fIioperm(arg,1,1)\fP.
.TP 
\fBKDDELIO\fP
Usunięcie portu we/wy z listy poprawnych portów. Równoważne funkcji
\fIioperm(arg,1,0)\fP.
.TP 
\fBKDENABIO\fP
Włączenie dostępu do portów we/wy karty graficznej. Równoważne wywołaniu
\fIioperm(0x3b4, 0x3df\-0x3b4+1, 1)\fP.
.TP 
\fBKDDISABIO\fP
Wyłączenie dostępu do portów we/wy karty graficznej. Równoważne wywołaniu
\fIioperm(0x3b4, 0x3df\-0x3b4+1, 0)\fP.
.TP 
\fBKDSETMODE\fP
Włączenie trybu tekstowego/graficznego. \fIargp\fP jest liczbą całkowitą bez
znaku zawierającą jedną z wartości:
.TS
l l.
KD_TEXT	0x00
KD_GRAPHICS	0x01
.TE
.TP 
\fBKDGETMODE\fP
Pobranie informacji o ustawionym trybie: tekstowy/graficzny. \fIargp\fP
wskazuje na zmienną \fIint\fP, której zostanie nadana jedna z wartości
pokazanych wyżej dla \fBKDSETMODE\fP.
.TP 
\fBKDMKTONE\fP
Wygenerowanie dźwięku o określonej długości. Niższe 16 bitów liczby
całkowitej bez znaku, typu long, w \fIargp\fP, określa czas wyrażony w cyklach
zegara, a wyższe 16 bitów podaje czas trwania w milisekundach. Jeśli czas
trwania jest równy zeru, dźwięk zostaje wyłączony. Sterowanie jest
przekazywane natychmiast. Na przykład, \fIargp\fP = (125<<16) + 0x637
określa dźwięk zwykle skojarzony ze znakiem Ctrl\-G. (Od Linuksa 0.99pl1; nie
działa w Linuksie 2.1.49\-50).
.TP 
\fBKIOCSOUND\fP
Włączenie lub wyłączenie generowanie dźwięków. Niższe 16 bitów \fIargp\fP
określa czas trwania w cyklach zegara (tzn. \fIargp\fP =
1193180/częstotliwość). Jeśli \fIargp\fP = 0 wówczas dźwięk zostaje
wyłączony. W każdym z przypadków sterowanie jest przekazywane natychmiast.
.TP 
\fBGIO_CMAP\fP
Pobranie z jądra aktualnie obowiązującej mapy kolorów. \fIargp\fP wskazuje na
48\-bajtową tablicę. (Od Linuksa 1.3.3).
.TP 
\fBPIO_CMAP\fP
Zmiana domyślnej mapy kolorów trybu tekstowego. \fIargp\fP wskazuje na
48\-bajtową tablicę, która zawiera kolejno wartości Red, Green i Blue dla
dostępnych 16 kolorów ekranu: 0 brak, 255 pełna intensywność.  Domyślnymi
kolorami są, w kolejności: czarny, ciemnoczerwony, ciemnozielony, brązowy,
ciemnoniebieski, ciemnopurpurowy, ciemny niebieskozielony, jasnoszary,
ciemnoszary, jasnoczerwony, jasnozielony, żółty, jasnoniebieski,
jasnopurpurowy, jasny niebieskozielony i biały.  (Od Linuksa 1.3.3).
.TP 
\fBGIO_FONT\fP
Pobranie 256\-znakowej czcionki ekranowej w rozszerzonym formacie. \fIargp\fP
wskazuje na tablicę 8192 bajtów. Jeśli obecnie załadowana czcionka jest
jedną z czcionek 512\-bajtowych lub jeśli konsola nie jest w trybie
tekstowym, funkcja zwraca kod błędu \fBEINVAL\fP.
.TP 
\fBGIO_FONTX\fP
Pobranie czcionki ekranowej i związanych z nią informacji. \fIargp\fP wskazuje
na strukturę typu \fIstruct consolefontdesc\fP (patrz \fBPIO_FONTX\fP). Przed
wywołaniem funkcji, polu \fIcharcount\fP powinna zostać nadana wartość równa
maksymalnej liczbie znaków, jakie się zmieszczą w buforze wskazywanym przez
\fIchardata\fP. Po zakończeniu, \fIcharcount\fP i \fIcharheight\fP są wypełniane
odpowiednimi informacjami dotyczącymi aktualnie załadowanej czcionki, a
tablica \fIchardata\fP zawiera informacje o foncie, o ile przekazana wartość
\fIcharcount\fP wskazywała wystarczającą ilość miejsca; w przeciwnym razie
bufor nie jest modyfikowany, a zmiennej \fIerrno\fP nadawana jest wartość
\fBENOMEM\fP. (Od Linuksa 1.3.1).
.TP 
\fBPIO_FONT\fP
Ustawia 256\-znakową czcionkę ekranową. Ładuje czcionkę do generatora znaków
karty EGA/VGA. \fIargp\fP wskazuje na 8192\-bajtową mapę z 32 bajtami na jeden
znak. W przypadku czcionek 8x\fIN\fP (0 < \fIN\fP <= 32) wykorzystywane
jest tylko pierwszych \fIN\fP bajtów. Ta procedura unieważnia jednocześnie
odwzorowanie Unicode.
.TP 
\fBPIO_FONTX\fP
Ustawia czcionkę ekranową i związane z nią informacje na temat jej
prezentacji. \fIargp\fP wskazuje na
.IP
.in +4n
.EX
struct consolefontdesc {
    unsigned short charcount;  /* znaków w czcionce
                                  (256 lub 512) */
    unsigned short charheight; /* wierszy skanowania
                                  w znaku (1\-32) */
    char          *chardata;   /* dane czcionki w
                                  postaci rozszerzonej */
};
.EE
.in
.IP
Jeśli jest to konieczne, ekran zostanie odpowiednio przeskalowany, a do
odpowiednich procesów przesłany będzie sygnał \fBSIGWINCH\fP.  Ta procedura
unieważnia jednocześnie odwzorowanie Unicode. (Od Linuksa 1.3.1).
.TP 
\fBPIO_FONTRESET\fP
Inicjuje czcionkę ekranową, rozmiar i odwzorowanie Unicode do wartości
ustawionych podczas startu sytemu. \fIargp\fP nie jest używany, lecz powinien
mieć wartość NULL, aby zapewnić zgodność z przyszłymi wersjami Linuksa. (Od
Linuksa 1.3.28).
.TP 
\fBGIO_SCRNMAP\fP
Pobranie z jądra odwzorowania ekranu. \fIargp\fP wskazuje na obszar o rozmiarze
E_TABSZ, który jest wypełniany danymi czcionki służącymi do wyświetlenia
poszczególnych znaków. W przypadku gdy obecnie załadowana czcionka zawiera
więcej niż 256 znaków, ta procedura najprawdopodobniej zwróci bezwartościowe
informacje.
.TP 
\fBGIO_UNISCRNMAP\fP
Pobranie z jądra pełnego odwzorowania Unicode. \fIargp\fP wskazuje na obszar o
rozmiarze \fIE_TABSZ*sizeof(unsigned short)\fP, który jest wypełniany kodami
Unicode odpowiednimi dla poszczególnych znaków. Specjalny zestaw kodów
Unicode, rozpoczynający się od U+F000, służy do reprezentacji odwzorowania
"bezpośrednio na czcionkę" ("direct to font"). (Od Linuksa 1.3.1).
.TP 
\fBPIO_SCRNMAP\fP
Załadowanie do jądra "definiowanej przez użytkownika" (czwartej) tabeli
odwzorowującej bajty na symbole ekranu konsoli. \fIargp\fP wskazuje na obszar o
rozmiarze E_TABSZ.
.TP 
\fBPIO_UNISCRNMAP\fP
Załadowanie do jądra "definiowanej przez użytkownika" (czwartej) tabeli
odwzorowującej bajty na kody Unicode, które są z kolei tłumaczone na symbole
ekranowe zgodnie z aktualnie załadowaną tabelą odwzorowania
Unicode\-na\-czcionkę. Do bezpośredniego odwzorowania na symbole ekranowe mogą
być wykorzystywane specjalne kody Unicode rozpoczynające się od U+F000. (Od
Linuksa 1.3.1).
.TP 
\fBGIO_UNIMAP\fP
Pobranie z jądra mapy odwzorowania Unicode\-na\-czcionkę. \fIargp\fP wskazuje na
strukturę
.IP
.in +4n
.EX
struct unimapdesc {
    unsigned short  entry_ct;
    struct unipair *entries;
};
.EE
.in
.IP
w której \fIentries\fP wskazuje na tablicę struktur
.IP
.in +4n
.EX
struct unipair {
    unsigned short unicode;
    unsigned short fontpos;
};
.EE
.in
.IP
(Od Linuksa 1.1.92).
.TP 
\fBPIO_UNIMAP\fP
Załadowanie do jądra mapy odwzorowania Unicode\-na\-czcionkę. \fIargp\fP wskazuje
na strukturę \fIstruct unimapdesc\fP. (Od Linuksa 1.1.92).
.TP 
\fBPIO_UNIMAPCLR\fP
Wyczyszczenie tabeli, jeśli możliwe proponuje algorytm z mieszaniem
(hash). \fIargp\fP wskazuje na
.IP
.in +4n
.EX
struct unimapinit {
    unsigned short advised_hashsize;  /* 0 przy braku opinii */
    unsigned short advised_hashstep;  /* 0 przy braku opinii */
    unsigned short advised_hashlevel; /* 0 przy braku opinii */
};
.EE
.in
.IP
(Od Linuksa 1.1.92).
.TP 
\fBKDGKBMODE\fP
Pobranie aktualnego stanu klawiatury. \fIargp\fP wskazuje na zmienną typu
\fIlong\fP, której zostanie nadana wartość równa jednej z poniższych stałych:
.TS
l l.
K_RAW	0x00  /* Tryb surowy (scancode) */
K_XLATE	0x01  /* Tłumaczy kody klawiszy za pomocą mapy klawiszy */
K_MEDIUMRAW	0x02  /* Tryb umiarkowanie surowy (scancode) */
K_UNICODE	0x03  /* Tryb unikodowy */
K_OFF	0x04  /* Tryb wyłączony; od Linuksa 2.6.39 */
.\" K_OFF: commit 9fc3de9c83565fcaa23df74c2fc414bb6e7efb0a
.TE
.TP 
\fBKDSKBMODE\fP
Ustawienie aktualnego stanu klawiatury. \fIargp\fP wskazuje na zmienną typu
\fIlong\fP o wartości równej jednej ze stałych pokazanych dla \fBKDGKBMODE\fP.
.TP 
\fBKDGKBMETA\fP
Pobranie trybu obsługi klawisza meta. \fIargp\fP wskazuje na zmienną typu
\fIlong\fP, której zostanie nadana wartość równa jednej z poniższych stałych:
.TS
l l l.
K_METABIT	0x03	ustawia najbardziej znaczący bit
K_ESCPREFIX	0x04	prefix ucieczki
.TE
.TP 
\fBKDSKBMETA\fP
Ustawienie trybu obsługi klawisza meta. \fIargp\fP wskazuje na zmienną typu
\fIlong\fP o wartości równej jednej z pokazanych wyżej stałych dla
\fBKDGKBMETA\fP.
.TP 
\fBKDGKBENT\fP
Pobranie jednej pozycji z tabeli translacji klawiszy (kod klawisza (keycode)
na kod akcji). \fIargp\fP wskazuje na strukturę
.IP
.in +4n
.EX
struct kbentry {
    unsigned char  kb_table;
    unsigned char  kb_index;
    unsigned short kb_value;
};
.EE
.in
.IP
której pierwsze dwa pola mają nadane wartości o następującym znaczeniu:
\fIkb_table\fP określa rodzaj tabeli (0 <= \fIkb_table\fP <
MAX_NR_KEYMAPS), a \fIkb_index\fP oznacza kod klawisza (keycode) (0 <=
\fIkb_index\fP < NR_KEYS). Polu \fIkb_value\fP zostaje nadany odpowiedni kod
akcji lub K_HOLE, jeśli nie ma takiego klawisza, albo K_NOSUCHMAP, jeśli
\fIkb_table\fP jest niepoprawne.
.TP 
\fBKDSKBENT\fP
Nadanie wartości jednej pozycji tabeli translacji. \fIargp\fP wskazuje na
strukturę typu \fIstruct kbentry\fP.
.TP 
\fBKDGKBSENT\fP
Pobranie łańcucha znaków przypisanego klawiszowi funkcyjnemu. \fIargp\fP
wskazuje na strukturę
.IP
.in +4n
.EX
struct kbsentry {
    unsigned char kb_func;
    unsigned char kb_string[512];
};
.EE
.in
.IP
Do \fIkb_string\fP przypisywany jest (zakończony znakiem NULL) łańcuch znaków,
odpowiadający kodowi akcji \fIkb_func\fP\-tego klawisza funkcyjnego.
.TP 
\fBKDSKBSENT\fP
Przypisuje klawiszowi funkcyjnemu łańcuch znaków. \fIargp\fP wskazuje na
strukturę typu \fIstruct kbsentry\fP.
.TP 
\fBKDGKBDIACR\fP
Odczytanie tabeli akcentów jądra. \fIargp\fP wskazuje na strukturę
.IP
.in +4n
.EX
struct kbdiacrs {
    unsigned int   kb_cnt;
    struct kbdiacr kbdiacr[256];
};
.EE
.in
.IP
gdzie \fIkb_cnt\fP oznacza liczbę pozycji w tablicy, z których każda jest
strukturą
.IP
.in +4n
.EX
struct kbdiacr {
    unsigned char diacr;
    unsigned char base;
    unsigned char result;
};
.EE
.in
.TP 
\fBKDGETKEYCODE\fP
Odczytanie pozycji z tabeli kodów klawiszy (scan code to keycode). \fIargp\fP
wskazuje na strukturę
.IP
.in +4n
.EX
struct kbkeycode {
    unsigned int scancode;
    unsigned int keycode;
};
.EE
.in
.IP
\fIkeycode\fP otrzymuje wartość odpowiednią dla podanego \fIscancode\fP.  (Tylko z
zakresu 89 <= \fIscancode\fP <= 255.  Dla 1 <= \fIscancode\fP <=
88, jest \fIkeycode\fP==\fIscancode\fP.)  (Od Linuksa 1.1.63).
.TP 
\fBKDSETKEYCODE\fP
Zapisanie pozycji w tabeli kodów klawiszy jądra. \fIargp\fP wskazuje na
strukturę \fIstruct kbkeycode\fP. (Od Linuksa 1.1.63).
.TP 
\fBKDSIGACCEPT\fP
Proces wywołujący tę funkcję wskazuje swą chęć do przyjęcia sygnału \fIargp\fP,
generowanego przez wciśnięcie odpowiedniej kombinacji klawiszy. (1 <=
\fIargp\fP <= NSIG). (Patrz \fIspawn_console\fP() w
\fIlinux/drivers/char/keyboard.c\fP.)
.SH "WARTOŚĆ ZWRACANA"
Funkcja zwraca 0, jeżeli zakończy się pomyślnie (chyba że zaznaczono
inaczej). Jeśli wystąpi błąd zwraca \-1 i ustawia \fIerrno\fP wskazując błąd.
.SH BŁĘDY
.TP 
\fBEINVAL\fP
\fIargp\fP jest niepoprawne.
.SH STANDARDY
Linux.
.SH "ZOBACZ TAKŻE"
\fBioctl\fP(2), \fBioctl_console\fP(2)
.PP
.SH TŁUMACZENIE
Autorami polskiego tłumaczenia niniejszej strony podręcznika są:
Piotr Pogorzelski <piotr.pogorzelski@ippt.gov.pl>,
Andrzej Krzysztofowicz <ankry@green.mf.pg.gda.pl>
i
Michał Kułach <michal.kulach@gmail.com>
.
.PP
Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach
licencji można uzyskać zapoznając się z
.UR https://www.gnu.org/licenses/gpl-3.0.html
GNU General Public License w wersji 3
.UE
lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.
.PP
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy
dyskusyjnej
.MT manpages-pl-list@lists.sourceforge.net
.ME .
