   #Start Prev Next Contents Funkcje x86-64: 301-312

                   Opis funkcji przerwania int 80h: 301-350

   Jesli jakas funkcja zakonczy sie bledem, w EAX/RAX zwracana jest
   wartosc ujemna z przedzialu od -4096 do -1 wlacznie.

   Z drugiej strony, opisy funkcji na stronach manuala mowia, ze zwracane
   jest -1, a wartosc bledu jest zapisywana do zmiennej errno z
   biblioteki GLIBC. Dzieje sie tak tylko w przypadku, gdy korzystamy z
   interfejsu jezyka C (czyli deklarujemy i uruchamiamy zewnetrzne
   funkcje odpowiadajace wywolaniom systemowym i linkujemy nasz program z
   biblioteka jezyka C), a nie bezposrednio z wywolan systemowych (czyli
   przerwania int 80h).

   Najbardziej aktualne informacje o funkcjach systemowych mozna znalezc
   zazwyczaj w sekcji 2 (lub 3) manuala, na przyklad man 2 open.

   Najnowsze wersje jadra mozna znalezc na www.kernel.org, a pliki z
   lista funkcji i ich numerow sa pod sciezkami:
     * arch/x86/include/asm/unistd_{32,64}.h
     * arch/x86/syscalls/syscall_{32,64}.tbl
     * arch/x86/entry/syscalls/syscall_{32,64}.tbl

   Najnowsze wersje stron manuala mozna znalezc tu:
   www.kernel.org/pub/linux/docs/man-pages.

   Napis ASCIIZ oznacza lancuch znakow ASCII zakonczony znakiem/bajtem
   Zerowym.

   Jesli potrzeba, przy kazdej funkcji jest odnosnik do opisu argumentow
   i innych dodatkowych informacji: typow danych, wartosci bledow,
   mozliwych wartosci parametrow itp.

   CAPTION: Podstawowe funkcje przerwania 80h: 301-350

   Numer/ EAX x86-64 RAX Opis Argumenty Zwraca
   301
   263
   Usun obiekt wzglednie do katalogu (sys_ulinkat)
   EBX/RDI = deskryptor otwartego katalogu lub wartosc AT_FDCWD=-100
   oznaczajaca katalog biezacy
   ECX/RSI = adres sciezki/nazwy ASCIIZ. Jesli sciezka jest wzgledna,
   jest brana jako wzgledna wzgledem podanego katalogu zamiast biezacego
   katalogu procesu
   EDX/RDX = 0 lub AT_REMOVEDIR (=0x200), gdy chcemy usuwac katalogi
   EAX = 0
   EAX = blad EBADF, ENOTDIR, EINVAL
     _________________________________________________________________

   302
   264
   Przenies plik/Zmien nazwe pliku wzglednie do katalogu (sys_renameat)
   EBX/RDI = deskryptor otwartego katalogu zrodlowego lub wartosc
   AT_FDCWD=-100 oznaczajaca katalog biezacy
   ECX/RSI = adres starej nazwy (i ewentualnie sciezki) ASCIIZ
   EDX/RDX = deskryptor otwartego katalogu docelowego
   ESI/R10 = adres nowej nazwy (i ewentualnie sciezki) ASCIIZ
   EAX = 0
   EAX = blad EBUSY, EEXIST, EISDIR, ENOTEMPTY, EXDEV (i inne bledy
   systemu plikow), EBADF, ENOTDIR
     _________________________________________________________________

   303
   265
   Utworzenie twardego dowiazania do pliku wzglednie do katalogu
   (sys_linkat)
   EBX/RDI = deskryptor otwartego katalogu zrodlowego lub wartosc
   AT_FDCWD=-100 oznaczajaca katalog biezacy
   ECX/RSI = adres nazwy istniejacego pliku ASCIIZ
   EDX/RDX = deskryptor otwartego katalogu docelowego
   ESI/R10 = adres nazwy nowego pliku ASCIIZ
   EDI/R8 = 0 (flagi)
   EAX = 0
   EAX=blad EACCES, EIO, EPERM, EEXIST, EFAULT, ELOOP, EMLINK,
   ENAMETOOLONG, ENOENT, ENOMEM, ENOSPC, ENOTDIR, EROFS, EXDEV
     _________________________________________________________________

   304
   266
   Stworz dowiazanie symboliczne do pliku wzglednie do katalogu
   (sys_symlinkat)
   EBX/RDI = adres nazwy pliku ASCIIZ
   ECX/RSI = deskryptor otwartego katalogu docelowego lub wartosc
   AT_FDCWD=-100 oznaczajaca katalog biezacy
   EDX/RDX = adres nazwy linku ASCIIZ
   EAX = 0
   EAX = bledy zwiazane z uprawnieniami lub systemem plikow
     _________________________________________________________________

   305
   267
   Przeczytaj zawartosc linku symbolicznego wzglednie do katalogu
   (sys_readlinkat)
   EBX/RDI = deskryptor otwartego katalogu zrodlowego lub wartosc
   AT_FDCWD=-100 oznaczajaca katalog biezacy
   ECX/RSI = adres nazwy dowiazania symbolicznego ASCIIZ
   EDX/RDX = adres bufora, ktory otrzyma przeczytana informacje
   ESI/R10 = dlugosc bufora
   EAX = 0
   EAX = blad EBADF, ENOTDIR
     _________________________________________________________________

   306
   268
   Zmiana uprawnien obiektu wzglednie do katalogu (sys_fchmodat)
   EBX/RDI = deskryptor otwartego katalogu zrodlowego lub wartosc
   AT_FDCWD=-100 oznaczajaca katalog biezacy
   ECX/RSI = adres nazwy pliku ASCIIZ
   EDX/RDX = nowe prawa dostepu
   ESI/R10 = flagi, musi byc zero
   EAX = 0
   EAX = blad EBADF, ENOTDIR
     _________________________________________________________________

   307
   269
   Sprawdz uprawnienia dostepu do pliku (sys_faccessat)
   EBX/RDI = deskryptor otwartego katalogu zrodlowego lub wartosc
   AT_FDCWD=-100 oznaczajaca katalog biezacy
   ECX/RSI = adres nazwy pliku ASCIIZ
   EDX/RDX = prawa dostepu / tryb (wartosci R_OK, W_OK, X_OK)
   ESI/R10 = flagi: 0 lub AT_SYMLINK_NOFOLLOW=100h (nie podazaj za
   dowiazaniami symbolicznymi) lub AT_EACCESS=0x200 (sprawdzanie wedlug
   efektywnych UID i GID)
   EAX = 0
   EAX = blad EBADF, ENOTDIR, EINVAL
     _________________________________________________________________

   308
   270
   Oczekiwanie zmiany stanu deskryptora(ow) (sys_pselect6)
   EBX/RDI = najwyzszy numer sposrod deskryptorow + 1
   ECX/RSI = adres tablicy deskryptorow sprawdzanych, czy mozna z nich
   czytac
   EDX/RDX = adres tablicy deskryptorow sprawdzanych, czy mozna do nich
   pisac
   ESI/R10 = adres tablicy deskryptorow sprawdzanych, czy nie wystapil u
   nich wyjatek
   EDI/R8 = adres struktury timespec zawierajaca maksymalny czas
   oczekiwania
   EBP/R9 = adres struktury sigset_t zawierajaca maske sygnalow do
   ustawienia na czas wywolania tej funkcji
   EAX = calkowita liczba deskryptorow, ktora pozostala w tablicach
   EAX = 0, gdy skonczyl sie czas
   EAX = blad EBADF, EINTR, EINVAL, ENOMEM
     _________________________________________________________________

   309
   271
   Czekaj na zdarzenia na deskryptorze (sys_ppoll)
   EBX/RDI = adres tablicy struktur pollfd
   ECX/RSI = liczba struktur pollfd w tablicy
   EDX/RDX = adres struktury timespec - czas oczekiwania lub 0
   (nieskonczonosc)
   ESI/R10 = adres struktury sigset_t
   EAX = liczba odpowiednich deskryptorow
   EAX = 0, gdy czas uplynal
   EAX = blad EFAULT, EINTR, EINVAL, EBADF, ENOMEM
     _________________________________________________________________

   310
   272
   Cofnij wspoldzielenie (sys_unshare)
   EBX/RDI = CLONE_FILES, CLONE_FS lub CLONE_NEWNS sposrod flag
   EAX = 0
   EAX=blad EPERM, ENOMEM, EINVAL
     _________________________________________________________________

   311
   273
   Ustaw liste sprawnych futeksow (sys_set_robust_list)
   EBX/RDI = adres pierwszego elementu listy struktur typu
   robust_list_head
   ECX/RSI = rozmiar elementu listy podanej przez EBX/RDI
   EAX = 0
   EAX = blad EINVAL
     _________________________________________________________________

   312
   274
   Pobierz liste sprawnych futeksow (sys_get_robust_list)
   EBX/RDI = PID procesu
   ECX/RSI = adres zmiennej, ktora otrzyma adres pierwszego elementu
   listy struktur typu robust_list_head
   EDX/RDX = adres zmiennej, ktora otrzyma rozmiar elementu listy podanej
   przez ECX/RSI
   EAX = 0
   EAX = blad EPERM, ESRCH, EFAULT
     _________________________________________________________________

   313
   275
   Splec dane z/do potoku (sys_splice)
   EBX/RDI = wejsciowy deskryptor pliku
   ECX/RSI = offset w pliku wejsciowym, skad czytac dane (0 dla potokow)
   EDX/RDX = wyjsciowy deskryptor pliku
   ESI/R10 = offset w pliku wyjsciowym, dokad zapisac dane (0 dla
   potokow)
   EDI/R8 = maksymalna liczba bajtow do przeniesienia
   EBP/R9 = flagi
   EAX = liczba przeniesionych bajtow
   EAX=blad EBADF, ESPIPE, ENOMEM, EINVAL
     _________________________________________________________________

   314
   277
   Synchronizuj segment pliku z dyskiem (sys_sync_file_range)
   EBX/RDI = deskryptor pliku
   EDX:ECX/RSI? = poczatek zakresu danych do synchronizacji / ECX/RSI
   wskazuje na 64 bity adresu poczatku danych?
   EDI:ESI/RDX? = liczba bajtow do zsynchronizowania / EDX/RDX wskazuje
   na 64-bitowa liczbe bajtow do zsynchronizowania?
   EBP/ESI (odpowiednio) / R10 = flagi synchronizacji
   EAX = 0
   EAX=blad EBADF, EIO, EINVAL, ENOMEM, ENOSPC, ESPIPE
     _________________________________________________________________

   315
   276
   Duplikowanie zawartosci potoku (sys_tee)
   EBX/RDI = wejsciowy deskryptor pliku
   ECX/RSI = wyjsciowy deskryptor pliku
   EDX/RDX = maksymalna liczba bajtow do przeniesienia
   ESI/R10 = flagi (te same, co dla sys_splice)
   EAX = liczba zduplikowanych bajtow
   EAX=blad ENOMEM, EINVAL
     _________________________________________________________________

   316
   278
   Splec strony pamieci do potoku (sys_vmsplice)
   EBX/RDI = wejsciowy deskryptor potoku
   ECX/RSI = adres tablicy struktur iovec
   EDX/RDX = liczba elementow w tablicy pod [ECX/RSI]
   ESI/R10 = flagi (te same, co dla sys_splice)
   EAX = liczba bajtow przeniesionych do potoku
   EAX=blad EBADF, ENOMEM, EINVAL
     _________________________________________________________________

   317
   279
   Przesun strony pamieci procesu (sys_move_pages)
   EBX/RDI = PID procesu
   ECX/RSI = liczba stron do przeniesienia
   EDX/RDX = adres tablicy adresow stron
   ESI/R10 = adres tablicy liczb calkowitych okreslajacych zadane miejsce
   dla danej strony
   EDI/R8 = adres tablicy na liczby calkowite, ktore otrzymaja status
   wykonanej operacji
   EBP/R9 = flagi okreslajace typ stron do przeniesienia (MPOL_MF_MOVE=2
   oznacza tylko strony procesu, MPOL_MF_MOVE_ALL=4 oznacza wszystkie
   strony)
   EAX = 0
   EAX=blad E2BIG, EACCES, EFAULT, EINVAL, ENODEV, ENOENT, EPERM, ESRCH
     _________________________________________________________________

   318
   309
   Pobierz procesor, na ktorym dziala watek (sys_getcpu)
   EBX/RDI = 0 lub adres zmiennej, ktora otrzyma numer procesora
   ECX/RSI = 0 lub adres zmiennej, ktora otrzyma numer wezla NUMA
   EDX/RDX = adres struktury getcpu_cache, ktora sluzyla jako pamiec
   podreczna dla tej funkcji; nieuzywane
   EAX = 0
   EAX=blad EFAULT
     _________________________________________________________________

   319
   281
   Czekaj na deskryptorze pliku epoll (sys_epoll_pwait)
   EBX/RDI = deskryptor epoll
   ECX/RSI = adres tablicy struktur epoll_event
   EDX/RDX = maksymalna liczba zdarzen, na ktore bedziemy czekac
   ESI/R10 = czas czekania w milisekundach (-1 = nieskonczonosc)
   EDI/R8 = adres zestawu sygnalow (tablicy 32 DWORDow), ktore tez
   przerwa czekanie
   EAX = liczba deskryptorow gotowych
   EAX=blad EFAULT, EINTR, EBADF, EINVAL
     _________________________________________________________________

   320
   280
   Zmien znaczniki czasu pliku (sys_utimensat)
   EBX/RDI = deskryptor otwartego katalogu lub wartosc AT_FDCWD=-100
   oznaczajaca katalog biezacy
   ECX/RSI = adres nazwy pliku
   EDX/RDX = adres dwuelementowej tablicy struktur timespec, opisujacych
   czas dostepu i zmiany
   ESI/R10 = flagi: 0 lub AT_SYMLINK_NOFOLLOW=0x100 (nie podazaj za
   dowiazaniami symbolicznymi)
   EAX = 0
   EAX=blad EACCES, EBADF, EFAULT, EINVAL, ELOOP, ENAMETOOLONG, ENOENT,
   ENOTDIR, EPERM, EROFS, ESRCH
     _________________________________________________________________

   321
   282
   Stworz deskryptor pliku do otrzymywania sygnalow (sys_signalfd)
   EBX/RDI = deskryptor: -1, gdy tworzymy nowy lub nieujemny, gdy
   zmieniamy istniejacy
   ECX/RSI = adres maski sygnalow (sigset), ktore chcemy otrzymywac
   EAX = deskryptor pliku
   EAX=blad EBADF, EINVAL, EMFILE, ENFILE, ENODEV, ENOMEM
     _________________________________________________________________

   322
   283
   Stworz nowy czasomierz (sys_timerfd_create)
   EBX/RDI = identyfikator zegara (CLOCK_REALTIME=0 lub
   CLOCK_MONOTONIC=1)
   ECX/RSI = flagi: 0 lub zORowane wartosci TFD_NONBLOCK (=04000
   osemkowo, operacje maja byc nieblokujace), TFD_CLOEXEC (=02000000
   osemkowo, zamknij w czasie wywolania exec)
   EAX = deskryptor pliku
   EAX=blad EINVAL, EMFILE, ENFILE, ENODEV, ENOMEM
     _________________________________________________________________

   323
   284
   Stworz deskryptor pliku do otrzymywania zdarzen (sys_eventfd)
   EBX/RDI = wstepna wartosc licznika zdarzen
   EAX = deskryptor pliku
   EAX=blad EINVAL, EMFILE, ENFILE, ENODEV, ENOMEM
     _________________________________________________________________

   324
   285
   Manipulacja przestrzenia pliku (sys_fallocate)
   EBX/RDI = deskryptor pliku
   ECX/RSI = tryb = FALLOC_FL_KEEP_SIZE (alokuje i zeruje przestrzen na
   dysku w podanym zakresie bajtow) = 1
   EDX/RDX = offset poczatku zakresu bajtow w pliku
   ESI/R10 = liczba bajtow w zakresie
   EAX = liczba deskryptorow gotowych
   EAX = blad EFAULT, EINTR, EBADF, EINVAL
     _________________________________________________________________

   325
   286
   Uruchom lub zatrzymaj czasomierz (sys_timerfd_settime)
   EBX/RDI = deskryptor pliku czasomierza
   ECX/RSI = flagi (0 uruchamia czasomierz wzgledy, TFD_TIMER_ABSTIME=1 -
   bezwzgledny)
   EDX/RDX = adres struktury itimerspec, zawierajacej poczatkowy czas
   ESI/R10 = adres struktury itimerspec, ktora otrzyma aktualny czas
   EAX = 0
   EAX=blad EINVAL, EFAULT, EBADF
     _________________________________________________________________

   326
   287
   Pobierz czas na czasomierzu (sys_timerfd_gettime)
   EBX/RDI = deskryptor pliku czasomierza
   ECX/RSI = adres struktury itimerspec, ktora otrzyma aktualny czas
   EAX = 0
   EAX=blad EINVAL, EFAULT, EBADF
     _________________________________________________________________

   327
   289
   Stworz deskryptor pliku do otrzymywania sygnalow (sys_signalfd4)
   EBX/RDI = deskryptor: -1, gdy tworzymy nowy lub nieujemny, gdy
   zmieniamy istniejacy
   ECX/RSI = adres maski sygnalow (sigset), ktore chcemy otrzymywac
   EDX/RDX = flagi: 0 lub zORowane wartosci SFD_NONBLOCK (=04000
   osemkowo, operacje maja byc nieblokujace), SFD_CLOEXEC (=02000000
   osemkowo, zamknij w czasie wywolania exec)
   EAX = deskryptor pliku
   EAX=blad EBADF, EINVAL, EMFILE, ENFILE, ENODEV, ENOMEM
     _________________________________________________________________

   328
   290
   Stworz deskryptor pliku do otrzymywania zdarzen (sys_eventfd2)
   EBX/RDI = wstepna wartosc licznika zdarzen
   ECX/RSI = flagi: 0 lub zORowane wartosci EFD_NONBLOCK (=04000
   osemkowo, operacje maja byc nieblokujace), EFD_CLOEXEC (=02000000
   osemkowo, zamknij w czasie wywolania exec)
   EAX = deskryptor pliku
   EAX=blad EINVAL, EMFILE, ENFILE, ENODEV, ENOMEM
     _________________________________________________________________

   329
   291
   Utworz deskryptor pliku epoll (sys_epoll_create1)
   EBX/RDI = flagi: 0 lub EPOLL_CLOEXEC (=02000000 osemkowo, zamknij w
   czasie wywolania exec)
   EAX = nowy deskryptor pliku
   EAX = blad ENOMEM, EINVAL, EMFILE, ENFILE
     _________________________________________________________________

   330
   292
   Zamien deskryptor zduplikowanym deskryptorem pliku (sys_dup3)
   EBX/RDI = deskryptor do zduplikowania
   ECX/RSI = deskryptor, do ktorego powinien byc przyznany duplikat
   EDX/RDX = flagi: 0 lub O_CLOEXEC (=02000000 osemkowo, zamknij w czasie
   wywolania exec)
   EAX = zduplikowany deskryptor
   EAX = blad EBADF, EMFILE, EBUSY, EINTR, EINVAL
     _________________________________________________________________

   331
   293
   Utworz potok (sys_pipe2)
   EBX/RDI = adres tablicy dwoch DWORDow
   ECX/RSI = flagi: 0 lub zORowane wartosci O_NONBLOCK (=04000 osemkowo,
   operacje maja byc nieblokujace), O_CLOEXEC (=02000000 osemkowo,
   zamknij w czasie wywolania exec)
   EAX = 0 i pod [EBX/RDI]: deskryptor odczytu z potoku fd(0) pod
   [EBX/RDI], deskryptor zapisu do potoku fd(1) pod [EBX/RDI+4]
   EAX = blad EFAULT, EMFILE, ENFILE, EINVAL
     _________________________________________________________________

   332
   294
   Inicjalizacja kolejki zdarzen inotify (sys_inotify_init1)
   EBX/RDI = flagi: 0 lub zORowane wartosci IN_NONBLOCK (=04000 osemkowo,
   operacje maja byc nieblokujace), IN_CLOEXEC (=02000000 osemkowo,
   zamknij w czasie wywolania exec)
   EAX = deskryptor kolejki
   EAX = blad EMFILE, ENFILE, ENOMEM, EINVAL
     _________________________________________________________________

   333
   295
   Odczyt danych do wielu buforow (sys_preadv)
   EBX/RDI = deskryptor otwartego pliku
   ECX/RSI = adres tablicy struktur iovec, do ktorych zapisac dane
   EDX/RDX = liczba struktur iovec spod [ECX/RSI]
   ESI/R10 = numer bajtu, od ktorego czytac (offset w pliku)
   EAX = liczba odczytanych bajtow
   EAX = blad funkcji sys_read, sys_lseek lub EINVAL
     _________________________________________________________________

   334
   296
   Zapis danych z wielu buforow (sys_pwritev)
   EBX/RDI = deskryptor otwartego pliku
   ECX/RSI = adres tablicy struktur iovec, z ktorych brac dane do
   zapisania
   EDX/RDX = liczba struktur iovec spod [ECX/RSI]
   ESI/R10 = numer bajtu, od ktorego zapisywac (offset w pliku)
   EAX = liczba zapisanych bajtow
   EAX = blad funkcji sys_write, sys_lseek lub EINVAL
     _________________________________________________________________

   335
   297
   Zakolejkuj dane i sygnal dla watku (sys_rt_tgsigqueueinfo)
   EBX/RDI = ID grupy watkow
   ECX/RSI = ID watku
   EDX/RDX = sygnal do wyslania
   ESI/R10 = adres struktury siginfo z danymi do wyslania
   EAX = 0
   EAX = blad EAGAIN, EINVAL, EPERM, ESRCH
     _________________________________________________________________

   336
   298
   sys_perf_counter_open
   brak danych
   brak danych
     _________________________________________________________________

   337
   299
   Odbierz wiele wiadomosci z gniazda (sys_recvmmsg)
   EBX/RDI = deskryptor otwartego gniazda
   ECX/RSI = adres tablicy struktur mmsghdr, do ktorych zapisac dane
   EDX/RDX = liczba struktur mmsghdr spod [ECX/RSI]
   ESI/R10 = 0 lub zORowane flagi funkcji recvmsg i dodatkowa flaga
   MSG_WAITFORONE (=0x10000) oznaczajaca czekanie na jedna wiadomosc
   EDI/R8 = adres struktury timespec oznaczajacej czas czekania lub 0
   (czekanie bez konca)
   EAX = liczba otrzymanych wiadomosci
   EAX = blad funkcji recvmsg lub EINVAL
     _________________________________________________________________

   338
   300
   Utworz grupe fanotify (sys_fanotify_init)
   EBX/RDI = flagi fanotify
   ECX/RSI = O_RDONLY, O_WRONLY, O_RDWR, O_LARGEFILE, O_CLOEXEC z bitow
   dostepu jako flagi zdarzen
   EAX = nowy deskryptor pliku
   EAX = blad EINVAL, EMFILE, ENOMEM, ENOSYS, EPERM
     _________________________________________________________________

   339
   301
   Zmiana znacznikow fanotify na obiekcie (sys_fanotify_mark)
   EBX/RDI = deskryptor fanotify
   ECX/RSI = flagi fanotify_mark mowiace, co zrobic
   EDX/RDX = maska zdarzen
   ESI/R10 = deskryptor obserwowanego obiektu lub katalogu, wzgledem
   ktorego brana jest sciezka
   EDI/R8 = sciezka ASCIIZ obserwowanego obiektu (jesli 0, brany jest
   deskryptor z ESI/R10)
   EAX = 0
   EAX = blad EBADF, EINVAL, ENOENT, ENOMEM, ENOSPC, ENOSYS, ENOTDIR
     _________________________________________________________________

   340
   302
   Ustaw lub pobierz limity zasobow (sys_prlimit64)
   EBX/RDI = PID procesu (0 = biezacy)
   ECX/RSI = typ zasobu
   EDX/RDX = adres struktury rlimit z nowymi limitami
   ESI/R10 = adres struktury rlimit, ktora otrzyma biezace limity
   EAX = 0
   EAX = blad EFAULT, EINVAL, EPERM, ESRCH
     _________________________________________________________________

   341
   303
   Przerob nazwe na uchwyt do pliku wzgledem katalogu
   (sys_name_to_handle_at)
   EBX/RDI = deskryptor katalogu
   ECX/RSI = sciezka do obiektu wzgledem katalogu
   EDX/RDX = adres do struktury file_handle, ktora otrzyma wynik
   ESI/R10 = adres zmiennej, ktora otrzyma ID systemu plikow
   EDI/R8 = flagi name_to_handle_at (te same, co dla sys_execveat)
   EAX = 0
   EAX = blad openat lub EFAULT, EINVAL, ENOENT, ENOTDIR, EOPNOTSUPP,
   EOVERFLOW
     _________________________________________________________________

   342
   304
   Otworz plik poprzez uchwyt (sys_open_by_handle_at)
   EBX/RDI = ID systemu plikow lub AT_FDCWD=-100 dla biezacego katalogu
   ECX/RSI = adres do struktury file_handle, ktora zawiera uchwyt do
   pliku
   EDX/RDX = flagi open_by_handle_at (te same, co dla sys_open)
   EAX = 0
   EAX = blad openat lub EBADF, EFAULT, EINVAL, ELOOP, EPERM, ESTALE
     _________________________________________________________________

   343
   305
   sys_clock_adjtime
   brak danych
   brak danych
     _________________________________________________________________

   344
   306
   Synchronizuj system plikow zawierajacy dany plik (sys_syncfs)
   EBX/RDI = deskryptor pliku otwartego na systemie plikow do
   synchronizacji
   EAX = 0
   EAX = blad EBADF
     _________________________________________________________________

   345
   307
   Wyslij wiele wiadomosci z gniazda (sys_sendmmsg)
   EBX/RDI = deskryptor otwartego gniazda
   ECX/RSI = adres tablicy struktur mmsghdr, z ktorych brac dane do
   wyslania
   EDX/RDX = liczba struktur mmsghdr spod [ECX/RSI]
   ESI/R10 = 0 lub zORowane flagi funkcji sendmsg
   EAX = liczba wyslanych wiadomosci
   EAX = blad funkcji sendmsg
     _________________________________________________________________

   346
   308
   Powiaz watek z przestrzenia nazw (sys_setns)
   EBX/RDI = deskryptor jednego z plikow w /proc/[pid]/ns/
   ECX/RSI = 0 (oznaczajace dowolny typ przestrzeni nazw lub jeden z
   typow przestrzeni nazw)
   EAX = 0
   EAX = blad EBADF, EINVAL, ENOMEM, EPERM
     _________________________________________________________________

   347
   310
   Czytaj dane innego procesu (sys_process_vm_readv)
   EBX/RDI = PID procesu
   ECX/RSI = adres tablicy struktur iovec na odczytane dane
   EDX/RDX = liczba struktur w [ECX/RSI]
   ESI/R10 = adres tablicy struktur iovec z adresami danych do odczytania
   EDI/R8 = liczba struktur w [ESI/R10]
   EBP/R9 = flagi (nieuzywane, ustawic na zero)
   EAX = liczba odczytanych bajtow
   EAX = blad EINVAL, EFAULT, ENOMEM, EPERM, ESRCH
     _________________________________________________________________

   348
   311
   Zapisz dane w innym procesie (sys_process_vm_writev)
   EBX/RDI = PID procesu
   ECX/RSI = adres tablicy struktur iovec na dane do zapisania
   EDX/RDX = liczba struktur w [ECX/RSI]
   ESI/R10 = adres tablicy struktur iovec z adresami miejsc do zapisania
   EDI/R8 = liczba struktur w [ESI/R10]
   EBP/R9 = flagi (nieuzywane, ustawic na zero)
   EAX = liczba zapisanych bajtow
   EAX = blad EINVAL, EFAULT, ENOMEM, EPERM, ESRCH
     _________________________________________________________________

   349
   312
   Porownaj zasoby 2 procesow (sys_kcmp)
   EBX/RDI = PID pierwszego procesu
   ECX/RSI = PID drugiego procesu
   EDX/RDX = typ zasobu do porownania
   ESI/R10 = ID pierwszego zasobu (zalezy od typu)
   EDI/R8 = ID drugiego zasobu (zalezy od typu)
   EAX = 0, gdy dany zasob jest wspoldzielony w obu procesach
   EAX = 1, 2, lub 3, gdy dany zasob nie jest wspoldzielony w obu
   procesach
   EAX = blad EBADF, EINVAL, EPERM, ESRCH
     _________________________________________________________________

   350
   313
   Zaladuj modul jadra z deskryptora pliku (sys_finit_module)
   EBX/RDI = deskryptor otwartego pliku z modulem jadra
   ECX/RSI = adres lancucha parametrow dla modulu - nazwa=wartosc
   (ASCIIZ)
   EDX/RDX = 0 lub zORowane flagi funkcji finit_module
   EAX = 0
   EAX = blad EBADMSG, EBUSY, EFAULT, ENOKEY, ENOMEM, EPERM, EBADF,
   EFBIG, EINVAL, ENOEXEC
     _________________________________________________________________

   Poprzednia czesc (klawisz dostepu 3)
   Kolejna czesc (klawisz dostepu 4)
   Spis tresci off-line (klawisz dostepu 1)
   Spis tresci on-line (klawisz dostepu 2)
   Ulatwienia dla niepelnosprawnych (klawisz dostepu 0)
