   #Start Contents

             Dodatkowe typy danych, wartosci stalych systemowych

   Nalezy przyjac, ze "int", "long", "PID", "clock_t", "time_t",
   "u(int)32" sa typu DWORD, zas "short" jest typu WORD.
     _________________________________________________________________

   Struktura "pt_regs" (funkcja 2) z /usr/include/asm/ptrace.h:
        struct pt_regs {
                long ebx;
                long ecx;
                long edx;
                long esi;
                long edi;
                long ebp;
                long eax;
                int  xds;
                int  xes;
                long orig_eax;
                long eip;
                int  xcs;
                long eflags;
                long esp;
                int  xss;
        };
     _________________________________________________________________

   CAPTION: Bity dostepu (funkcje 5 i 277) z /usr/include/asm/fcntl.h

   nazwa osemkowo komentarz
   O_ACCMODE
   3
   Pelne prawa dostepu
   O_RDONLY
   0
   Otwieranie tylko do odczytu. Dostepne dla sys_mq_open.
   O_WRONLY
   1
   Otwieranie tylko do zapisu. Dostepne dla sys_mq_open.
   O_RDWR
   2
   Otwieranie do odczytu i zapisu. Dostepne dla sys_mq_open.
   O_CREAT
   100
   Utworzenie pliku. Dostepne dla sys_mq_open.
   O_EXCL
   200
   Nie tworz pliku, jesli juz istnieje. Dostepne dla sys_mq_open.
   O_NOCTTY
   400
   Jesli podana nazwa pliku to terminal, to NIE zostanie on terminalem
   kontrolnym procesu.
   O_TRUNC
   1000
   Obciecie pliku
   O_APPEND
   2000
   Dopisywanie do pliku
   O_NONBLOCK
   4000
   Nie otwieraj, jesli spowoduje to blokade. Dostepne dla sys_mq_open.
   O_NDELAY
   O_NONBLOCK
   jak wyzej
   O_SYNC
   10000
   specyficzne dla ext2 i urzadzen blokowych
   FASYNC
   20000
   fcntl, dla zgodnosci z BSD
   O_DIRECT
   40000
   podpowiedz bezposredniego dostepu do dysku, obecnie ignorowana
   O_LARGEFILE
   100000
   Pozwol na otwieranie plikow >4GB
   O_DIRECTORY
   200000
   musi byc katalogiem
   O_NOFOLLOW
   400000
   nie podazaj za linkami
     _________________________________________________________________

   CAPTION: Prawa dostepu / tryb (funkcje 5, 8, 14, 15 i 277) z
   /usr/include/linux/stat.h

   nazwa osemkowo komentarz
   S_ISUID
   4000
   ustaw ID uzytkownika przy wykonywaniu (suid)
   S_ISGID
   2000
   ustaw ID grupy przy wykonywaniu (sgid)
   S_ISVTX
   1000
   "sticky bit" - usuwac z takiego katalogu moze tylko wlasciciel
   S_IRUSR
   400
   czytanie przez wlasciciela (S_IREAD)
   S_IWUSR
   200
   zapis przez wlasciciela (S_IWRITE)
   S_IXUSR
   100
   wykonywanie/przeszukiwanie katalogu przez wlasciciela (S_IEXEC)
   S_IRGRP
   40
   czytanie przez grupe
   S_IWGRP
   20
   zapis przez grupe
   S_IXGRP
   10
   wykonywanie/przeszukiwanie katalogu przez grupe
   S_IROTH
   4
   czytanie przez innych (R_OK)
   S_IWOTH
   2
   zapis przez innych (W_OK)
   S_IWOTH
   1
   wykonywanie/przeszukiwanie katalogu przez innych (X_OK)
   S_IRWXUGO
   (S_IRWXU | S_IRWXG | S_IRWXO)
   czytanie, pisanie i wykonywanie przez wszystkich
   S_IALLUGO
   (S_ISUID | S_ISGID | S_ISVTX | S_IRWXUGO)
   czytanie, pisanie i wykonywanie przez wszystkich + suid + sgid +
   sticky bit
   S_IRUGO
   (S_IRUSR | S_IRGRP | S_IROTH)
   czytanie dla wszystkich
   S_IWUGO
   (S_IWUSR | S_IWGRP | S_IWOTH)
   zapis dla wszystkich
   S_IXUGO
   (S_IXUSR | S_IXGRP | S_IXOTH)
   wykonywanie/przeszukiwanie katalogu dla wszystkich
     _________________________________________________________________

   CAPTION: Flagi montowania (funkcja 21) z /usr/include/linux/fs.h

   nazwa wartosc komentarz
   MS_MGC_MSK
   0xC0ED
   in m.s. 16-bit; 'magic', niezbedne przed 2.4.0-t9 (????)
   MS_RDONLY
   1
   Zamontuj tylko do odczytu
   MS_NOSUID
   2
   Ignoruj bity suid i sgid
   MS_NODEV
   4
   Zabron dostepu do specjalnych plikow/urzadzen
   MS_NOEXEC
   8
   Zabron wykonywania programow
   MS_SYNCHRONOUS
   16
   Zapisy sa synchronizowane natychmiast
   MS_REMOUNT
   32
   Zmien flagi zamontowanego systemu plikow (przemontuj z innymi
   atrybutami)
   MS_MANDLOCK
   64
   Pozwol na nakazane blokady na systemie plikow (???)
   MS_NOATIME
   1024
   Nie zmieniaj czasow dostepu
   MS_NODIRATIME
   2048
   Nie zmieniaj czasow dostepu do katalogow
   MS_BIND
   4096
   Montowanie bindowane - widoczne w innym miejscu systemu plikow
   MS_REC
   16384

   MS_VERBOSE
   32768

   MS_ACTIVE
   (1<<30)

   MS_NOUSER
   (1<<31)
     _________________________________________________________________

   CAPTION: Przechodzenie do innego miejsca w pliku (funkcja 19 i 140) z
   /usr/include/fcntl.h

    nazwa  wartosc                   znaczenie
   SEEK_SET
           0
                   Przesuwanie zaczyna sie od poczatku pliku
   SEEK_CUR
           1
                   Przesuwanie zaczyna sie od biezacej pozycji
   SEEK_END
           2
                   Przesuwanie zaczyna sie od konca pliku
     _________________________________________________________________

   CAPTION: Tak zwana specyfikacja procesu (funkcja 7 i 37)

   PID               dany sygnal zostanie wyslany do
   > 0
       procesu potomnego o tym PID
   0
       kazdego procesu potomnego w grupie procesow wywolujacego
   -1
       wszystkich procesow potomnych z wyjatkiem pierwszego
   < -1
       wszystkich procesow potomnych w grupie |{gid}|
     _________________________________________________________________

   CAPTION: Zadane dzialanie (funkcja 26) z /usr/include/linux/ptrace.h

   PTRACE_... wartosc argumenty zwraca
   PEEKTEXT
   0
   PID, adres, wskaznik na dane
   czytaj (d)word pod podanym adresem
   PEEKDATA
   1
   PID, adres, wskaznik na dane
   czytaj (d)word pod podanym adresem w obszarze pamieci Uzytkownika
   PEEKUSR
   2
   PID, adres, wskaznik na dane
   czytaj (d)word pod podanym adresem w obszarze pamieci Uzytkownika
   POKETEXT
   3
   PID, adres, wskaznik na dane
   zapisz (d)word pod podanym adresem
   POKEDATA
   4
   PID, adres, wskaznik na dane
   zapisz (d)word pod podanym adresem
   POKEUSR
   5
   PID, adres, wskaznik na dane
   zapisz (d)word pod podanym adresem w obszarze pamieci Uzytkownika
   TRACEME
   6
   -
   Ustaw bit PTRACE we flagach procesu
   CONT
   7
   PID, - , numer sygnalu
   Uruchom ponownie po sygnale
   KILL
   8
   PID
   wyslij sygnal SIGKILL do procesu potomnego, konczac go
   SINGLESTEP 9
   PID
   Ustaw flage TRAP, sygnal SIGTRAP
   GETREGS
   12
   PID, -, wskaznik na dane
   pobierz wartosci rejestrow procesu potomnego
   SETREGS
   13
   PID, -, wskaznik na dane
   ustaw wartosci rejestrow procesu potomnego
   GETFPREGS
   14
   PID, -, wskaznik na dane
   pobierz stan FPU procesu potomnego
   SETFPREGS
   15
   PID, -, wskaznik na dane
   ustal stan FPU procesu potomnego
   ATTACH
   16
   PID, -, -
   przylacz proces do juz uruchomionego procesu.
   DETACH
   17
   PID, -, -
   odlacz wczesniej przylaczony proces
   (K4)GETFPXREGS
   18
   PID, -, wskaznik na dane
   pobierz rozszerzony stan FPU procesu potomnego
   (K4)SETFPXREGS
   19
   PID, -, wskaznik na dane
   ustal rozszerzony stan FPU procesu potomnego
   (K4)SETOPTIONS
   21
   PID, -, dane
   Opcja PTRACE_O_TRACESYSGOOD lub zadna
   SYSCALL
   24
   PID, -, numer sygnalu
   Kontynuuj i zatrzymaj sie na nastepnym powrocie z danego sygnalu

   Rejestry sa ustawione tak:
   EBX, ECX, EDX, ESI, EDI, EBP, EAX, DS, ES, FS, GS, ORIG_EAX, EIP, CS,
   EFL, UESP, SS, FRAME_SIZE.
     _________________________________________________________________

   Wartosci bledow zwracanych przez funkcje systemowe Linuksa. Te numery
   mozna znalezc takze w:
     * mojej bibliotece - zalacznik "bibl/incl/..../...._system.inc"
     * /usr/src/linux/include/asm/errors.h
     * man errno (tylko czesc)

   "Prawdziwe" zwracane wartosci bledow sa przeciwnego znaku (na przyklad
   EIO = -5).
%define EPERM            1      ; Operacja niedozwolona
%define ENOENT           2      ; Nie ma takiego pliku/katalogu
%define ESRCH            3      ; Nie ma takiego procesu
%define EINTR            4      ; Przerwana funkcja systemowa
%define EIO              5      ; Blad I/O
%define ENXIO            6      ; Nie ma takiego urzadzenia/adresu
%define E2BIG            7      ; Za dluga lista argumentow
%define ENOEXEC          8      ; Blad formatu wykonywalnego
%define EBADF            9      ; Zly numer pliku
%define ECHILD          10      ; Nie ma procesow potomnych
%define EAGAIN          11      ; Zasoby chwilowo niedostepne.
%define ENOMEM          12      ; Brak pamieci
%define EACCES          13      ; Odmowa dostepu
%define EFAULT          14      ; Zly adres
%define ENOTBLK         15      ; Wymagane jest urzadzenie blokowe
%define EBUSY           16      ; Urzadzenie/zasob zajety
%define EEXIST          17      ; Plik istnieje
%define EXDEV           18      ; Dowiazanie miedzyurzadzeniowe
%define ENODEV          19      ; Nie ma takiego urzadzenia
%define ENOTDIR         20      ; To nie jest katalog
%define EISDIR          21      ; To jest katalog
%define EINVAL          22      ; Nieprawidlowy argument
%define ENFILE          23      ; Przepelnienie tablicy plikow
%define EMFILE          24      ; Za duzo otwartych plikow
%define ENOTTY          25      ; Nieodpowiednia operacja kontroli
                                ; wejscia/wyjscia (Not a typewriter)
%define ETXTBSY         26      ; Plik tekstowy zajety
%define EFBIG           27      ; Plik za duzy
%define ENOSPC          28      ; Brak miejsca na urzadzeniu
%define ESPIPE          29      ; Nieprawidlowa zmiana pozycji w pliku
%define EROFS           30      ; System plikow tylko do odczytu
%define EMLINK          31      ; Za duzo linkow
%define EPIPE           32      ; Zly potok
%define EDOM            33      ; Argument poza dziedzina funkcji matemat.
%define ERANGE          34      ; Wyniku nie da sie przedstawic
%define EDEADLK         35      ; Uniknieto zakleszczenia zasobow
                                ; (Resource deadlock would occur)
%define ENAMETOOLONG    36      ; Zbyt dluga nazwa pliku
%define ENOLCK          37      ; Brak dostepnych blokad
%define ENOSYS          38      ; Funkcja nie zaimplementowana
%define ENOTEMPTY       39      ; Katalog nie jest pusty
%define ELOOP           40      ; Zbyt duzo linkow symbolicznych
%define EWOULDBLOCK     EAGAIN  ; Zasoby chwilowo niedostepne (operacja
                                ;   zablokowalaby program)
%define ENOMSG          42      ; Nie ma wiadomosci zadanego typu
%define EIDRM           43      ; Identyfikator usuniety
%define ECHRNG          44      ; Numer kanalu spoza zasiegu
%define EL2NSYNC        45      ; Poziom 2 nie zsynchronizowany
%define EL3HLT          46      ; Poziom 3 zatrzymany
%define EL3RST          47      ; Poziom 3 ponownie uruchomiony
%define ELNRNG          48      ; Za duza liczba linkow/numer linku
%define EUNATCH         49      ; Niepodlaczony sterownik protokolu
%define ENOCSI          50      ; Brak wolnych struktur CSI
%define EL2HLT          51      ; Poziom 2 zatrzymany
%define EBADE           52      ; Nieprawidlowa wymiana
%define EBADR           53      ; Nieprawidlowy deskryptor zadania
%define EXFULL          54      ; Wymiana pelna (bufor?)
%define ENOANO          55      ; No anode
%define EBADRQC         56      ; Nieprawidlowy kod zadania
%define EBADSLT         57      ; Invalid slot

%define EDEADLOCK       EDEADLK

%define EBFONT          59      ; Nieprawidlowy format pliku czcionki
%define ENOSTR          60      ; Urzadzenie nie jest strumieniem
%define ENODATA         61      ; Nie ma danych
%define ETIME           62      ; Przekroczony limit czasu
%define ENOSR           63      ; Brak zasobow strumieniowych
%define ENONET          64      ; Komputer nie jest w sieci
%define ENOPKG          65      ; Pakiet nie zainstalowany
%define EREMOTE         66      ; Obiekt jest zdalny
%define ENOLINK         67      ; Link has been severed
%define EADV            68      ; Advertise error
%define ESRMNT          69      ; Srmount error
%define ECOMM           70      ; Blad komunikacji przy wysylaniu
%define EPROTO          71      ; Blad protokolu
%define EMULTIHOP       72      ; Multihop attempted
%define EDOTDOT         73      ; Blad specyficzny dla RFS
%define EBADMSG         74      ; To nie jest wiadomosc z danymi
%define EOVERFLOW       75      ; Wartosc za duza dla okreslonego typu
%define ENOTUNIQ        76      ; Nazwa nie jest unikalna w sieci
%define EBADFD          77      ; Deskryptor pliku w zlym stanie
%define EREMCHG         78      ; Zmiana adresu zdalnego
%define ELIBACC         79      ; Nie mozna sie dostac do wymaganej bibl.
%define ELIBBAD         80      ; Dostep do zepsutej
                                ;     biblioteki wspoldzielonej
%define ELIBSCN         81      ; Zepsuta sekcja .lib w a.out
%define ELIBMAX         82      ; Proba podlaczenia zbyt wielu bibliotek
                                ;     wspoldzielonych
%define ELIBEXEC        83      ; Nie mozna bezposrednio uruchamiac
                                ;     biblioteki wspoldzielonej
%define EILSEQ          84      ; Nieprawidlowa sekwencja bajtow
%define ERESTART        85      ; Przerwana funkcja systemowa powinna zostac
                                ;     uruchomiona ponownie
%define ESTRPIPE        86      ; Streams pipe error
%define EUSERS          87      ; Za duzo uzytkownikow
%define ENOTSOCK        88      ; Operacja gniazdowa na nie-gniezdzie
%define EDESTADDRREQ    89      ; Wymagany adres docelowy
%define EMSGSIZE        90      ; Wiadomosc za dluga
%define EPROTOTYPE      91      ; Zly typ protokolu dla gniazda
%define ENOPROTOOPT     92      ; Protokol niedostepny
%define EPROTONOSUPPORT 93      ; Protokol nieobslugiwany
%define ESOCKTNOSUPPORT 94      ; Typ gniazda nieobslugiwany
%define EOPNOTSUPP      95      ; Operacja nie obslugiwana po drugiej
                                ;     stronie transportu
%define EPFNOSUPPORT    96      ; Nieobslugiwana rodzina protokolow
%define EAFNOSUPPORT    97      ; Rodzina adresow nie obslugiwana przez
                                ;     ten protokol
%define EADDRINUSE      98      ; Adres juz jest uzywany
%define EADDRNOTAVAIL   99      ; Nie mozna przydzielic zadanego adresu
%define ENETDOWN        100     ; Siec nie dziala
%define ENETUNREACH     101     ; Siec jest niedostepna
%define ENETRESET       102     ; Brak sieci z powodu resetu
%define ECONNABORTED    103     ; Przerwanie polaczenia przez program
%define ECONNRESET      104     ; Reset polaczenia przez druga strone
%define ENOBUFS         105     ; Brak miejsca w buforze
%define EISCONN         106     ; Druga strona transportu juz jest
                                ;     podlaczona
%define ENOTCONN        107     ; Druga strona transportu nie jest
                                ;     podlaczona
%define ESHUTDOWN       108     ; Nie mozna wysylac po wylaczeniu z drugiej
                                ;     strony transportu
%define ETOOMANYREFS    109     ; Too many references: cannot splice
%define ETIMEDOUT       110     ; Przekroczony limit czasu polaczenia
%define ECONNREFUSED    111     ; Odmowa polaczenia
%define EHOSTDOWN       112     ; Host jest wylaczony
%define EHOSTUNREACH    113     ; Nie ma drogi do hosta
%define EALREADY        114     ; Operacja juz trwa
%define EINPROGRESS     115     ; Operacja trwa teraz
%define ESTALE          116     ; Stale NFS file handle
%define EUCLEAN         117     ; Struktura wymaga porzadkowania
%define ENOTNAM         118     ; Not a XENIX named type file
%define ENAVAIL         119     ; No XENIX semaphores available
%define EISNAM          120     ; Is a named type file
%define EREMOTEIO       121     ; Blad zdalnego I/O
%define EDQUOT          122     ; Przekroczony limit dyskowy (Quota)

%define ENOMEDIUM       123     ; Brak nosnika
%define EMEDIUMTYPE     124     ; Zly typ nosnika
%define ECANCELED       125     ; Zrezygnowano z operacji
%define ENOKEY          126     ; Wymagany klucz niedostepny
%define EKEYEXPIRED     127     ; Klucz przedawniony
%define EKEYREVOKED     128     ; Klucz niewazny
%define EKEYREJECTED    129     ; Klucz odrzucony

%define EOWNERDEAD      130     ; Wlasciciel zginal
%define ENOTRECOVERABLE 131     ; State not recoverable


%define ERESTARTSYS     512
%define ERESTARTNOINTR  513
%define ERESTARTNOHAND  514     ; restart if no handler..
%define ENOIOCTLCMD     515     ; No ioctl command
%define ERESTART_RESTARTBLOCK 516 ; restart by calling sys_restart_syscall

; NFS v3
%define EBADHANDLE      521     ; Illegal NFS file handle
%define ENOTSYNC        522     ; Update synchronization mismatch
%define EBADCOOKIE      523     ; Cookie is stale
%define ENOTSUPP        524     ; Operacja nieobslugiwana
%define ETOOSMALL       525     ; Bufor lub zadanie za male
%define ESERVERFAULT    526     ; An untranslatable error occurred
%define EBADTYPE        527     ; Typ nieobslugiwany przez serwer
%define EJUKEBOX        528     ; Request initiated, but will not
                                ;     complete before timeout
%define EIOCBQUEUED     529     ; iocb queued, will get completion event
%define EIOCBRETRY      530     ; iocb queued, will trigger a retry

#define EWOULDBLOCKIO   530     ; Would block due to block-IO
     _________________________________________________________________

   Struktura "tms" (funkcja 43) z /usr/include/linux/times.h:
        struct tms {
                clock_t tms_utime;
                clock_t tms_stime;
                clock_t tms_cutime;
                clock_t tms_cstime;
            };
     _________________________________________________________________

   Struktura "flock" z /usr/include/asm/fcntl.h:
        struct flock {
                short l_type;   // rodzaj blokady pliku (WORD)

                short l_whence; // patrz SEEK_* powyzej? (WORD)

                off_t l_start;  // adres miejsca, do ktorego odnosi
                                // sie blokada, w bajtach liczonych
                                // od pozycji okreslonej
                                // przez l_whence (DWORD)

                off_t l_len;    // dlugosc zablokowanego obszaru.
                                // Zero oznacza do konca pliku (DWORD)

                pid_t l_pid;    // otrzymane komenda F_GETLK,
                                // ignorowane przy wlaczaniu blokady (DWORD)
        };
     _________________________________________________________________

   CAPTION: Argumenty funkcji sys_fcntl (numer 55) z
   /usr/include/bits/fcntl.h

   ECX (komenda) Wartosc Opis
   F_DUPFD
   0
   EDX staje sie kopia deskryptora z EBX
   F_GETFD
   1
   Odczytaj flage close-on-exec. Gdy bit0=0, plik zostanie otwarty pomimo
   exec, inaczej plik zostanie zamkniety.
   F_SETFD
   2
   Ustaw flage close-on-exec na wartosc ostatniego bitu w EDX
   F_GETFL
   3
   Zwroc takie flagi deskryptora, jakie byly ustawione przez funkcje open
   F_SETFL
   4
   Ustaw flagi deskryptora na wartosc EDX. Mozna ustawic tylko O_APPEND i
   O_NONBLOCK.
   F_GETLK
   5
   [Jesli uruchamiasz sys_fcntl64, uzyj wersji 64-bitowej]
   EDX ma adres struktury flock. Zwroc strukture flock, ktora chroni nas
   przed uzyskaniem blokady lub ustaw pole l_type blokady na F_UNLCK
   jesli mozliwe
   F_SETLK
   6
   [Jesli uruchamiasz sys_fcntl64, uzyj wersji 64-bitowej]
   EDX ma adres struktury flock. Blokada jest ustawiana jesli l_type jest
   F_RDLCK lub F_WRLCK albo usuwana, gdy jest F_UNLCK. Jesli blokada jest
   przechowywana przez kogos innego, zwraca -1 i EACCES lub EAGAIN.
   F_SETLKW
   7
   [Jesli uruchamiasz sys_fcntl64, uzyj wersji 64-bitowej]
   Podobnie jak F_SETLK, ale zamiast zwracac blad, czeka na zwolnienie
   blokady.
   F_SETOWN
   8
   Ustaw proces, bedacy wlascicielem gniazda (socket). Tutaj i w
   ponizszej funkcji grupy procesow zwracane sa jako wartosci ujemne.
   F_GETOWN
   9
   Pobierz ID procesu, bedacego wlascicielem gniazda.
   F_SETSIG
   10
   Ustaw numer sygnalu, ktory ma zostac wyslany.
   F_GETSIG
   11
   Pobierz numer sygnalu, ktory ma zostac wyslany.
   F_GETLK64
   12
   EDX ma adres struktury flock. Zwroc strukture flock, ktora chroni nas
   przed uzyskaniem blokady lub ustaw pole l_type locka na F_UNLCK jesli
   mozliwe
   F_SETLK64
   13
   EDX ma adres struktury flock. Blokada jest ustawiana jesli l_type jest
   F_RDLCK lub F_WRLCK albo usuwana, gdy jest F_UNLCK. Jesli blokada jest
   przechowywana przez kogos innego, zwraca -1 i EACCES lub EAGAIN.
   F_SETLKW64
   14
   Podobnie jak F_SETLK, ale zamiast zwracac blad, czeka na zwolnienie
   blokady.
   F_SETLEASE
   1024
   Ustaw dzierzawe.
   F_GETLEASE
   1025
   Pobierz informacje, jaka dzierzawa jest aktywna.
   F_NOTIFY
   1026
   Zadaj powiadomien na danym katalogu.
     _________________________________________________________________

   Struktura sigaction (funkcja 67) z /usr/include/asm/signal.h:
        struct sigaction {
                __sighandler_t sa_handler;      //procedura obslugi sygnalu
                unsigned long sa_flags;
                void (*sa_restorer)(void);      // procedura przywracajaca?
                sigset_t sa_mask;               // maska utrzymywana dla
                                                // rozszerzalnosci
            };

        typedef void (*__sighandler_t)(int);    // typ procedury
                                                // obslugi sygnalu

        #define _NSIG           64
        #define _NSIG_BPW       32
        #define _NSIG_WORDS     (_NSIG/_NSIG_BPW)

        typedef struct {
                unsigned long sig[_NSIG_WORDS];
            } sigset_t;                         // definicja typu tej
                                                // maski powyzej
     _________________________________________________________________

   Struktura rlimit (funkcje 75 i 76) z /usr/include/linux/resource.h:
        struct rlimit {
                unsigned long rlim_cur; // limit "miekki" lub
                                        // RLIM_INFINITY=-1 jesli brak
                unsigned long rlim_max; // maksymalny limit lub
                                        // RLIM_INFINITY jesli brak
            };

   CAPTION: Tabela numerow zasobow z /usr/include/bits/resource.h

   nazwa wartosc co oznacza
   RLIMIT_CPU
   0
   limit czasu procesora w sekundach
   RLIMIT_FSIZE
   1
   rozmiar w bajtach najwiekszego pliku mozliwego do utworzenia
   RLIMIT_DATA
   2
   maksymalny rozmiar w bajtach wszystkich segmentow danych
   RLIMIT_STACK
   3
   maksymalny rozmiar stosu w bajtach
   RLIMIT_CORE
   4
   maksymalny rozmiar rdzenia (core) w bajtach
   RLIMIT_RSS
   5
   maksymalny rozmiar kodu rezydentnego
   RLIMIT_NPROC
   6
   maksymalna liczba procesow dla danego rzeczywistego PID
   RLIMIT_OFILE, RLIMIT_NOFILE
   7
   maksymalna liczba otwartych deskryptorow + 1
   RLIMIT_MEMLOCK
   8
   maksymalna liczba bajtow pamieci, ktora mozna zablokowac (sys_mlock)
   RLIMIT_AS
   9
   limit przestrzeni adresowej
   RLIMIT_LOCKS
   10
   limit blokad plikow (sys_flock itp.)
   RLIMIT_SIGPENDING
   11
   maksymalna liczba czekajacych sygnalow
   RLIMIT_MSGQUEUE
   12
   maksymalna liczba bajtow w kolejkach wiadomosci
   RLIMIT_NICE
   13
   maksymalny priorytet sys_nice, jaki mozna ustawic
   RLIMIT_RTPRIO
   14
   maksymalny priorytet czasu rzeczywistego, jaki mozna ustawic dla
   nieuprzywilejowanego procesu
     _________________________________________________________________

   Struktura rusage (funkcja 77) z /usr/include/linux/resource.h:
            #define     RUSAGE_SELF     0
            #define     RUSAGE_CHILDREN (-1)
            #define     RUSAGE_BOTH     (-2)    // sys_wait4() uzywa tego

            struct      rusage {
                struct timeval ru_utime; // wykorzystany czas uzytkownika
                struct timeval ru_stime; // wykorzystany czas systemu
                long    ru_maxrss;      // rozmiar maksymalnego
                                        // rezydentnego zbioru?
                long    ru_ixrss;       // rozmiar wspoldzielonej pamieci
                long    ru_idrss;       // rozmiar niewspoldzielonej pamieci
                long    ru_isrss;       // rozmiar niewspoldzielonego stosu
                long    ru_minflt;      // liczba odzyskanych stron pamieci
                long    ru_majflt;      // liczba bledow stron pamieci
                long    ru_nswap;       // wymiany (swaps)
                long    ru_inblock;     // blokujace operacje wejscia
                long    ru_oublock;     // blokujace operacje wyjscia
                long    ru_msgsnd;      // wyslane wiadomosci
                long    ru_msgrcv;      // odebrane wiadomosci
                long    ru_nsignals;    // odebrane sygnaly
                long    ru_nvcsw;       // dobrowolne zmiany kontekstu
                long    ru_nivcsw;      // niedobrowolne zmiany kontekstu
            };
     _________________________________________________________________

   Struktura timeval (funkcja 78) z /usr/include/linux/time.h:
        struct timeval {
                time_t          tv_sec;         // dword, sekundy
                suseconds_t     tv_usec;        // dword, mikrosekundy
            };
     _________________________________________________________________

   Struktura timezone (funkcja 78) z /usr/include/linux/time.h:
        struct timezone {
                int     tz_minuteswest; // minuty na zachod od Greenwich
                int     tz_dsttime;     // typ poprawki punktu docelowego?
                };
     _________________________________________________________________

   Struktura sigset_t (funkcje 72 i 73) z /usr/include/asm/signal.h:
        #define _NSIG           64
        #define _NSIG_BPW       32
        #define _NSIG_WORDS     (_NSIG/_NSIG_BPW)

        typedef struct {
                unsigned long sig[_NSIG_WORDS];
            } sigset_t;
     _________________________________________________________________

   CAPTION: Komendy dla funkcji sys_ulimit (numer 58) z
   /usr/include/ulimit.h

   nazwa wartosc komenda
   UL_GETFSIZE
   1
   pobierz limit rozmiaru pliku, w 512-bajtowych jednostkach
   UL_SETFSIZE
   2
   ustaw limit rozmiaru pliku, w 512-bajtowych jednostkach
   __UL_GETMAXBRK
   3
   (podobno nie w Linuksie) podaj najwyzszy mozliwy adres w segmencie
   danych
   __UL_GETOPENMAX
   4
   podaj najwieksza liczbe plikow, ktora ten proces moze otworzyc
     _________________________________________________________________

   CAPTION: Typ urzadzenia dla funkcji sys_mknod (numer 14) z
   /usr/include/linux/stat.h

   nazwa  osemkowo      typ urzadzenia
   S_IFREG
          0100000
                   normalny plik
   S_IFCHR
          0020000
                   urzadzenie znakowe
   S_IFBLK
          0060000
                   urzadzenie blokowe
   S_IFIFO
          0010000
                   nazwany potok (named pipe)
     _________________________________________________________________

   Struktura "utimbuf" (funkcja 30) z /usr/include/linux/utime.h:
              struct utimbuf {
                      time_t actime;  /* czas dostepu */
                      time_t modtime; /* czas ostatniej zmiany */
              };
     _________________________________________________________________

   Struktura "timeb" (funkcja 35) z /usr/include/sys/timeb.h:
        struct timeb {
                time_t   time;          /*liczba sekund od poczatku epoki*/
                unsigned short millitm; /* liczba milisekund od chwili
                                           time sekund */
                short    timezone;      /* przesuniecie czasu dla strefy
                                           lokalnej w minutach na zachod
                                            od Greenwich */
                short    dstflag;       /* rozne od zera oznacza, ze w
                                           danej czesci roku obowiazuje
                                           czas letni */
                 };
     _________________________________________________________________

   Struktura "ustat" (funkcja 62) z /usr/include/bits/ustat.h:
        struct ustat {
                __daddr_t f_tfree; /* calkowita liczba wolnych blokow */
                __ino_t f_tinode;  /* liczba wolnych wezlow i-node */
                char f_fname[6];   /* nazwa systemu plikow (nieuzywane) */
                char f_fpack[6];   /* nazwa paczki(?) systemu plikow
                                         (nieuzywane) */
                  };
     _________________________________________________________________

   Flagi dla funkcji swapon (numer 87) z /usr/include/sys/swap.h:
/* Priorytet przestrzeni wymiany swap jest kodowany tak:
   (prio << SWAP_FLAG_PRIO_SHIFT) & SWAP_FLAG_PRIO_MASK
*/
#define SWAP_FLAG_PREFER        0x8000  /* Ustawiony, jesli jest okreslony
                                           priorytet. Ustawienie tego bitu
                                           powoduje to, ze nowa przestrzen
                                           wymiany bedzie miala wyzszy
                                           priorytet */
#define SWAP_FLAG_PRIO_MASK     0x7fff
#define SWAP_FLAG_PRIO_SHIFT    0
     _________________________________________________________________

   CAPTION: Flagi dla funkcji reboot (numer 88) z
   /usr/include/linux/reboot.h

   nazwa wartosc co oznacza
   LINUX_REBOOT_CMD_RESTART
   0x01234567
   reset systemu
   LINUX_REBOOT_CMD_HALT
   0xCDEF0123
   zatrzymanie systemu
   LINUX_REBOOT_CMD_CAD_ON
   0x89ABCDEF
   wlaczenie obslugi Ctrl-Alt-Del
   LINUX_REBOOT_CMD_CAD_OFF
   0x00000000
   wylaczenie obslugi Ctrl-Alt-Del
   LINUX_REBOOT_CMD_POWER_OFF
   0x4321FEDC
   wylaczenie zasilania
   LINUX_REBOOT_CMD_RESTART2
   0xA1B2C3D4
   reset z uzyciem komendy podanej jako dodatkowy argument
     _________________________________________________________________

   Struktura "dirent" (funkcja 89 i 141) z /usr/include/linux/dirent.h:
        struct dirent {
                long d_ino;                 /* numer i-wezla */
                off_t d_off;                /* offset od poczatku katalogu
                                        do nastepnej struktury dirent
                                        (do biezacego dirent?) */
                unsigned short d_reclen;    /* dlugosc tego dirent
                                                 (d_name?) */
                char d_name [NAME_MAX+1];   /* nazwa pliku (zakonczona
                                                 znakiem zerowym) */
              };
     _________________________________________________________________

   CAPTION: Rodzaje ochrony mapowanych danych (funkcja 90) z
   /usr/include/bits/mman.h

     nazwa   wartosc            co oznacza
   PROT_READ
             1
                     strona pamieci moze byc czytana
   PROT_WRITE
             2
                     strona moze byc zapisywana
   PROT_EXEC
             4
                     strona moze byc wykonywana
   PROT_NONE
             0
                     nie ma dostepu do strony

   Mozna uzyc OR, by polaczyc wiecej flag.
     _________________________________________________________________

   CAPTION: Flagi mapowania danych (funkcja 90) z
   /usr/include/bits/mman.h

   nazwa wartosc co oznacza
   MAP_FIXED
   0x10
   Koniecznie uzyj adresu podanego jako parametr
   MAP_GROWSDOWN
   0x0100
   Segment typu stosowego ("rosnie" w dol)
   MAP_DENYWRITE
   0x0800
   Ignorowane
   MAP_EXECUTABLE
   0x1000
   Wykonywalny (ignorowane)
   MAP_LOCKED
   0x2000
   Zablokuj mapowanie. Ignorowane.
   MAP_NORESERVE
   0x4000
   Nie rezerwuj stron wymiany swap dla tego mapowania.
   MAP_POPULATE
   0x8000
   Rozmnoz tablice stron?
   MAP_NONBLOCK
   0x10000
   Nie blokuj w czasie we/wy.
   MAP_FILE
   0
   uzyj pliku? Ignorowane.
   MAP_ANONYMOUS, MAP_ANON
   0x20
   Nie uzywaj pliku. Ignorowane sa deskryptor pliku i parametr offset.
   Zaimplementowany od 2.4

   Wybrac tylko 1 sposrod tych:

   CAPTION: Rodzaje wspoldzielenia

     nazwa    wartosc      co oznacza
   MAP_SHARED
              0x01
                      wspoldzielenie zmian
   MAP_PRIVATE
              0x02
                      zmiany sa prywatne
     _________________________________________________________________

   CAPTION: Parametry funkcji 96 i 97 (z /usr/include/bits/resource.h)

   EBX = czyj priorytet pobieramy/zmieniamy wartosc w EBX co oznacza
   PRIO_PROCESS
   0
   ECX to ID procesu
   PRIO_PGRP
   1
   ECX to ID grupy procesow
   PRIO_USER
   2
   ECX to ID uzytkownika
     _________________________________________________________________

   Struktura "statfs" (funkcja 99) z /usr/include/asm/statfs.h:
        struct statfs {
                long    f_type;     /* typ systemu plikow (patrz nizej) */
                long    f_bsize;    /* optymalny rozmiar bloku transferu */
                long    f_blocks;   /* calkowita liczba blokow danych */
                long    f_bfree;    /* wolne bloki */
                long    f_bavail;   /* wolne bloki dostepne dla
                                         nie-superuzytkownikow */
                long    f_files;    /* calkowita liczba wezlow plikow
                                         (file nodes) */
                long    f_ffree;    /* wolne wezly */
                fsid_t  f_fsid;     /* ID systemu plikow */
                long    f_namelen;  /* maks. dlugosc nazwy pliku */
                long    f_spare[6]; /* zapasowe na pozniej */
              };

                struct
              {
                int __val[2];
              } __fsid_t;               /* typ struktury fsid_t powyzej */

   CAPTION: Typ systemu plikow

          nazwa                  wartosc
   AFFS_SUPER_MAGIC
                       0xADFF
   EXT_SUPER_MAGIC
                       0x137D
   EXT2_OLD_SUPER_MAGIC
                       0xEF51
   EXT2_SUPER_MAGIC
                       0xEF53
   HPFS_SUPER_MAGIC
                       0xF995E849
   ISOFS_SUPER_MAGIC
                       0x9660
   MINIX_SUPER_MAGIC
                       0x137F (oryg. minix)
   MINIX_SUPER_MAGIC2
                       0x138F (30-znakowy minix)
   MINIX2_SUPER_MAGIC
                       0x2468 (minix V2)
   MINIX2_SUPER_MAGIC2
                       0x2478 (minix V2, 30-znakowy)
   MSDOS_SUPER_MAGIC
                       0x4d44
   NCP_SUPER_MAGIC
                       0x564c
   NFS_SUPER_MAGIC
                       0x6969
   PROC_SUPER_MAGIC
                       0x9fa0
   SMB_SUPER_MAGIC
                       0x517B
   XENIX_SUPER_MAGIC
                       0x012FF7B4
   SYSV4_SUPER_MAGIC
                       0x012FF7B5
   SYSV2_SUPER_MAGIC
                       0x012FF7B6
   COH_SUPER_MAGIC
                       0x012FF7B7
   UFS_MAGIC
                       0x00011954
   _XIAFS_SUPER_MAGIC
                       0x012FD16D
     _________________________________________________________________

   CAPTION: Komenda dla funkcji sys_syslog (numer 103) z
   /usr/src/linux/kernel/printk.c

   wartosc                              komentarz
   0
           Zamknij log. Nic nie robi.
   1
           Otworz log. Nic nie robi.
   2
           Czytaj z logu co najwyzej EDX bajtow do [ECX]. Zwraca w EAX liczbe
           odczytanych bajtow.
   3
           Przeczytaj wszystkie (ostatnie EDX bajtow) wiadomosci pozostale w
           buforze. Zwraca w EAX liczbe odczytanych bajtow.
   4
           Przeczytaj i wyczysc wszystkie (ostatnie EDX bajtow) wiadomosci
           pozostale w buforze. Zwraca w EAX liczbe odczytanych bajtow.
   5
           Wyczysc bufor.
   6
           Wylacz funkcje printk() na konsole.
   7
           Wlacz funkcje printk() na konsole.
   8
           Ustal poziom logowania wiadomosci wysylanych na konsole.
     _________________________________________________________________

   CAPTION: Numer czasomierza (funkcja 104) z /usr/include/linux/time.h

       nazwa     wartosc              komentarz
   ITIMER_REAL
                 0
                         odlicza czas rzeczywisty
   ITIMER_VIRTUAL
                 1
                         odlicza czas wykonywania sie procesu
   ITIMER_PROF
                 2
                         odlicza oba czasy
     _________________________________________________________________

   Struktura "itimerval" (funkcja 104) z /usr/include/linux/time.h:
        struct itimerval {
                struct timeval it_interval; /* nastepna wartosc? */
                struct timeval it_value;    /* obecna wartosc */
            };

        struct timeval {
                long tv_sec;                /* sekundy */
                long tv_usec;               /* mikrosekundy */
            };
     _________________________________________________________________

   Struktura "stat" (funkcja 104) z man 2 stat (i
   /usr/include/asm/stat.h, gdzie zwykle dane sa bardziej adekwatne do
   posiadanego systemu, niz na stronach manuala):
                /* ze strony manuala: */
              struct stat {
                  dev_t         st_dev;      /* urzadzenie */
                  ino_t         st_ino;      /* i-wezel (inode) */
                  umode_t       st_mode;     /* ochrona */
                  nlink_t       st_nlink;    /* liczba dowiazan stalych
                                                 (hardlinks) */
                  uid_t         st_uid;      /*ID uzytkownika wlasciciela*/
                  gid_t         st_gid;      /* ID grupy wlasciciela */
                  dev_t         st_rdev;     /* typ urzadzenia (jesli
                                                 urzadzenie inode) */
                  off_t         st_size;     /* calkowity rozmiar
                                                w bajtach */
                  unsigned long st_blksize;  /* wielkosc bloku dla I/O
                                                 systemu plikow */
                  unsigned long st_blocks;   /*liczba zaalokowanych blokow*/
                  time_t        st_atime;    /* czas ostatniego dostepu */
                  time_t        st_mtime;    /*czas ostatniej modyfikacji*/
                  time_t        st_ctime;    /* czas ostatniej zmiany */
              };

                /* z pliku /usr/include/asm/stat.h: */
                struct stat {
                        unsigned long  st_dev;
                        unsigned long  st_ino;
                        unsigned short st_mode;
                        unsigned short st_nlink;
                        unsigned short st_uid;
                        unsigned short st_gid;
                        unsigned long  st_rdev;
                        unsigned long  st_size;
                        unsigned long  st_blksize;
                        unsigned long  st_blocks;
                        unsigned long  st_atime;
                        unsigned long  st_atime_nsec;
                        unsigned long  st_mtime;
                        unsigned long  st_mtime_nsec;
                        unsigned long  st_ctime;
                        unsigned long  st_ctime_nsec;
                        unsigned long  __unused4;
                        unsigned long  __unused5;
                };

   CAPTION: Mozliwe wartosci pola st_mode

   nazwa osemkowo co oznacza
   S_IFMT
   00170000
   maska bitowa dla pol bitowych typu pliku
   S_IFSOCK
   0140000
   gniazdo
   S_IFLNK
   0120000
   dowiazanie symboliczne (symbolic link)
   S_IFREG
   0100000
   plik regularny
   S_IFBLK
   0060000
   urzadzenie blokowe
   S_IFDIR
   0040000
   katalog
   S_IFCHR
   0020000
   urzadzenie znakowe
   S_IFIFO
   0010000
   fifo
   S_ISUID
   0004000
   bit 'set UID'
   S_ISGID
   0002000
   bit 'set GID'
   S_ISVTX
   0001000
   bit 'sticky'
   S_IRWXU
   00700
   uzytkownik (wlasciciel pliku) ma prawa odczytu, zapisu i wykonania
   S_IRUSR (S_IREAD)
   00400
   uzytkownik ma prawa odczytu
   S_IWUSR (S_IWRITE)
   00200
   uzytkownik ma prawa zapisu
   S_IXUSR (S_IEXEC)
   00100
   uzytkownik ma prawa wykonania
   S_IRWXG
   0070
   grupa ma prawa odczytu, zapisu i wykonania
   S_IRGRP (S_IREAD)
   0040
   grupa ma prawa odczytu
   S_IWGRP (S_IWRITE)
   0020
   grupa ma prawa zapisu
   S_IXGRP (S_IEXEC)
   0010
   uzytkownik ma prawa wykonania
   S_IRWXO
   007
   inni maja prawa odczytu, zapisu i wykonania
   S_IROTH (S_IREAD)
   004
   inni maja prawa odczytu
   S_IWOTH (S_IWRITE)
   002
   inni maja prawa zapisu
   S_IXOTH (S_IEXEC)
   001
   inni maja prawa wykonania
     _________________________________________________________________

   Struktura "vm86_struct" (funkcja 113) z /usr/include/asm/vm86.h:
        struct vm86_struct {
                struct vm86_regs regs;
                unsigned long flags;
                unsigned long screen_bitmap;
                unsigned long cpu_type;
                struct revectored_struct int_revectored;
                struct revectored_struct int21_revectored;
        };

        struct vm86_regs {
        /*
         * normalne rejestry, ze specjalnym znaczeniem dla
                rej.segmentowych i deskryptorow
         */
                long ebx;
                long ecx;
                long edx;
                long esi;
                long edi;
                long ebp;
                long eax;
                long __null_ds;
                long __null_es;
                long __null_fs;
                long __null_gs;
                long orig_eax;
                long eip;
                unsigned short cs, __csh;
                long eflags;
                long esp;
                unsigned short ss, __ssh;
        /*
         * te sa specyficzne dla trybu v86:
         */
                unsigned short es, __esh;
                unsigned short ds, __dsh;
                unsigned short fs, __fsh;
                unsigned short gs, __gsh;
        };

        struct revectored_struct {
                unsigned long __map[8];            /* 256 bitow */
        };
     _________________________________________________________________

   Opcje dla funkcji typu "wait" (numer 7 i 114) to wartosc 0 lub jedna
   lub wiecej tych opcji (z /usr/include/bits/waitflags.h):

   CAPTION: Opcje dla funkcji typu "wait"

   nazwa wartosc co oznacza
   WNOHANG
   1
   nie blokuj czekania, wraca natychmiast, gdy zaden potomek sie nie
   zakonczyl. Tylko dla sys_wait/pid
   WUNTRACED
   2
   podaj status zatrzymanych procesow potomnych. Tylko dla sys_wait,
   sys_waitpid
   WCONTINUED
   8
   czekaj na zatrzymanych potomkow, wznowionych sygnalem SIGCONT
   WSTOPPED
   2
   czekaj na potomkow zatrzymanych przez sygnal. Tylko dla sys_waitid
   WEXITED
   4
   czekaj na zakonczenie potomkow. Tylko dla sys_waitid
   WNOWAIT
   0x01000000
   tylko pobierz status. Tylko dla sys_waitid
   __WNOTHREAD
   0x20000000
   nie czekaj na potomkow innych watkow grupy. Tylko dla sys_waitid
   __WALL
   0x40000000
   czekaj na ktoregokolwiek z potomkow. Tylko dla sys_waitid
   __WCLONE
   0x80000000
   czekaj na sklonowane procesy. Tylko dla sys_waitid
     _________________________________________________________________

   Struktura sysinfo (funkcja 116) z /usr/include/linux/kernel.h:
        (pre 2.3.16, wszystkie rozmiary w bajtach):

        struct sysinfo {
                   long uptime;             /* liczba sekund od startu
                                                 systemu */
                   unsigned long loads[3];  /* srednie obciazenie w ciagu
                                                 1, 5 i 15 minut */
                   unsigned long totalram;  /* ilosc pamieci */
                   unsigned long freeram;   /* ilosc wolnej pamieci */
                   unsigned long sharedram; /* ilosc pamieci wspolnej */
                   unsigned long bufferram; /* pamiec wykorzystywana
                                                 przez bufory */
                   unsigned long totalswap; /* ilosc pamieci wymiany */
                   unsigned long freeswap;  /* ilosc wolnej
                                                 pamieci wymiany */
                   unsigned short procs;    /* liczba procesow */
                   char _f[22];             /* dopelnienie do 64 bajtow */
              };

        (od 2.3.48, rozmiary w krotnosciach mem_unit?)

        struct sysinfo {
                   long uptime;             /* liczba sekund od startu
                                                 systemu */
                   unsigned long loads[3];  /* srednie obciazenie w ciagu
                                                 1, 5 i 15 minut */
                   unsigned long totalram;  /* ilosc pamieci */
                   unsigned long freeram;   /* ilosc wolnej pamieci */
                   unsigned long sharedram; /* ilosc pamieci wspolnej */
                   unsigned long bufferram; /* pamiec wykorzystywana
                                                przez bufory */
                   unsigned long totalswap; /* ilosc pamieci wymiany */
                   unsigned long freeswap;  /* ilosc wolnej
                                                 pamieci wymiany */
                   unsigned short procs;    /* liczba procesow */
                   unsigned long totalhigh; /* ilosc pamieci wysokiej */
                   unsigned long freehigh;  /* ilosc wolnej
                                                 pamieci wysokiej */
                   unsigned int mem_unit;   /* wielkosc jednostki pamieci
                                                 w bajtach */
                                /* dopelnienie dla libc5 */
                    char _f[20-2*sizeof(long)-sizeof(int)];
              };
     _________________________________________________________________

   Flagi dla funkcji 120 (dla jadra 2.4.18?) z
   /usr/include/linux/sched.h:

   CAPTION: Flagi klonowania

   nazwa wartosc co oznacza
   CSIGNAL
   0x000000ff
   maska sygnalow do wyslania przy wychodzeniu
   CLONE_VM
   0x00000100
   gdy VM jest dzielone miedzy procesy
   CLONE_FS
   0x00000200
   gdy informacje o systemie plikow jest dzielone miedzy procesy
   CLONE_FILES
   0x00000400
   gdy otwarte pliki sa dzielone miedzy procesy
   CLONE_SIGHAND
   0x00000800
   gdy dzielone sa procedury obslugi sygnalow i blokowane sygnaly
   CLONE_PID
   0x00001000
   gdy PID jest dzielony miedzy procesy
   CLONE_PTRACE
   0x00002000
   jesli chcemy, aby klon tez mogl byc sledzony
   CLONE_VFORK
   0x00004000
   jesli klonujacy chce, by proces potomny go obudzil przy mm_release
   CLONE_PARENT
   0x00008000
   jesli klon ma miec tego samego rodzica, co klonujacy
   CLONE_THREAD
   0x00010000
   Ta sama grupa watkow?
   CLONE_NEWNS
   0x00020000
   Nowa grupa przestrzeni nazw??
   CLONE_SIGNAL
   (CLONE_SIGHAND | CLONE_THREAD)
   Polaczenie tych dwoch: ta sama grupa watkow oraz gdy dzielone sa
   procedury obslugi sygnalow i blokowane sygnaly
     _________________________________________________________________

   Struktura utsname (funkcja 122) z /usr/include/sys/utsname.h:
        #define _UTSNAME_LENGTH 65      /* wszystkie tablice ponizej
                                                 sa tej dlugosci */

        struct utsname  {
                /* Nazwa implementacji systemu operacyjnego.  */
                char sysname[_UTSNAME_SYSNAME_LENGTH];

                /* Nazwa tego komputera w sieci.  */
                char nodename[_UTSNAME_NODENAME_LENGTH];

                /* Wydanie (release) tej implementacji.  */
                char release[_UTSNAME_RELEASE_LENGTH];
                /* Wersja tego wydania.  */
                char version[_UTSNAME_VERSION_LENGTH];

                /* Nazwa sprzetu, na ktory system pracuje.  */
                char machine[_UTSNAME_MACHINE_LENGTH];

        #if _UTSNAME_DOMAIN_LENGTH - 0
            /* Nazwa domeny tego komputera w sieci.  */
        # ifdef __USE_GNU
            char domainname[_UTSNAME_DOMAIN_LENGTH];
        # else
            char __domainname[_UTSNAME_DOMAIN_LENGTH];
        # endif
        #endif
          };
     _________________________________________________________________

   Numery funkcji dla modify_ldt (funkcja 123)

   CAPTION: Funkcje zmiany Lokalnej Tablicy Deskryptorow

   wartosc                              co oznacza
   0
           Czytaj LDT do [ECX], EDX bajtow
   1
           Zmien 1 wpis w LDT. ECX ma adres struktury modify_ldt_ldt_s, a EDX -
           jej rozmiar
   2
           Czytaj domyslne LDT do [ECX], EDX bajtow
   17
           Zmien 1 wpis w LDT. ECX ma adres struktury modify_ldt_ldt_s, a EDX -
           jej rozmiar (?)

   Struktura "modify_ldt_ldt_s" (funkcja 123) z /usr/include/asm/ldt.h:
        struct modify_ldt_ldt_s {
                unsigned int  entry_number;
                unsigned long base_addr;
                unsigned int  limit;
                unsigned int  seg_32bit:1;
                unsigned int  contents:2;
                unsigned int  read_exec_only:1;
                unsigned int  limit_in_pages:1;
                unsigned int  seg_not_present:1;
                unsigned int  useable:1;
        };
     _________________________________________________________________

   Struktura "timex" (funkcja 124) z man 2 adjtimex (w
   /usr/include/linux/timex.h jest troche wieksza):
        struct timex {
                int modes;           /* przelacznik trybu */
                long offset;         /* offset czasu (mikrosekundy) */
                long frequency;      /* offset czestotliwosci
                                         (skalowany ppm) */
                long maxerror;       /* maksymalny blad (mikrosekundy) */
                long esterror;       /* obliczony blad (mikrosekundy) */
                int status;          /* komenda/status zegara */
                long constant;       /* stala czasu pll */
                long precision;      /* dokladnosc zegara (mikrosekundy)
                                         (tylko do odczytu) */
                long tolerance;      /* tolerancja czestotliwosci
                                         zegara (ppm) (tylko do odczytu) */
                struct timeval time; /* aktualny czas (tylko do odczytu) */
                long tick;           /* czas miedzy tyknieciami
                                         zegara (mikrosekundy) */
              };

   Pole "modes" okresla, ktore parametry (jesli w ogole) ustawic. Moze
   ono zawierac bitowe OR kombinacji zera lub wiecej sposrod
   nastepujacych wartosci:

   CAPTION: Wartosci pola "modes"

          nazwa         wartosc          opis
   ADJ_OFFSET
                        0x0001
                                offset czasu
   ADJ_FREQUENCY
                        0x0002
                                offset czestotliwosci
   ADJ_MAXERROR
                        0x0004
                                maksymalny blad czasu
   ADJ_ESTERROR
                        0x0008
                                obliczany blad czasu
   ADJ_STATUS
                        0x0010
                                status zegara
   ADJ_TIMECONST
                        0x0020
                                stala czasu pll
   ADJ_TICK
                        0x4000
                                wartosc tykniecia
   ADJ_OFFSET_SINGLESHOT
                        0x8001
                                staromodne adjtime

   Zwyczajni uzytkownicy sa ograniczeni do wartosci zero dla "modes".
   Jedynie superuzytkownik moze ustawiac jakiekolwiek parametry.

   Jesli nie wystapil blad, zwracane jest:

   CAPTION: Mozliwe wyniki dzialania i stan zegara

    nazwa   wartosc               opis
   TIME_OK
            0
                    zegar zsynchronizowany
   TIME_INS
            1
                    dodaj sekunde przestepna
   TIME_DEL
            2
                    skasuj sekunde przestepna
   TIME_OOP
            3
                    sekunda przestepna trwa
   TIME_WAIT
            4
                    wystapila sekunda przestepna
   TIME_BAD
            5
                    blad, zegar nie zsynchronizowany

   Wiecej informacji w /usr/include/linux/timex.h.
     _________________________________________________________________

   Akcja do wykonania (funkcja 126) z /usr/include/asm/signal.h:

   CAPTION: Mozliwe zmiany biezacego zestawu sygnalow blokowanych

   nazwa wartosc opis
   SIG_BLOCK
   0
   Do aktualnego zestawu sygnalow blokowanych dodaj te spod [ECX].
   SIG_UNBLOCK
   1
   Od aktualnego zestawu sygnalow blokowanych usun te spod [ECX].
   SIG_SETMASK
   2
   Aktualny zestaw sygnalow blokowanych zamien na ten spod [ECX].
     _________________________________________________________________

   Struktura "module" (funkcja 128) z man module:
        struct module {
                unsigned long size_of_struct;
                struct module *next;
                const char *name;
                unsigned long size;
                long usecount;
                unsigned long flags;
                unsigned int nsyms;
                unsigned int ndeps;
                struct module_symbol *syms;
                struct module_ref *deps;
                struct module_ref *refs;
                int (*init)(void);
                void (*cleanup)(void);
                const struct exception_table_entry *ex_table_start;
                const struct exception_table_entry *ex_table_end;
              #ifdef __alpha__
                unsigned long gp;
              #endif
              };

   Wiecej w /usr/include/linux/module.h.
     _________________________________________________________________

   Struktura "kernel_sym" (funkcja 130) z /usr/include/linux/module.h:
        struct kernel_sym {
                unsigned long value;
                char name[60];
        };
     _________________________________________________________________

   Komenda do wykonania (funkcja 131) z /usr/include/sys/quota.h (w
   nawiasach z /usr/include/linux/quota.h):

   CAPTION: Opcje limitow dyskowych

   nazwa wartosc opis
   Q_QUOTAON
   0x0100 (0x800002)
   Wlacz limity dyskowe. ESI = adres nazwy pliku zawierajacego limity.
   Q_QUOTAOFF
   0x0200 (0x800003)
   Wylacz limity. EDX i ESI ignorowane.
   Q_GETQUOTA
   0x0300 (0x800007)
   Pobierz limity i biezace zapelnienie dla uzytkownika/grupy EDX. ESI =
   adres struktury mem_dqblk.
   Q_SETQUOTA
   0x0400 (0x800008)
   Ustaw limity i biezace zapelnienie dla uzytkownika/grupy EDX. ESI =
   adres struktury mem_dqblk.
   Q_SETQLIM
   0x0700 (brak)
   Ustaw limity dla uzytkownika/grupy EDX. ESI = adres struktury
   mem_dqblk.
   Q_SETUSE
   0x0500 (brak)
   Ustaw biezace zapelnienie dla uzytkownika/grupy EDX. ESI = adres
   struktury mem_dqblk.
   Q_SYNC
   0x0600 (0x800001)
   Aktualizuj kopie quot dla systemu plikow. Jesli ECX=0, synchronizowane
   sa wszystkie systemy plikow z wlaczona quota. EDX i ESI ignorowane.
   Q_GETSTATS
   0x0800
   Pobierz statystyki i ogolne informacje o quocie. ESI = adres struktury
   dqstats. ECX i EDX ignorowane.
   Q_GETINFO
   brak (0x800005)
   Pobierz informacje o pliku z quotami?. ESI = adres struktury
   mem_dqinfo. EDX ignorowane.
   Q_SETINFO
   brak (0x800006)
   Ustaw informacje o pliku z quotami?. ESI = adres struktury mem_dqinfo.
   EDX ignorowane.
   Q_SETGRACE
   brak (brak)
   Ustal "grace times" w pliku z quotami?. ESI = adres struktury
   mem_dqinfo. EDX ignorowane.
   Q_SETFLAGS
   brak (brak)
   Ustal flagi w informacji o pliku z quotami?. ESI = adres struktury
   mem_dqinfo. EDX ignorowane.

   Na systemie plikow XFS komendy sa inne.
        struct mem_dqblk {
                __u32 dqb_bhardlimit;   /* bezwzgledny limit zajetych
                                                 blokow na dysku */
                __u32 dqb_bsoftlimit;   /* preferowany limit zajetych
                                                 blokow na dysku */
                qsize_t dqb_curspace;   /* biezacy rozmiar zajmowanej
                                                 przestrzeni */
                __u32 dqb_ihardlimit;   /* bezwzgledny limit zajetych
                                                wezlow (i-nodes) na dysku*/
                __u32 dqb_isoftlimit;   /* preferowany limit zajetych
                                                 wezlow na dysku */
                __u32 dqb_curinodes;    /*biezaca liczba zajetych wezlow*/
                time_t dqb_btime;       /* limit czasu nadmiernego
                                                uzycia dysku */
                time_t dqb_itime;       /* limit czasu nadmiernego
                                                uzycia wezla */
        };

        struct mem_dqinfo {
                struct quota_format_type *dqi_format;
                int dqi_flags;
                unsigned int dqi_bgrace;
                unsigned int dqi_igrace;
                union {
                        struct v1_mem_dqinfo v1_i;
                        struct v2_mem_dqinfo v2_i;
                } u;
        };

        struct dqstats {
                int lookups;
                int drops;
                int reads;
                int writes;
                int cache_hits;
                int allocated_dquots;
                int free_dquots;
                int syncs;
        };
     _________________________________________________________________

   Komenda do wykonania (funkcja 134):

   CAPTION: Komendy demona bdflush

   wartosc EBX opis
   <= 0
   jesli demon nie byl uruchomiony, to funkcja wchodzi w kod demona i
   nigdy nie powraca.
   1
   Niektore bufory sa zapisywane na dysk.
   >=2 i jest parzyste
   ECX = adres DWORDa, pod [ECX] zostaje zwrocony parametr dostrajajacy
   rowny (EBX-2)/2
   >=3 i jest nieparzyste
   ECX = DWORD, jadro nadaje te wartosc parametrowi dostrajajacemu o
   numerze (EBX-3)/2
     _________________________________________________________________

   Opcje dla sysfs (funkcja 135):

   CAPTION: Operacje na nazwach systemow plikow

   EBX opis ECX i EDX co zwraca
   1
   Tlumacz nazwe systemu plikow na numer
   ECX = adres lancucha znakow zawierajacego nazwe.
   EAX = numer systemu plikow
   2
   Tlumacz numer systemu plikow na nazwe
   ECX = numer systemu plikow
   EDX = adres bufora na nazwe.
   EAX = 0
   3
   Zwroc ogolna liczbe systemow plikow aktualnie obecnych w jadrze.
   ignorowane
   EAX = liczba systemow plikow
     _________________________________________________________________

   Operacja dla sys_flock (funkcja 143) z /usr/include/asm/fcntl.h:

   CAPTION: Opcje blokad plikow

   nazwa  wartosc                      opis
   LOCK_SH
          1
                  Zalozenie blokady wspoldzielonej.
   LOCK_EX
          2
                  Zalozenie blokady wylacznej.
   LOCK_UN
          8
                  Usuniecie blokady zalozonej przez ten proces

   Po zORowaniu z wartoscia LOCK_NB=4, funkcja nie zablokuje dzialania
   programu.
     _________________________________________________________________

   Flagi dla sys_msync (funkcja 144) z /usr/include/asm/mman.h:

   CAPTION: Mozliwosci synchronizacji zapisu pamieci

      nazwa     wartosc                  opis
   MS_ASYNC
                1
                        Wykonaj zapisy asynchroniczne.
   MS_INVALIDATE
                2
                        Zaznacz dane jako niewazne po zapisaniu
   MS_SYNC
                4
                        Wykonaj zapisy synchroniczne.
     _________________________________________________________________

   Struktura iovec (funkcja 145) z /usr/include/bits/uio.h:
           struct iovec {
                   void *iov_base;      /* adres danych */
                   size_t iov_len;      /* dlugosc danych */
           };
     _________________________________________________________________

   Struktura sysctl_args (funkcja 149) z man 2 sysctl:
       struct __sysctl_args {
               int *name;        /* wektor liczb calkowitych
                                        opisujacy zmienna */
               int nlen;         /* dlugosc tego wektora */
               void *oldval;     /* 0 lub adres, gdzie zachowac
                                         stara wartosc */
               size_t *oldlenp;  /* ilosc miejsca na stara wartosc
                                    nadpisywana przez rzeczywisty
                                    jej rozmiar */
               void *newval;     /* 0 lub adres nowej wartosci */
               size_t newlen;    /* rozmiar nowej wartosci */
       };
     _________________________________________________________________

   Flagi dla sys_mlockall (funkcja 152) z /usr/include/bits/mman.h:

   CAPTION: Blokowanie wszystkich stron pamieci procesu

   nazwa wartosc opis
   MCL_CURRENT
   1
   Zablokuj wszystkie strony pamieci w przestrzeni adresowej procesu.
   MCL_FUTURE
   2
   Zablokuj wszystkie strony pamieci w przestrzeni adresowej procesu w
   przyszlosci, w chwili mapowania ich do przestrzeni procesu.
     _________________________________________________________________

   Struktura sched_param (funkcja 154) z /usr/include/bits/sched.h:
        struct sched_param {
                int __sched_priority;
        };
     _________________________________________________________________

   Polityka dla szeregowania zadan (funkcje 156,157,159,160) z
   /usr/include/bits/sched.h:

   CAPTION: Sposoby szeregowania zadan

     nazwa    wartosc                   opis
   SCHED_OTHER
              0
                      Domyslny sposob szeregowania zadan
   SCHED_FIFO
              1
                      Pierwszy na wejsciu, pierwszy na wyjsciu
   SCHED_RR
              2
                      Szeregowanie cykliczne
     _________________________________________________________________

   Struktura timespec (funkcja 162 i inne) z man nanosleep:
        struct timespec {
                time_t  tv_sec;         /* sekundy */
                long    tv_nsec;        /* nanosekundy */
        };
     _________________________________________________________________

   Flagi dla funkcji sys_mremap (numer 163) z /usr/include/linux/mman.h:

   CAPTION: Mozliwosci remapowania pamieci

       nazwa     wartosc            opis
   MREMAP_MAYMOVE
                 1
                         Mozna przenosic te strony
   MREMAP_FIXED
                 2
                         Nie mozna przenosic stron.
     _________________________________________________________________

   Kody funkcji dla funkcji sys_vm86 (numer 166) z
   /usr/include/asm/vm86.h:

   CAPTION: Funkcje Trybu wirtualnego 8086

           nazwa          wartosc
   VM86_PLUS_INSTALL_CHECK
                          0
   VM86_ENTER
                          1
   VM86_ENTER_NO_BYPASS
                          2
   VM86_REQUEST_IRQ
                          3
   VM86_FREE_IRQ
                          4
   VM86_GET_IRQ_BITS
                          5
   VM86_GET_AND_RESET_IRQ
                          6
     _________________________________________________________________

   Struktura "vm86plus_struct" (funkcja 113) z /usr/include/asm/vm86.h:
        struct vm86plus_struct {
                struct vm86_regs regs;
                unsigned long flags;
                unsigned long screen_bitmap;
                unsigned long cpu_type;
                struct revectored_struct int_revectored;
                struct revectored_struct int21_revectored;
                struct vm86plus_info_struct vm86plus;
        };

        struct vm86plus_info_struct {
                unsigned long force_return_for_pic:1;
                unsigned long vm86dbg_active:1;       /* dla debuggera */
                unsigned long vm86dbg_TFpendig:1;     /* dla debuggera */
                unsigned long unused:28;
                unsigned long is_vm86pus:1;           /* do uzytku
                                                 wewnetrznego trybu vm86*/
                unsigned char vm86dbg_intxxtab[32];   /* dla debuggera */
        };
     _________________________________________________________________

   Numery podfunkcji dla funkcji sys_query_module (numer 167) z
   /usr/include/linux/module.h:

   CAPTION: Odpytywanie modulow jadra

   nazwa wartosc co zwraca
   brak
   0
   zawsze sukces
   QM_MODULES
   1
   bufor: nazwy oddzielone znakiem zerowym
   [EDI] = liczba modulow
   QM_DEPS
   2
   w buforze: nazwy modulow uzywane przez podany modul,
   [EDI] = liczba takich modulow
   QM_REFS
   3
   w buforze: nazwy modulow uzywajace podanego modulu,
   [EDI] = liczba takich modulow
   QM_SYMBOLS
   4
   bufor: eksportowane symbole i wartosci. Format: struktury
   module_symbol (patrz nizej) i nazwy oddzielone znakiem zerowym.
   [EDI] = liczba symboli
   QM_INFO
   5
   Format bufora: struktury module_info (patrz nizej)
   [EDI] = rozmiar struktury module_info

        struct module_symbol    {
                unsigned long value;
                unsigned long name;     /* adres lancucha znakow od
                                                 poczatku bufora */
        };

        struct module_info      {
                unsigned long address;  /* adres modulu */
                unsigned long size;     /* zajmowana pamiec */
                unsigned long flags;    /* stan: MOD_RUNNING,
                                          MOD_AUTOCLEAN, ... */
        };
     _________________________________________________________________

   Struktura "pollfd" dla funkcji sys_poll (numer 168) z man poll:
        struct pollfd {
                int fd;         /* deskryptor otwartego pliku */
                short events;   /* maska zdarzen (patrz nizej) do
                                         monitorowania */
                short revents;  /* powrotna maska zdarzen znalezionych
                                        (patrz nizej) */
        };

   Zdarzenia z /usr/include/sys/poll.h:

   CAPTION: Zdarzenia dla funkcji sys_poll

   nazwa wartosc co oznacza
   POLLIN
   0x0001
   moga byc czytane (bez blokowania) dane o priorytecie innym niz wysoki
   POLLPRI
   0x0002
   moga byc czytane dane o priorytecie wysokim
   POLLOUT
   0x0004
   moga byc zapisywane dane normalne
   POLLWRNORM
   POLLOUT
   jak POLLOUT.
   POLLERR
   0x0008
   blad
   POLLHUP
   0x0010
   rozlaczenie
   POLLNVAL
   0x0020
   deskryptor jest nieprawidlowy
   POLLRDNORM
   0x0040
   moga byc czytane dane normalne
   POLLNORM
   POLLRDNORM
   jak POLLRDNORM.
   POLLRDBAND
   0x0080
   moga byc czytane dane priorytetowe
   POLLWRBAND
   0x0100
   moga byc zapisywane dane priorytetowe
     _________________________________________________________________

   Komendy w funkcji sys_nfsservctl (numer 169) z man nfsservctl i
   /usr/include/linux/nfsd/syscall.h:

   CAPTION: Komendy kontroli serwera NFS

   nazwa wartosc co oznacza
   NFSCTL_SVC
   0
   to jest proces serwera
   NFSCTL_ADDCLIENT
   1
   dodanie klienta NFS
   NFSCTL_DELCLIENT
   2
   usuniecie klienta NFS
   NFSCTL_EXPORT
   3
   eksportowanie systemu plikow
   NFSCTL_UNEXPORT
   4
   zaprzestanie eksportowania systemu plikow
   NFSCTL_UGIDUPDATE
   5
   uaktualnienie mapy uid/gid klienta
   NFSCTL_GETFH
   6
   otrzymanie fh przez ino (uzywane przez mountd)
   NFSCTL_GETFD
   7
   otrzymanie fh przez sciezke (uzywane przez mountd)
   NFSCTL_GETFS
   8
   otrzymanie fh przez sciezke z maksymalna dlugoscia FH
   NFSCTL_FODROP
   50
   odrzuc zadania w czasie awarii
   NFSCTL_STOPFODROP
   51
   przestan odrzucac zadania
   NFSCTL_FOLOCKS
   52
   porzuc blokady w czasie awarii
   NFSCTL_FOGRACE
   53
   set grace period for failover
   NFSCTL_FOSERV
   54
   remove service mon for failover

   Struktura "nfsctl_arg" i unia "nfsctl_res" dla funkcji sys_nfsservctl
   (numer 169) z man nfsservctl:
       struct nfsctl_arg {
                int                     ca_version;     /*zabezpieczenie*/
                union {
                        struct nfsctl_svc       u_svc;
                        struct nfsctl_client    u_client;
                        struct nfsctl_export    u_export;
                        struct nfsctl_uidmap    u_umap;
                        struct nfsctl_fhparm    u_getfh;
                        struct nfsctl_fdparm    u_getfd;
                        struct nfsctl_fsparm    u_getfs;
                        struct nfsctl_fodrop    u_fodrop;
                } u;
        }

        union nfsctl_res {
                __u8                    cr_getfh[NFS_FHSIZE];
                struct knfsd_fh         cr_getfs;
        };

        /* SVC */
        struct nfsctl_svc {
                unsigned short          svc_port;
                int                     svc_nthreads;
        };

        /* ADDCLIENT/DELCLIENT */
        struct nfsctl_client {
                char                    cl_ident[NFSCLNT_IDMAX+1];
                int                     cl_naddr;
                struct in_addr          cl_addrlist[NFSCLNT_ADDRMAX];
                int                     cl_fhkeytype;
                int                     cl_fhkeylen;
                unsigned char           cl_fhkey[NFSCLNT_KEYMAX];
        };

        /* EXPORT/UNEXPORT */
        struct nfsctl_export {
                char                    ex_client[NFSCLNT_IDMAX+1];
                char                    ex_path[NFS_MAXPATHLEN+1];
                __kernel_dev_t          ex_dev;
                __kernel_ino_t          ex_ino;
                int                     ex_flags;
                __kernel_uid_t          ex_anon_uid;
                __kernel_gid_t          ex_anon_gid;
        };

        /* UGIDUPDATE */
        struct nfsctl_uidmap {
                char *                  ug_ident;
                __kernel_uid_t          ug_uidbase;
                int                     ug_uidlen;
                __kernel_uid_t *        ug_udimap;
                __kernel_gid_t          ug_gidbase;
                int                     ug_gidlen;
                __kernel_gid_t *        ug_gdimap;
        };

        /* GETFH */
        struct nfsctl_fhparm {
                struct sockaddr         gf_addr;
                __kernel_dev_t          gf_dev;
                __kernel_ino_t          gf_ino;
                int                     gf_version;
        };

        /* GETFD */
        struct nfsctl_fdparm {
                struct sockaddr         gd_addr;
                char                    gd_path[NFS_MAXPATHLEN+1];
                int                     gd_version;
        };

        /* GETFS - Pobierz uchwyt do pliku wraz z rozmiarem */
        struct nfsctl_fsparm {
                struct sockaddr         gd_addr;
                char                    gd_path[NFS_MAXPATHLEN+1];
                int                     gd_maxlen;
        };

        /* FODROP/STOPFODROP */
        struct nfsctl_fodrop {
                char                    fo_dev[NFS_MAXPATHLEN+1];
                __u32                   fo_timeout;
        };
     _________________________________________________________________

   Opcje w funkcji sys_prctl (numer 172) z man prctl i
   /usr/include/linux/prctl.h:

   CAPTION: Operacje na procesie

   nazwa wartosc co oznacza
   PR_SET_PDEATHSIG
   1
   ECX=numer sygnalu, ktory otrzyma proces potomny po zakonczeniu rodzica
   PR_GET_PDEATHSIG
   2
   wczytaj biezacy numer sygnalu, ktory otrzyma proces potomny po
   zakonczeniu rodzica do [ECX]
   PR_GET_DUMPABLE
   3
   pobranie informacji, czy program ma zrzucac rdzen (core dump), zwraca
   w EAX
   PR_SET_DUMPABLE
   4
   ustawienie, czy program ma zrzucac rdzen (core dump) ECX=0 (nie) ECX=1
   (tak)
   PR_GET_UNALIGN
   5
   pobierz bity kontroli dostepu do nieulozonych danych? (unaligned
   access control bits), wynik w EAX?
   PR_SET_UNALIGN
   6
   ustaw bity kontroli dostepu do nieulozonych danych (unaligned access
   control bits) ECX=1 (nie rob nic), ECX=2 (generuj sygnal SIGBUS)
   PR_GET_KEEPCAPS
   7
   zachowanie mozliwosci procesu (keep capabilities), zwraca w EAX
   PR_SET_KEEPCAPS
   8
   zachowanie mozliwosci procesu (keep capabilities), ECX=1 (tak) ECX=0
   (nie)
   PR_GET_FPEMU
   9
   pobierz bity kontroli emulacji FPU, zwraca w EAX?
   PR_SET_FPEMU
   10
   ustaw bity kontroli emulacji FPU, ECX=1 (emulacja wlaczona) ECX=2
   (generuj sygnal SIGFPE)
   PR_GET_FPEXC
   11
   pobierz tryb wyjatkow FPU, zwraca w EAX?
   PR_SET_FPEXC
   12
   ustaw tryb wyjatkow FPU, ECX=0 (wylaczone) ECX=1 (async
   non-recoverable exc. mode), ECX=2 (async recoverable exception mode),
   ECX=3 (precise exception mode)
   PR_GET_TIMING
   13
   pobierz tryb mierzenia czasu procesu, zwraca w EAX?
   PR_SET_TIMING
   14
   pobierz tryb mierzenia czasu procesu, ECX=0 (normalny) ECX=1
   (dokladny)
     _________________________________________________________________

   Struktury dla funkcji sys_capget (numer 184) i sys_capset (numer 185)
   z /usr/include/linux/capability.h:
        typedef struct __user_cap_header_struct {
                __u32 version;
                int pid;
        } *cap_user_header_t;

        typedef struct __user_cap_data_struct {
                __u32 effective;
                __u32 permitted;
                __u32 inheritable;
        } *cap_user_data_t;
     _________________________________________________________________

   Struktura "stack_t" dla funkcji sys_sigaltstack (numer 186) z
   /usr/include/asm/signal.h:
        SS_ONSTACK      0x0001
        SS_DISABLE      0x0004

        typedef struct sigaltstack {    // stack_t
                void *ss_sp;            // int (dword)
                int ss_flags;   // int (dword), SS_ONSTACK lub SS_DISABLE
                size_t ss_size;         // int (dword)
        } stack_t;
     _________________________________________________________________

   Struktura "stat64" dla funkcji sys_*stat64 (numer 195, 196, 197) z
   /usr/include/asm/stat.h:
        struct stat64 {
                unsigned long long      st_dev;
                unsigned char   __pad0[4];

                unsigned long   __st_ino;

                unsigned int    st_mode;
                unsigned int    st_nlink;

                unsigned long   st_uid;
                unsigned long   st_gid;

                unsigned long long      st_rdev;
                unsigned char   __pad3[4];

                long long       st_size;
                unsigned long   st_blksize;

                /* Liczba zaalokowanych 512-bajtowych blokow. */
                unsigned long long      st_blocks;

                unsigned long   st_atime;
                unsigned long   st_atime_nsec;

                unsigned long   st_mtime;
                unsigned int    st_mtime_nsec;

                unsigned long   st_ctime;
                unsigned long   st_ctime_nsec;

                unsigned long long      st_ino;
        };
     _________________________________________________________________

   Informacja dla jadra o korzystaniu z pamieci dla funkcji sys_madvise
   (numer 219) z /usr/include/bits/mman.h:

   CAPTION: Informowanie o sposobach korzystania z pamieci

       nazwa      wartosc                       co oznacza
   MADV_NORMAL
                  0
                          Zadnego specjalnego traktowania
   MADV_RANDOM
                  1
                          Mozna oczekiwac losowych dostepow do tej pamieci
   MADV_SEQUENTIAL
                  2
                          Mozna oczekiwac sekwencyjnego dostepu do tej pamieci
   MADV_WILLNEED
                  3
                          Nasz proces bedzie potrzebowal tych stron pamieci
   MADV_DONTNEED
                  4
                          Nasz proces nie potrzebuje tych stron pamieci
     _________________________________________________________________

   Makra "makedev" w skladni FASM dla funkcji sys_mknod (numer 14) z
   /usr/include/sys/sysmacros.h:
        ; maj = numer glowny urzadzenia
        ; min = numer poboczny urzadzenia

        ; dla jadra 2.4
        macro   makedev24       maj, min
        {
                xor     esi, esi
                mov     edx, maj
                shl     edx, 8
                or      edx, min
        }

        ; dla jadra 2.6
        macro   makedev26       maj, min
        {

                mov     edx, min
                and     edx, 0xff

                mov     esi, maj
                and     esi, 0xfff
                shl     esi, 8
                or      edx, esi

                xor     eax, eax
                mov     esi, min
                and     esi, not 0xff
                shld    eax, esi, 12
                shl     esi, 12

                or      edx, esi

                mov     esi, maj
                and     esi, not 0xfff

                or      esi, eax

        }
     _________________________________________________________________

   Numery sygnalow (funkcje 37, 48 i 238) z /usr/include/bits/signum.h:

   CAPTION: Sygnaly

   nazwa wartosc co oznacza
   SIGHUP
   1
   "Rozlacz sie" (hangup)
   SIGINT
   2
   Przerwanie (na przyklad nacisnieto Ctrl+C)
   SIGQUIT
   3
   Wyjscie
   SIGILL
   4
   Procesor wykonal nieprawidlowa instrukcje
   SIGTRAP
   5
   Pulapka (przy sledzeniu wykonywania)
   SIGABRT
   6
   Przerwanie dzialania
   SIGIOT
   6 (tez!)
   Pulapka IOT
   SIGBUS
   7
   Blad szyny (zle ustawienie danych - na przyklad adres niepodzielny
   przez 4)
   SIGFPE
   8
   Wyjatek koprocesora (wynik typu NaN, ale tez dzielenie przez zero lub
   przepelnienie w dzieleniu)
   SIGKILL
   9
   Zabicie procesu
   SIGUSR1
   10
   Sygnal definiowany przez uzytkownika
   SIGSEGV
   11
   Naruszenie ochrony pamieci (segmentation fault)
   SIGUSR2
   12
   Drugi sygnal definiowany przez uzytkownika
   SIGPIPE
   13
   Nieprawidlowy potok
   SIGALRM
   14
   Budzik
   SIGTERM
   15
   Zadanie zakonczenia programu
   SIGSTKFLT
   16
   Blad stosu (koprocesora?)
   SIGCHLD, SIGCLD
   17
   Zmienil sie stan procesu potomnego
   SIGCONT
   18
   Kontynuacja
   SIGSTOP
   19
   Zadanie zatrzymania programu
   SIGTSTP
   20
   Zatrzymanie (z) klawiatury (?)
   SIGTTIN
   21
   Odczyt z terminala w tle
   SIGTTOU
   22
   Zapis do terminala w tle
   SIGURG
   23
   Pilne zdarzenie na gniezdzie
   SIGXCPU
   24
   Przekroczony limit procesora
   SIGXFSZ
   25
   Przekroczony limit rozmiaru pliku
   SIGVTALRM
   26
   Wirtualny budzik
   SIGPROF
   27
   Budzik profilujacy
   SIGWINCH
   28
   Zmiana rozmiaru okna
   SIGIO, SIGPOLL
   29
   Mozna wykonywac I/O
   SIGPWR
   30
   Restart po awarii zasilania (?) / Blad zasilania
   SIGSYS
   31
   Nieprawidlowa funkcja systemowa
   SIGUNUSED
   31 (tez!)
   (nieuzywane)
     _________________________________________________________________

   Operacje futex (funkcja 240) z /usr/include/linux/futex.h:

   CAPTION: Operacje na futeksach

   nazwa wartosc co oznacza zwraca w EAX
   FUTEX_WAIT
   0
   Sprawdza, czy wartosc futeksu wynosi tyle, ile podano i czeka
   0, gdy proces obudzono przez FUTEX_WAKE
   FUTEX_WAKE
   1
   Budzi co najwyzej ECX procesow czekajacych na danym adresie
   liczba obudzonych procesow
   FUTEX_FD
   2
   Przyporzadkuje futeksowi deskryptor pliku
   nowy deskryptor pliku
     _________________________________________________________________

   Struktura user_desc (funkcja 243) z /usr/src/?/include/asm/ldt.h:
        struct user_desc {
                unsigned int  entry_number;     /* numer zmienianego lub
                                                pobieranego wpisu w TLS */
                unsigned long base_addr;        /* adres bazowy */
                unsigned int  limit;            /* limit */
                unsigned int  seg_32bit:1;      /* segment */
                unsigned int  contents:2;
                unsigned int  read_exec_only:1; /* tylko RX */
                unsigned int  limit_in_pages:1;
                unsigned int  seg_not_present:1;/* czy nieobecny */
                unsigned int  useable:1;        /* mozna uzywac */
        };
     _________________________________________________________________

   Struktura io_event (funkcja 247) z /usr/src/?/include/linux/aio_abi.h:
        struct io_event {
                __u64   data;           /* pole danych */
                __u64   obj;            /* skad przyszlo zdarzenie */
                __s64   res;            /* kod wynikowy zdarzenia */
                __s64   res2;           /* wynik drugorzedny */
        };
     _________________________________________________________________

   Struktura iocb (funkcja 247) z /usr/src/?/include/linux/aio_abi.h:
        struct iocb {
                /* do wewnetrznego uzytku jadra/libc. */
                __u64   aio_data; /*dane do zwrocenia jako dane zdarzenia*/
                __u32   aio_key, aio_reserved1;
                                /* jadro ustawia aio_key na zadany numer */

                /* pola wspolne */
                __u16   aio_lio_opcode; /* zobacz: IOCB_CMD_ */
                __s16   aio_reqprio;
                __u32   aio_fildes;

                __u64   aio_buf;
                __u64   aio_nbytes;
                __s64   aio_offset;

                /* parametry dodatkowe */
                __u64   aio_reserved2;  /*w przyszlosci bedzie to wskaznik
                                         na strukture sigevent */
                __u64   aio_reserved3;
        };
     _________________________________________________________________

   Struktura epoll_event (funkcja 255 i 256) z man 2 epoll_ctl:
        typedef union epoll_data {
                void *ptr;
                int fd;
                __uint32_t u32;
                __uint64_t u64;
        } epoll_data_t;

        struct epoll_event {
                __uint32_t events;  /* zdarzenia Epoll */
                epoll_data_t data;  /* Zmienna danych uzytkownika */
        };
     _________________________________________________________________

   Operacje epoll (funkcja 255) z /usr/include/sys/epoll.h:

   CAPTION: Operacje na deskryptorze epoll

   nazwa wartosc co oznacza
   EPOLL_CTL_ADD
   1
   Dodaj deskryptor EDX do deskryptora "epoll" w EBX
   EPOLL_CTL_DEL
   2
   Usun deskryptor EDX do deskryptora "epoll" w EBX
   EPOLL_CTL_MOD
   3
   Zmien zdarzenie (struktura epoll_event) zwiazane z deskryptorem EDX
     _________________________________________________________________

   Struktura sigevent (funkcja 259) z /usr/include/asm/siginfo.h:
        #define SIGEV_MAX_SIZE  64
        #define SIGEV_PAD_SIZE  ((SIGEV_MAX_SIZE/sizeof(int)) - 3)

        typedef struct sigevent {
                sigval_t sigev_value;
                int sigev_signo;
                int sigev_notify;
                union {
                        int _pad[SIGEV_PAD_SIZE];

                        struct {
                                void (*_function)(sigval_t);
                                void *_attribute;   /* pthread_attr_t */
                        } _sigev_thread;
                } _sigev_un;
        } sigevent_t;

        /* Dla funkcji mq_notify podana jest taka definicja
                w man mq_notify: */

         union sigval {                /* Przekazane dane */
             int     sival_int;        /* Wartosc calkowita */
             void   *sival_ptr; /* Wskaznik (tak doslownie mowi manual) */
         };

         struct sigevent {
             int    sigev_notify;      /* Sposob powiadomienia 0=sygnal,
                                         1=nic, 2=utworz watek*/
             int    sigev_signal;      /* Numer sygnalu powiadomienia */
             union sigval sigev_value; /* Przekazane dane */
             void (*sigev_notify_function) (union sigval);
                                       /* Funkcja powiadamiania watku */
             void  *sigev_notify_attributes;
                                       /* Atrybuty funkcji watku */
         };

     _________________________________________________________________

   Struktura itimerspec (funkcja 260) z /usr/include/time.h:
        struct itimerspec {
                struct timespec it_interval;
                struct timespec it_value;
        };
     _________________________________________________________________

   Identyfikatory zegara (funkcje 264-267) z /usr/include/bits/time.h:

   CAPTION: Identyfikatory zegarow w systemie

   nazwa wartosc co oznacza
   CLOCK_REALTIME
   0
   Systemowy zegar czasu rzeczywistego
   CLOCK_MONOTONIC
   1
   Systemowy zegar monotoniczny
   CLOCK_PROCESS_CPUTIME_ID
   2
   Wysokiej rozdzielczosci zegar CPU (dla procesu)
   CLOCK_THREAD_CPUTIME_ID
   3
   Wysokiej rozdzielczosci zegar CPU (dla watku)
     _________________________________________________________________

   Struktura statfs64 (funkcje 268 i 269) z /usr/include/bits/statfs.h:
        struct statfs64  {
                __SWORD_TYPE f_type;            /* 32 bity */
                __SWORD_TYPE f_bsize;
                __fsblkcnt64_t f_blocks;        /* 64 bity */
                __fsblkcnt64_t f_bfree;
                __fsblkcnt64_t f_bavail;
                __fsfilcnt64_t f_files;
                __fsfilcnt64_t f_ffree;
                __fsid_t f_fsid;        /* struct { int __val[2]; } */
                __SWORD_TYPE f_namelen;
                __SWORD_TYPE f_frsize;
                __SWORD_TYPE f_spare[5];
        };
     _________________________________________________________________

   Polityka dla pamieci (funkcja 274) z /usr/include/numaif.h i man 2
   mbind:

   CAPTION: Rodzaje polityki odnosnie pamieci

       nazwa      wartosc                       co oznacza
   MPOL_DEFAULT
                  0
                          Uzyj domyslnej polityki procesu
   MPOL_PREFERRED
                  1
                          Ustal preferowany wezel do alokacji
   MPOL_BIND
                  2
                          Ogranicz alokacje pamieci tylko do podanych wezlow
   MPOL_INTERLEAVE
                  3
                          Optymalizacja przepustowosci na rzecz czasu trwania
     _________________________________________________________________

   Flagi dla pamieci (funkcja 274) z
   /usr/src/kernels/.../include/linux/mempolicy.h:

   CAPTION: Flagi dla polityki odnosnie pamieci

   nazwa wartosc co oznacza
   MPOL_MF_STRICT
   (1<<0)
   Sprawdz, czy strony pamieci odpowiadaja polityce. Jesli nie
   odpowiadaja polityce domyslnej lub nie moga zostac przesuniete
   MPOL_MF_MOVE*, zwracany jest blad EIO.
   MPOL_MF_MOVE
   (1<<1)
   Przesun strony pamieci tego procesu, by odpowiadaly polityce
   MPOL_MF_MOVE_ALL
   (1<<2)
   Przesun wszystkie strony pamieci, by odpowiadaly polityce
     _________________________________________________________________

   Struktura mq_attr (funkcja 277) z man 3 mq_getattr:
         struct mq_attr {
             long mq_flags;    /* Flagi: 0 lub O_NONBLOCK */
             long mq_maxmsg;   /* Max. liczba wiadomosci w kolejce */
             long mq_msgsize;  /* Max. rozmiar wiadomosci w bajtach */
             long mq_curmsgs;  /* Liczba wiadomosci aktualnie w kolejce */
         };
     _________________________________________________________________

   Struktura siginfo (funkcja 277) z /usr/include/asm/siginfo.h:
     typedef struct siginfo {
        int si_signo;
        int si_errno;
        int si_code;

        union {
                int _pad[SI_PAD_SIZE];

                /* kill() */
                struct {
                        pid_t _pid;             /* pid wysylajacego */
                        uid_t _uid;             /* uid wysylajacego */
                } _kill;

                /* czasomierze POSIX.1b */
                struct {
                        unsigned int _timer1;
                        unsigned int _timer2;
                } _timer;

                /* sygnaly POSIX.1b */
                struct {
                        pid_t _pid;             /* pid wysylajacego */
                        uid_t _uid;             /* uid wysylajacego */
                        sigval_t _sigval;
                } _rt;

                /* SIGCHLD */
                struct {
                        pid_t _pid;             /* ktory potomek */
                        uid_t _uid;             /* uid wysylajacego */
                        int _status;            /* kod wyjscia */
                        clock_t _utime;
                        clock_t _stime;
                } _sigchld;

                /* SIGILL, SIGFPE, SIGSEGV, SIGBUS */
                struct {
                        void *_addr; /* instrukcja, ktora wywolala blad */
                } _sigfault;

                /* SIGPOLL */
                struct {
                        int _band;      /* POLL_IN, POLL_OUT, POLL_MSG */
                        int _fd;
                } _sigpoll;
        } _sifields;
     } siginfo_t;
     _________________________________________________________________

   Flagi dla inotify (funkcja 292) z
   /usr/src/kernels/.../include/linux/inotify.h:

   CAPTION: Flagi dla powiadamiania o zdarzeniach na obserwowanym
   obiekcie

   nazwa wartosc co oznacza
   IN_ACCESS
   0x00000001
   Dostep do obiektu
   IN_MODIFY
   0x00000002
   Obiekt zostal zmodyfikowany
   IN_ATTRIB
   0x00000004
   Zmiana atrybutow
   IN_CLOSE_WRITE
   0x00000008
   Zamkniecie pliku otwartego do zapisu
   IN_CLOSE_NOWRITE
   0x00000010
   Zamkniecie pliku nie otwartego do zapisu
   IN_OPEN
   0x00000020
   Obiekt zostal otwarty
   IN_MOVED_FROM
   0x00000040
   Z obserwowanego katalogu przeniesiono plik
   IN_MOVED_TO
   0x00000080
   Do obserwowanego katalogu przeniesiono plik
   IN_CREATE
   0x00000100
   W obserwowanym katalogu utworzono plik
   IN_DELETE
   0x00000200
   W obserwowanym katalogu skasowano plik
   IN_DELETE_SELF
   0x00000400
   Obserwowany obiekt zostal usuniety
   IN_MOVE_SELF
   0x00000800
   Obiekt zostal przeniesiony
   IN_UNMOUNT
   0x00002000
   System plikow zostal odmontowany
   IN_Q_OVERFLOW
   0x00004000
   Przepelnienie kolejki zdarzen
   IN_IGNORED
   0x00008000
   Plik zostal zignorowany
   IN_ONLYDIR
   0x01000000
   Obserwuj sciezke tylko gdy jest katalogiem
   IN_DONT_FOLLOW
   0x02000000
   Nie podazaj za dowiazaniami symbolicznymi
   IN_MASK_ADD
   0x20000000
   Jesli ten obiekt juz jest obserwowany, to dopisz dane zdarzenia do
   obserwacji
   IN_ISDIR
   0x40000000
   Zaszlo zdarzenie na katalogu
   IN_ONESHOT
   0x80000000
   Obserwuj dana sciezke tylko do pierwszego zdarzenia
     _________________________________________________________________

   CAPTION: Wartosci dla funkcji sys_ioprio (numer 289 i 290) z
   /usr/src/.../include/linux/fcntl.h

         nazwa       wartosc              znaczenie
   IOPRIO_WHO_PROCESS
                     0
                             ECX to numer pojedynczego procesu
   IOPRIO_WHO_PGRP
                     1
                             ECX to identyfikator grupy procesow
   IOPRIO_WHO_USER
                     2
                             ECX to identyfikator uzytkownika
     _________________________________________________________________

   CAPTION: Flagi synchronizacji dla funkcji sys_sync_file_range (numer
   314) z /usr/src/.../include/linux/fs.h

   nazwa wartosc znaczenie
   SYNC_FILE_RANGE_WAIT_BEFORE
   1
   Czekaj na synchronizacje zmienionych stron, ktore sa zaznaczone do
   zapisania, przed jakimkolwiek zapisem
   SYNC_FILE_RANGE_WRITE
   2
   Zacznij synchronizacje zmienionych stron, ktore nie sa zaznaczone do
   zapisania
   SYNC_FILE_RANGE_WAIT_AFTER
   4
   Czekaj na synchronizacje zmienionych stron, po jakimkolwiek zapisie
     _________________________________________________________________

   CAPTION: Opcje dla funkcji sigprocmask (numer 175) z
   /usr/include/asm/signal.h

   nazwa wartosc znaczenie
   SIG_BLOCK
   0
   Zestaw blokowanych sygnalow jest suma biezacego zestawu i zestawu w
   [ECX]
   SIG_UNBLOCK
   1
   Sygnaly z [ECX] zostaja odblokowane
   SIG_SETMASK
   2
   Zestaw blokowanych sygnalow jest ustawiany na [ECX]
     _________________________________________________________________

   CAPTION: Opcje dla funkcji fadvice (numer 272) z
   /usr/include/bits/fcntl.h

   nazwa wartosc znaczenie
   POSIX_FADV_NORMAL
   0
   Domyslny dostep
   POSIX_FADV_RANDOM
   1
   Dostep w losowej kolejnosci
   POSIX_FADV_SEQUENTIAL
   2
   Dostep sekwencyjny
   POSIX_FADV_WILLNEED
   3
   Te dane beda potrzebne w najblizszej przyszlosci
   POSIX_FADV_DONTNEED
   4
   Te dane nie beda potrzebne w najblizszej przyszlosci
   POSIX_FADV_NOREUSE
   5
   Dane beda potrzebne tylko raz
     _________________________________________________________________

   CAPTION: Flagi dla funkcji splice (numer 313), vmsplice (numer 316) i
   tee (numer 315) z /usr/include/bits/fcntl.h

   nazwa wartosc znaczenie
   SPLICE_F_MOVE
   1
   Sprobuj przeniesc strony pamieci zamiast kopiowania. Nic nie robi w
   sys_tee. Nieuzywane w sys_vmsplice.
   SPLICE_F_NONBLOCK
   2
   Nie blokuj w czasie operacji wejscia-wyjscia
   SPLICE_F_MORE
   4
   W kolejnych wywolaniach beda dalsze dane. Nic nie robi w sys_tee i
   sys_vmsplice.
   SPLICE_F_GIFT
   8
   Nieuzywane w sys_splice i sys_tee. W sys_vmsplice oznacza darowanie
   tych stron pamieci dla jadra.
     _________________________________________________________________

   CAPTION: Flagi dla funkcji shmget (numer 29 w x86-64) z
   /usr/include/linux/ipc.h i /usr/include/bits/shm.h

   nazwa wartosc osemkowo znaczenie
   IPC_CREAT
   00001000
   Stworz nowy segment
   IPC_EXCL
   00002000
   Wylaczny dostep do segmentu
   SHM_HUGETLB
   04000
   Alokuj uzywajac "wielkich stron" pamieci.
   SHM_NORESERVE
   010000
   Nie rezerwuj przestrzeni wymiany dla tego segmentu
   tryb dostepu
   000-777
   Takie samo znaczenie, jak we flagach dostepu
     _________________________________________________________________

   CAPTION: Flagi dla funkcji shmat (numer 30 w x86-64) z
   /usr/include/bits/shm.h

     nazwa   wartosc osemkowo                      znaczenie
   SHM_RDONLY
             010000
                              Podlacz segment tylko do odczytu.
   SHM_RND
             020000
                              Zaokraglaj adres w dol do wielokrotnosci SHMLBA.
   SHM_REMAP
             040000
                              Zmien wszystkie mapowania w segmencie
     _________________________________________________________________

   CAPTION: Rozkazy dla funkcji shmctl (numer 31 w x86-64) z
   /usr/include/linux/ipc.h i /usr/include/bits/shm.h

   nazwa wartosc znaczenie i wartosc zwracana
   IPC_RMID
   0
   Zaznacz segment do usuniecia. Zwraca 0.
   IPC_SET
   1
   Zapisz niektore elementy podanej struktury do jadra. Zwraca 0.
   IPC_STAT
   2
   Skopiuj dane z jadra o podanym segmencie do podanej struktury. Zwraca
   0.
   IPC_INFO
   3
   Zwroc informacje o limitach i parametrach wspoldzielonej pamieci.
   Zwraca ostatni indeks w tablicy jadra do wspoldzielonej pamieci.
   SHM_LOCK
   11
   Zapobiega wymianie (swapowaniu) segmentu. Zwraca 0.
   SHM_UNLOCK
   12
   Umozliwia wymiane (swapowanie) segmentu. Zwraca 0.
   SHM_STAT
   13
   Podobne do IPC_STAT, ale identyfikator oznacza numer w tablicy jadra.
   Zwraca identyfikator segmentu o danym numerze.
   SHM_INFO
   14
   Zwroc informacje o zasobach uzywanych przez wspoldzielona pamiec.
   Zwraca ostatni indeks w tablicy jadra do wspoldzielonej pamieci.

   Struktura shmid_ds (funkcja 31 w x86-64) z /usr/include/bits/shm.h:
        struct shmid_ds {
                struct ipc_perm shm_perm;    /* Wlasciciel i uprawnienia */
                size_t          shm_segsz;   /* Rozmiar segmentu w bajtach */
                time_t          shm_atime;   /* Czas ostatniego dolaczenia */
                time_t          shm_dtime;   /* Czas ostatniego odlaczenia */
                time_t          shm_ctime;   /* Czas ostatniej zmiany */
                pid_t           shm_cpid;    /* PID tworcy */
                pid_t           shm_lpid;    /* PID ostatniej operacji shmat
                                                lub shmdt */
                shmatt_t        shm_nattch;  /* Biezaca liczba podlaczen */
                ...
        };
     _________________________________________________________________

   CAPTION: Domeny dla gniazd (funkcja 41 w x86-64) z
   /usr/include/bits/socket.h

        nazwa       wartosc                      znaczenie
   AF_UNIX, AF_LOCAL
                    1
                            Lokalna komunikacja
   AF_INET
                    2
                            Protokoly IPv4
   AF_AX25
                    3
                            Protokol AX.25 amatorskiego radia
   AF_IPX
                    4
                            Protokoly Novell IPX
   AF_APPLETALK
                    5
                            Appletalk
   AF_NETROM
                    6
                            Amatorskie radio NetROM
   AF_BRIDGE
                    7
                            Mostek wieloprotokolowy
   AF_ATMPVC
                    8
                            Dostep do surowych ATM PVC
   AF_X25
                    9
                            Protokol ITU-T X.25 / ISO-8208
   AF_INET6
                    10
                            Protokoly IPv6
   AF_ROSE
                    11
                            Amatorskie radio X.25 PLP
   AF_DECnet
                    12
                            Zarezerwowane dla projektu DECnet
   AF_NETBEUI
                    13
                            Zarezerwowane dla projektu 802.2LLC
   AF_SECURITY
                    14
                            Pseudo-domena dla wywolania zwrotnego zabezpieczen
   AF_KEY
                    15
                            Interfejs zarzadzania kluczami
   AF_NETLINK
                    16
                            Urzadzenie interfejsu do jadra
   AF_PACKET
                    17
                            Niskopoziomowy interfejs pakietowy
   AF_ASH
                    18
                            Ash
   AF_ECONET
                    19
                            Acorn Econet
   AF_ATMSVC
                    20
                            ATM SVC
   AF_SNA
                    22
                            Projekt Linux SNA
   AF_IRDA
                    23
                            Gniazda IrDA
   AF_PPPOX
                    24
                            Gniazda PPPoX
   AF_WANPIPE
                    25
                            Interfejs do gniazd Wanpipe
   AF_BLUETOOTH
                    31
                            Gniazda Bluetooth
     _________________________________________________________________

   CAPTION: Typy gniazd (funkcja 41 w x86-64) z
   /usr/include/bits/socket.h

   nazwa wartosc znaczenie
   SOCK_STREAM
   1
   Sekwencjonowany, wiarygodny, dwukierunkowy, opary na polaczeniu
   strumien bajtow
   SOCK_DGRAM
   2
   Obsluguje datagramy (bez polaczenia, niewiarygodny)
   SOCK_RAW
   3
   Dostep bezposredni do protokolow sieciowych
   SOCK_RDM
   4
   Wiarygodna warstwa datagramow bez gwarancji kolejnosci.
   SOCK_SEQPACKET
   5
   Sekwencjonowany, wiarygodny, dwukierunkowy, opary na polaczeniu
   strumien bajtow. Odbiorca musi przeczytac caly pakiet za kazdym
   czytaniem.
   SOCK_PACKET
   10
   Przestarzale, nie uzywac
   SOCK_NONBLOCK
   04000 osemkowo
   Ustaw tryb nieblokujacy.
   SOCK_CLOEXEC
   02000000 osemkowo
   Ustaw flage zamknij-podczas-exec.
     _________________________________________________________________

   CAPTION: Flagi dla funkcji sendto (numer 44 w x86-64) i recvfrom
   (numer 45 w x86-64) z /usr/include/bits/socket.h

   nazwa wartosc znaczenie
   MSG_CONFIRM
   0x800
   (sendto) Potwierdzenie otrzymania odpowiedzi
   MSG_DONTROUTE
   0x04
   (sendto) Nie uzywaj bramki do wysylania, wyslij bezposrednio
   MSG_DONTWAIT
   0x40
   (sendto, recvfrom) Wlacz tryb nieblokujacy
   MSG_EOR
   0x80
   (sendto) Koniec rekordu danych
   MSG_MORE
   0x8000
   (sendto) Uruchamiajacy ma wiecej danych do wyslania
   MSG_NOSIGNAL
   0x4000
   (sendto) Nie wysylaj sygnalow
   MSG_OOB
   0x01
   (sendto, recvfrom) Wyslij dane poza kolejnoscia
   MSG_CMSG_CLOEXEC
   0x40000000
   (recvmsg) Ustaw flage zamknij-podczas-exc na deskryptorze otrzymanym
   podczas operacji SCM_RIGHTS
   MSG_ERRQUEUE
   0x2000
   (recvfrom) Bledy powinny byc odbierane przez kolejke bledow gniazda
   MSG_PEEK
   0x02
   (recvfrom) Pobierz dane z kolejki bez usuwania ich z kolejki
   MSG_TRUNC
   0x20
   (recvfrom) Zwroc prawdziwa dlugosc danych, nawet gdy bufor byl
   mniejszy
   MSG_WAITALL
   0x100
   (recvfrom) Czekaj na pelne zakonczenie operacji

   Struktura msghdr (funkcja 46 w x86-64) z man 2 sendmsg:
                struct msghdr {
                        void         *msg_name;       /* opcjonalny adres */
                        socklen_t     msg_namelen;    /* rozmiar adresu */
                        struct iovec *msg_iov;        /* tablica wysylania i
                                                         zbierania */
                        size_t        msg_iovlen;     /* liczba elementow w
                                                          msg_iov */
                        void         *msg_control;    /* dane pomocnicze */
                        socklen_t     msg_controllen; /* dlugosc bufora danych
                                                         pomocniczych */
                        int           msg_flags;      /* flagi na odebranej
                                                         wiadomosci: MSG_EOR,
                                                         MSG_TRUNC, MSG_CTRUNC,
                                                         MSG_OOB, MSG_ERRQUEUE*
/
                        };
     _________________________________________________________________

   Struktura sembuf (funkcja 65 w x86-64) z /usr/include/sys/sem.h:
        struct sembuf
        {
                unsigned short int sem_num;   /* liczba semaforow */
                short int sem_op;             /* operacja na semaforze:
                                                 liczba dodatnia jest dodawana
                                                 zero oznacza czekanie na zero
                                                liczba ujemna jest odejmowana*/
                short int sem_flg;            /* flaga operacji:
                                                 IPC_NOWAIT=04000 osemkowo
                                                 lub SEM_UNDO=0x1000 */
        };
     _________________________________________________________________

   CAPTION: Rozkazy dla semaforow (funkcja 66 w x86-64) z
   /usr/include/bits/sem.h i /usr/include/bits/ipc.h

   nazwa wartosc znaczenie i wartosc zwracana
   IPC_RMID
   0
   Usun zestaw semaforow. Zwraca 0.
   IPC_SET
   1
   Kopiuj dane z tablicy buf o adresie podanym w R10 do struktur jadra.
   Zwraca 0.
   IPC_STAT
   2
   Kopiuj dane ze struktur jadra do tablicy buf o adresie podanym w R10.
   Zwraca 0.
   IPC_INFO
   3
   Zwroc w buf w R10 informacje o systemowych limitach i parametrach
   semaforow. Zwraca numer ostatniego uzywanego elementu w tablicy jadra.
   GETPID
   11
   Zwraca PID procesu, ktory wykonal ostatnia operacje na tym semaforze
   GETVAL
   12
   Zwraca wartosc podanego semafora w zestawie
   GETALL
   13
   Do tablicy array o adresie podanym w R10 wpisuje wartosci wszystkich
   semaforow w systemie. Zwraca 0.
   GETNCNT
   14
   Zwraca liczbe procesow czekajacych na zwiekszenie sie podanego
   semafora w zestawie
   GETZCNT
   15
   Zwraca liczbe procesow czekajacych na wyzerowanie sie podanego
   semafora w zestawie
   SETVAL
   16
   Ustaw wartosci podane semafora w zestawie na te podana w R10. Zwraca
   0.
   SETALL
   17
   Ustaw wartosci wszystkich semaforow na te podane w tablicy array o
   adresie podanym w R10. Zwraca 0.
   SEM_STAT
   18
   Podobne do IPC_STAT, lecz identyfikator zestawu semaforow jest numerem
   semafora w tablicy jadra. Zwraca identyfikator zestawu semaforow o
   podanym numerze.
   SEM_INFO
   19
   Podobne do IPC_INFO, zwraca inne wartosci w niektorych polach (man
   semctl) Zwraca numer ostatniego uzywanego elementu w tablicy jadra.

   Unia semun (funkcja 66 w x86-64) z man 2 semctl:
                union semun {
                        int              val;   /* Wartosc dla SETVAL */
                        struct semid_ds *buf;   /* Bufor na IPC_STAT, IPC_SET *
/
                        unsigned short  *array; /* Tablica dla GETALL, SETALL *
/
                        struct seminfo  *__buf; /* Bufor dla IPC_INFO */
                };
     _________________________________________________________________

   Struktura msgp (funkcja 69 w x86-64) z man 2 msgsnd:
                struct msgbuf {
                        long mtype;       /* typ wiadomosci, musi byc > 0 */
                        char mtext[1];    /* dane wiadomosci */
                };
     _________________________________________________________________

   CAPTION: Flagi dla funkcji msgrcv (numer 70 w x86-64) z
   /usr/include/bits/msq.h

   nazwa wartosc osemkowo znaczenie
   IPC_NOWAIT
   04000
   Nie czekaj na wiadomosci
   MSG_EXCEPT
   020000
   Odbierz pierwsza wiadomosc NIE bedaca podanego typu
   MSG_NOERROR
   010000
   Obcinaj wiadomosci do podanego rozmiaru
     _________________________________________________________________

   Struktura msqid_ds (funkcja 71 w x86-64) z man 2 msgctl:
        struct msqid_ds {
                struct ipc_perm msg_perm;     /* Wlasciciel i uprawnienia */
                time_t          msg_stime;    /* Czas ostatniego msgsnd */
                time_t          msg_rtime;    /* Czas ostatniego msgrcv */
                time_t          msg_ctime;    /* Czas ostatniej zmiany */
                unsigned long   __msg_cbytes; /* Aktualna liczba bajtow w
                                                 kolejce */
                msgqnum_t       msg_qnum;     /* Aktualna liczba wiadomosci w
                                                 kolejce */
                msglen_t        msg_qbytes;   /* Maksymalna liczba bajtow
                                                 dozwolona w kolejce */
                pid_t           msg_lspid;    /* PID ostatniego msgsnd */
                pid_t           msg_lrpid;    /* PID ostatniego msgrcv */
        };

        struct ipc_perm {
                key_t          __key;       /* Klucz podany msgget */
                uid_t          uid;         /* Efektywny UID of wlasciciela */
                gid_t          gid;         /* Efektywny GID of wlasciciela */
                uid_t          cuid;        /* Efektywny UID of tworcy */
                gid_t          cgid;        /* Efektywny GID of tworcy */
                unsigned short mode;        /* Uprawnienia */
                unsigned short __seq;       /* Numer sekwencyjny */
        };
     _________________________________________________________________

   CAPTION: Rozkazy dla kolejek (funkcja 71 w x86-64) z
   /usr/include/bits/msq.h i /usr/include/bits/ipc.h

   nazwa wartosc znaczenie i wartosc zwracana
   IPC_RMID
   0
   Usun kolejke. Zwraca 0.
   IPC_SET
   1
   Kopiuj dane z tablicy buf o adresie podanym w R10 do struktur jadra.
   Zwraca 0.
   IPC_STAT
   2
   Kopiuj dane ze struktur jadra do tablicy buf o adresie podanym w R10.
   Zwraca 0.
   IPC_INFO
   3
   Zwroc w buf w R10 informacje o systemowych limitach i parametrach
   kolejek. Zwraca numer ostatniego uzywanego elementu w tablicy jadra.
   MSG_STAT
   11
   Podobne do IPC_STAT, lecz identyfikator zestawu semaforow jest numerem
   semafora w tablicy jadra. Zwraca identyfikator zestawu semaforow o
   podanym numerze.
   MSG_INFO
   12
   Podobne do IPC_INFO, zwraca inne wartosci w niektorych polach (man
   semctl) Zwraca numer ostatniego uzywanego elementu w tablicy jadra.
     _________________________________________________________________

   CAPTION: Podfunkcje dla arch_prctl (numer 158 w x86-64) z
   linux/arch/x86/include/asm/prctl.h

   nazwa wartosc znaczenie i wartosc zwracana
   ARCH_SET_FS
   0x1002
   Ustaw adres bazowy deskryptora FS na podany adres
   ARCH_GET_FS
   0x1003
   Pobierz adres bazowy deskryptora FS do zmiennej pod podanym adresem
   ARCH_SET_GS
   0x1001
   Ustaw adres bazowy deskryptora GS na podany adres
   ARCH_GET_GS
   0x1004
   Pobierz adres bazowy deskryptora GS do zmiennej pod podanym adresem
     _________________________________________________________________

   Struktura getcpu_cache (funkcja 318) z linux/include/linux/getcpu.h:
                struct getcpu_cache {
                        unsigned long blob[128 / sizeof(long)];
                };
     _________________________________________________________________

   Struktura robust_list_head (funkcja 312) z /usr/include/linux/futex.h:
                struct robust_list {
                        struct robust_list *next;
                };

                struct robust_list_head {

                        struct robust_list list;

                        long futex_offset;

                        struct robust_list *list_op_pending;
                };
     _________________________________________________________________

   CAPTION: Podfunkcje dla keyctl (numer 288) z
   /usr/include/linux/keyctl.h

   nazwa wartosc znaczenie
   KEYCTL_GET_KEYRING_ID
   0
   Pobierz identyfikator zbioru kluczy
   KEYCTL_JOIN_SESSION_KEYRING
   1
   Podlacz lub zacznij sesyjny zbior kluczy
   KEYCTL_UPDATE
   2
   Zaktualizuj klucz
   KEYCTL_REVOKE
   3
   Uniewaznij klucz
   KEYCTL_CHOWN
   4
   Zmien wlasciciela klucza
   KEYCTL_SETPERM
   5
   Ustaw uprawnienia do klucza
   KEYCTL_DESCRIBE
   6
   Opisz klucz
   KEYCTL_CLEAR
   7
   Wyczysc zawartosc zbioru kluczy
   KEYCTL_LINK
   8
   Polacz klucz ze zbiorem kluczy
   KEYCTL_UNLINK
   9
   Odlacz klucz od zbioru kluczy
   KEYCTL_SEARCH
   10
   Znajdz klucz w zbiorze kluczy
   KEYCTL_READ
   11
   Odczytaj zawartosc klucza lub zbioru kluczy
   KEYCTL_INSTANTIATE
   12
   Stworz czesciowo skonstruowany klucz
   KEYCTL_NEGATE
   13
   Zaneguj czesciowo skonstruowany klucz
   KEYCTL_SET_REQKEY_KEYRING
   14
   Ustaw domyslny zbior kluczy dla zapytan o klucz
   KEYCTL_SET_TIMEOUT
   15
   Ustaw czas trwania klucza
   KEYCTL_ASSUME_AUTHORITY
   16
   Zaloz uprawnienie do stworzenia klucza
   KEYCTL_GET_SECURITY
   17
   Pobierz etykiete bezpieczenstwa klucza
     _________________________________________________________________

   CAPTION: Specjalne zbiory kluczy dla request_key (numer 287) z
   /usr/include/linux/keyctl.h

   nazwa wartosc znaczenie
   KEY_SPEC_THREAD_KEYRING
   -1
   Zbior kluczy specyficzny dla watku
   KEY_SPEC_PROCESS_KEYRING
   -2
   Zbior kluczy specyficzny dla procesu
   KEY_SPEC_SESSION_KEYRING
   -3
   Zbior kluczy specyficzny dla sesji
   KEY_SPEC_USER_KEYRING
   -4
   Zbior kluczy specyficzny dla uzytkownika
   KEY_SPEC_USER_SESSION_KEYRING
   -5
   Zbior kluczy specyficzny dla uzytkownika i sesji
   KEY_SPEC_GROUP_KEYRING
   -6
   Zbior kluczy specyficzny dla grupy
   KEY_SPEC_REQKEY_AUTH_KEY
   -7
   ID klucza dla przewidywanego klucza uwierzytelnienia dla request_key
   KEY_SPEC_REQUESTOR_KEYRING
   -8
   ID klucza dla zbioru docelowego dla request_key
     _________________________________________________________________

   Struktura kexec_segment (funkcja 283) z man 2 kexec_load:
        struct kexec_segment
        {
                void   *buf;        /* bufor w przestrzeni uzytkownika */
                size_t  bufsz;      /* dlugosc bufora w przestrzeni uzytkownika
 */
                void   *mem;        /* fizyczny adres jadra */
                size_t  memsz;      /* dlugosc fizycznego adresu */
        };
     _________________________________________________________________

   CAPTION: Flagi dla kexec_load (numer 283) z
   linux-X.Y.Z/include/linux/kexec.h

   nazwa wartosc znaczenie
   KEXEC_ON_CRASH
   0x00000001
   Uruchom nowe jadro po awarii systemu
   KEXEC_PRESERVE_CONTEXT
   0x00000002
   Zachowaj stan oprogramowania i sprzetu przed uruchomieniem nowego
   jadra
   KEXEC_ARCH_DEFAULT
   ( 0 << 16)
   Architektura nowego jadra to architektura domyslna
   KEXEC_ARCH_386
   ( 3 << 16)
   Architektura nowego jadra to i386
   KEXEC_ARCH_X86_64
   (62 << 16)
   Architektura nowego jadra to x86-64 (AMD64)
   KEXEC_ARCH_PPC
   (20 << 16)
   Architektura nowego jadra to PowerPC
   KEXEC_ARCH_PPC64
   (21 << 16)
   Architektura nowego jadra to PowerPC64
   KEXEC_ARCH_IA_64
   (50 << 16)
   Architektura nowego jadra to IA-64
   KEXEC_ARCH_ARM
   (40 << 16)
   Architektura nowego jadra to ARM
   KEXEC_ARCH_S390
   (22 << 16)
   Architektura nowego jadra to S390
   KEXEC_ARCH_SH
   (42 << 16)
   Architektura nowego jadra to SH
   KEXEC_ARCH_MIPS
   (10 << 16)
   Architektura nowego jadra to MIPS
   KEXEC_ARCH_MIPS_LE.
   ( 8 << 16)
   Architektura nowego jadra to MIPS LE
     _________________________________________________________________

   CAPTION: Typy przestrzeni nazw dla sys_setns (numer 346) z
   linux-X.Y.Z/include/linux/sched.h

   nazwa wartosc znaczenie
   CLONE_NEWIPC
   0x08000000
   deskryptor musi odnosic sie do przestrzeni nazw IPC
   CLONE_NEWNET
   0x40000000
   deskryptor musi odnosic sie do sieciowej przestrzeni nazw
   CLONE_NEWUTS
   0x04000000
   deskryptor musi odnosic sie do przestrzeni nazw UTS
     _________________________________________________________________

   Struktura mmsghdr (funkcje 337 i 345) z man 2 recvmmsg:
        struct mmsghdr {
                struct msghdr msg_hdr;  /* Naglowek wiadomosci */
                unsigned int  msg_len;  /* Liczba otrzymanych bajtow naglowka *
/
        };

   Struktura msghdr zostala opisana wczesniej.
     _________________________________________________________________

   CAPTION: Flagi dla finit_module (numer 350) z
   linux-X.Y.Z/include/uapi/linux/module.h

   nazwa wartosc znaczenie
   MODULE_INIT_IGNORE_MODVERSIONS
   1
   Ignoruj hashe wersji symboli
   MODULE_INIT_IGNORE_VERMAGIC
   2
   Ignoruj identyfikator zgodnego jadra w module ("vermagic")
     _________________________________________________________________

   Struktura sched_attr (funkcje 351 i 352) z man 2 sched_setattr:
        struct sched_attr {
                u32 size;              /* Rozmiar tej struktury */
                u32 sched_policy;      /* Polityka  (SCHED_OTHER = 0,
                                                SCHED_BATCH = 3, SCHED_IDLE = 5
,
                                                SCHED_FIFO = 1, SCHED_RR = 2,
                                                SCHED_DEADLINE = 6) */
                u64 sched_flags;       /* Flagi = 0 lub SCHED_FLAG_RESET_ON_FOR
K = 0x40000000 */
                s32 sched_nice;        /* Wartosc priorytetu (SCHED_OTHER,
                                                SCHED_BATCH) */
                u32 sched_priority;    /* Statyczny priorytet (SCHED_FIFO,
                                                SCHED_RR) */
                /* Pozostale pola sa dla SCHED_DEADLINE */
                u64 sched_runtime;
                u64 sched_deadline;
                u64 sched_period;
        };
     _________________________________________________________________

   CAPTION: Flagi dla renameat2 (numer 353) z
   linux-X.Y.Z/include/uapi/linux/fs.h

   nazwa wartosc znaczenie
   RENAME_EXCHANGE
   1 << 1
   Atomowo wymien 2 istniejace obiekty miedzy soba
   RENAME_NOREPLACE
   1 << 0
   Nie nadpisuj sciezki docelowej (blad, gdy juz istnieje)
   RENAME_WHITEOUT
   1 << 2
   Utworz obiekt nadpisujacy (whiteout)
     _________________________________________________________________

   Struktura sock_fprog (funkcja 354) z man 2 seccomp:
        struct sock_fprog {
                unsigned short      len;    /* Liczba instrukcji BPF */
                struct sock_filter *filter; /* Adres tablicy instrukcji BPF */
        };

        struct sock_filter {
                __u16 code;                 /* Kod filtru */
                __u8  jt;                   /* Skok, gdy prawda */
                __u8  jf;                   /* Skok, gdy falsz */
                __u32 k;                    /* Pole dowolnego uzytku */
        };

        struct seccomp_data {
                int   nr;                   /* Numer funkcji systemowej */
                __u32 arch;                 /* wartosc AUDIT_ARCH_* z
                                                <linux/audit.h> */
                __u64 instruction_pointer;  /* wskaznik instrukcji CPU - IP/EIP
/RIP */
                __u64 args[6];              /* Do 6 parametrow funkcji systemow
ej */
        };
     _________________________________________________________________

   CAPTION: Flagi dla getrandom (numer 355) z
   linux-X.Y.Z/include/uapi/linux/random.h

      nazwa     wartosc                znaczenie
   GRND_RANDOM
                0x0002
                        Uzywaj /dev/random zamiast /dev/urandom
   GRND_NONBLOCK
                0x0001
                        Nie czekaj w razie braku danych
     _________________________________________________________________

   CAPTION: Flagi dla memfd_create (numer 356) z
   linux-X.Y.Z/include/uapi/linux/memfd.h

        nazwa       wartosc               znaczenie
   MFD_CLOEXEC
                    0x0001
                            Ustaw FD_CLOEXEC na nowym deskryptorze
   MFD_ALLOW_SEALING
                    0x0002
                            Umozliw operacje pieczetowania pliku
     _________________________________________________________________

   CAPTION: Operacje dla sys_bpf (numer 357) z
   linux-X.Y.Z/include/uapi/linux/bpf.h

          nazwa        wartosc                    znaczenie
   BPF_MAP_CREATE
                       0
                               Utworz mape i zwroc jej deskryptor
   BPF_MAP_LOOKUP_ELEM
                       1
                               Wyszukaj element w mapie i zwroc jego wartosc
   BPF_MAP_UPDATE_ELEM
                       2
                               Utworz lub zmien element w mapie
   BPF_MAP_DELETE_ELEM
                       3
                               Wyszukaj element w mapie i usun go
   BPF_MAP_GET_NEXT_KEY
                       4
                               Wyszukaj element w mapie i pobierz kolejny klucz
   BPF_PROG_LOAD
                       5
                               Sprawdz i zaladuj program
     _________________________________________________________________

   Struktura bpf_attr (funkcja 357) z man 2 bpf:
        union bpf_attr {
                struct {    /* Uzywane w BPF_MAP_CREATE */
                        __u32         map_type;
                        __u32         key_size;    /* rozmiar klucza w bajtach
*/
                        __u32         value_size;  /* rozmiar wartosci w bajtac
h */
                        __u32         max_entries; /* maksymalna liczba wpisow
w mapie */
                };

                struct {    /* Uzywane w BPF_MAP_*_ELEM i BPF_MAP_GET_NEXT_KEY
*/
                        __u32         map_fd;
                        __aligned_u64 key;
                        union {
                                __aligned_u64 value;
                                __aligned_u64 next_key;
                        };
                        __u64         flags;
                };

                struct {    /* Uzywane w BPF_PROG_LOAD */
                        __u32         prog_type;
                        __u32         insn_cnt;
                        __aligned_u64 insns;      /* 'const struct bpf_insn *'
*/
                        __aligned_u64 license;    /* 'const char *' */
                        __u32         log_level;  /* Poziom logowania w weryfik
acji */
                        __u32         log_size;   /* rozmiar bufora uzytkownika
 */
                        __aligned_u64 log_buf;    /* bufor uzytkownika 'char *'
 */
                        __u32         kern_version;
                                                /* sprawdzane, gdy prog_type=kp
robe
                                                (od Linux 4.1) */
                };
        } __attribute__((aligned(8)));

     _________________________________________________________________

   CAPTION: Flagi dla execveat (numer 358)

   nazwa wartosc znaczenie
   AT_EMPTY_PATH
   0x1000
   Jesli sciezka jest pusta, uruchom plik wskazany jako katalog
   AT_SYMLINK_NOFOLLOW
   0x100
   Nie podazaj za dowiazaniami symbolicznymi
     _________________________________________________________________

   CAPTION: Komendy membarrier (numer 375) z
   linux-X.Y.Z/include/uapi/linux/membarrier.h

   nazwa wartosc znaczenie
   MEMBARRIER_CMD_QUERY
   0
   Pobierz liste obslugiwanych komend
   MEMBARRIER_CMD_SHARED
   1
   Zsynchronizuj watki - upewnij sie, ze wszystkie przeszly przez punkt,
   w ktorym wszystkie odczyty i zapisy pamieci sa zgodne z kolejnoscia
   ich wykonania
     _________________________________________________________________

   CAPTION: Flagi dla mlock2 (numer 376) z
   linux-X.Y.Z/include/uapi/asm-generic/mman-common.h

   nazwa wartosc znaczenie
   MLOCK_ONFAULT
   0x01
   Zablokuj strony pamieci aktualnie rezydentne i zaznacz caly obszar do
   zablokowania stron po ich zaladowaniu po bledzie stronicowania
     _________________________________________________________________

   CAPTION: Flagi dla preadv2 (numer 378) z
   linux-X.Y.Z/include/uapi/linux/fs.h

    nazwa    wartosc            znaczenie
   RWF_HIPRI
            0x00000001
                      Operacja o wysokim priorytecie
     _________________________________________________________________

   CAPTION: Flagi dla fanotify_init (numer 338) z
   linux-X.Y.Z/include/uapi/linux/fanotify.h

   nazwa wartosc znaczenie
   FAN_CLASS_PRE_CONTENT
   0x00000008
   Zdarzenia przed dostepem do obiektu
   FAN_CLASS_CONTENT
   0x00000004
   Zdarzenia po dostepie do obiektu
   FAN_CLASS_NOTIF
   0x00000000
   Zdarzenia w dowolnym momencie, zwiazane z dostepem do obiektu
   FAN_CLOEXEC
   0x00000001
   Ustaw FD_CLOEXEC na zwroconym deskryptorze
   FAN_NONBLOCK
   0x00000002
   Wylacz blokowanie na zwroconym deskryptorze
   FAN_UNLIMITED_QUEUE
   0x00000010
   Wylacz limit komunikatow w kolejce
   FAN_UNLIMITED_MARKS
   0x00000020
   Wylacz limit znacznikow w kolejce
     _________________________________________________________________

   CAPTION: Flagi dla fanotify_mark (numer 338) z
   linux-X.Y.Z/include/uapi/linux/fanotify.h

   nazwa wartosc znaczenie
   FAN_MARK_ADD
   0x00000001
   Dodaj zdarzenia do maski
   FAN_MARK_REMOVE
   0x00000002
   Usun zdarzenia z maski
   FAN_MARK_FLUSH
   0x00000080
   Usun z maski zdarzenia zwiazane lub niezwiazane z montowaniem (zalezy
   od innych parametrow)
   FAN_MARK_DONT_FOLLOW
   0x00000004
   Nie podazaj za dowiazaniami symbolicznymi
   FAN_MARK_ONLYDIR
   0x00000008
   Dodaj zdarzenia tylko dla katalogu
   FAN_MARK_MOUNT
   0x00000010
   Dodaj punkt montowania i wszystkie obiekty w srodku do obserwacji
   FAN_MARK_IGNORED_MASK
   0x00000020
   Dodaj lub usun zdarzenia z listy ignorowanych
   FAN_MARK_IGNORED_SURV_MODIFY
   0x00000040
   Lista ignorowanych ma byc zachowana, gdy nastepuje modyfikacja innych
     _________________________________________________________________

   CAPTION: Zdarzenia dla fanotify_mark (numer 338) z
   linux-X.Y.Z/include/uapi/linux/fanotify.h

   nazwa wartosc znaczenie
   FAN_ACCESS
   0x00000001
   Stworz zdarzenie, gdy nastepuje dostep do obiektu
   FAN_MODIFY
   0x00000002
   Stworz zdarzenie, gdy plik zostaje zmieniony (zapisany)
   FAN_CLOSE_WRITE
   0x00000008
   Stworz zdarzenie, gdy zapisywalny plik zostaje zamkniety
   FAN_CLOSE_NOWRITE
   0x00000010
   Stworz zdarzenie, gdy plik otwarty tylko do odczytu lub katalog
   zostaje zamkniety
   FAN_OPEN
   0x00000020
   Stworz zdarzenie, gdy plik lub katalog zostaje otwarty
   FAN_OPEN_PERM
   0x00010000
   Stworz zdarzenie, gdy pojawia sie zadanie otwarcia do pliku lub
   katalogu
   FAN_ACCESS_PERM
   0x00020000
   Stworz zdarzenie, gdy pojawia sie zadanie czytania pliku lub katalogu
   FAN_ONDIR
   0x40000000
   Stworz odpowiednie ze zdarzen dla katalogu
   FAN_EVENT_ON_CHILD
   0x08000000
   Stworz zdarzenie stworzenia obiektow bezposrednio w danym katalogu
   FAN_CLOSE
   FAN_CLOSE_WRITE + FAN_CLOSE_NOWRITE
   Stworz zdarzenie, gdy obiekt otwarty w dowolnym trybie zostaje
   zamkniety
     _________________________________________________________________

   Struktura file_handle (funkcja 341) z man 2 name_to_handle_at:
        struct file_handle {
                unsigned int  handle_bytes;   /* rozmiar f_handle */
                int           handle_type;    /* typ uchwytu */
                unsigned char f_handle[0];    /* identyfikator pliku */
        };
     _________________________________________________________________

   CAPTION: Typy zasobow dla sys_kcmp (numer 338) z
   linux-X.Y.Z/include/uapi/linux/kcmp.h

      nazwa    wartosc                     znaczenie
   KCMP_FILE
               0
                       Porownaj podane deskryptory plikow
   KCMP_FILES
               2
                       Porownaj wszystkie deskryptory plikow w procesach
   KCMP_FS
               3
                       Porownaj informacje o systemie plikow
   KCMP_IO
               5
                       Porownaj kontekst I/O
   KCMP_SIGHAND
               4
                       Porownaj dyspozycje obslugi sygnalow
   KCMP_SYSVSEM
               6
                       Porownaj listy operacji cofania w semaforach
   KCMP_VM
               1
                       Porownaj przestrzen adresowa
     _________________________________________________________________

   CAPTION: Flagi dla kexec_file_load (numer 320 w x86-64) z
   linux-X.Y.Z/include/uapi/linux/kexec.h

   nazwa wartosc znaczenie
   KEXEC_FILE_UNLOAD
   0x00000001
   Odlacz aktulanie dzialajace jadro
   KEXEC_FILE_ON_CRASH
   0x00000002
   Zaladuj nowe jadro jako awaryjne, gdy w pierwszym wystapi blad
   KEXEC_FILE_NO_INITRAMFS
   0x00000004
   Ladowanie initrd jest opcjonalne

   Spis tresci off-line (klawisz dostepu 1)
   Spis tresci on-line (klawisz dostepu 2)
   Ulatwienia dla niepelnosprawnych (klawisz dostepu 0)
