Provided by: manpages-pl_20060617-3_all bug

NAZWA

       st - urzdzenie tamy SCSI

SK/LADNIA

       #include <sys/mtio.h>

       int ioctl(int fd, int request [, (void *)arg3]);
       int ioctl(int fd, MTIOCTOP, (struct mtop *)mt_cmd);
       int ioctl(int fd, MTIOCGET, (struct mtget *)mt_status);
       int ioctl(int fd, MTIOCPOS, (struct mtpos *)mt_pos);

OPIS

       Sterownik   st   udostpnia  interfejs  do  ronego  rodzaju  napdow  tam
       magnetycznych SCSI.  Obecnie sterownik przejmuje kontrol nad wszystkimi
       wykrytymi  urzdzeniami  typu "sequential-access (dostpu sekwecyjnego)."
       Sterownikowi st przydzielony zostal numer glowny 9.

       Kade urzdzenie posiada osiem numerow podrzdnych.  Na  piciu  najniszych
       bitach  numeru  podrzdnego reprezentowane s przydzielone kolejno numery
       urzdze (kolejno detekcji).  Numery  podrzdne  mona  pogrupowa  w  dwoch
       zbiorach   po  cztery  numery:  glowne  numery  podrzdne  (urzdzenia  z
       przewijaniem), n, oraz  numery  urzdze  "bez  przewijania",  (n+  128).
       Urzdzenie otwarte przy wykorzystaniu glownego numeru podrzdnego otrzyma
       polecenie REWIND  podczas  jego  zamykania.  Urzdzenia  otwierane  przy
       wykorzystaniu  numeru  urzdzenia "bez przewijania" nie otrzymaj takiego
       rozkazu. (Trzeba zauway,  e  uywanie  urzdzenia  "bez  przewijania"  do
       pozycjonowania tamy, na przyklad za pomoc mt, nie prowadzi do poadanego
       efektu:  tama  jest  przewijana  po  wydaniu  polecenia  mt  i  nastpne
       polecenie zaczyna od pocztku tamy.)

       W kadej grupie dostpne s cztery numery podrzdne, definiujce urzdzenia o
       ronej charakterystyce (rozmiar bloku, kompresja, gsto  itp.).   Podczas
       startu   systemu  dostpne  jest  tylko  pierwsze  urzdzenie.  Aktywacja
       pozostalych   trzech   nastpuje   po   zdefiniowaniu   ich    domylnych
       charakterystyk   (patrz   niej).  (Zmieniajc  wartoci  stalych  podczas
       kompilacji, moliwa jest zmiana rownowagi pomidzy maksymaln liczb napdow
       tam  a  liczb  numerow  podrzdnych  dla  kadego napdu. Domylna alokacja
       powala na sterowanie 32 napdami tam. Na  przyklad,  mona  sterowac  nie
       wicej  ni  64  napdami tam, posiadajc po dwa numery podrzdne dla ronych
       opcji.)

       Pliki urzdze s zwykle tworzone za pomoc polece:
              mknod -m 666 /dev/st0 c 9 0
              mknod -m 666 /dev/st0l c 9 32
              mknod -m 666 /dev/st0m c 9 64
              mknod -m 666 /dev/st0a c 9 96
              mknod -m 666 /dev/nst0 c 9 128
              mknod -m 666 /dev/nst0l c 9 160
              mknod -m 666 /dev/nst0m c 9 192
              mknod -m 666 /dev/nst0a c 9 224

       Brak jest odpowiadajcych urzdze blokowych.

       Sterownik uywa wewntrznego bufora o  rozmiarze  dostatecznie  duym,  by
       pomiecil  co  najmniej  jeden  blok  tamy. W kernelach wczeniejszych ni
       2.1.121 bufor ten jest  przydzielany  jako  jeden  cigly  blok  pamici.
       Ogranicza  to  rozmiar  bloku  na  tamie  do  najwikszego ciglego bloku
       pamici, ktory  moe  zosta  przydzielony  przez  procedur  przydzielania
       pamici  w jdrze.  Obecnie ograniczenie to wynosi 128 kB dla architektur
       32-bitowych i 256 kB dla architektur  64-bitowych.  W  nowszych  jdrach
       sterownik  przydziela,  jeli  trzeba,  pami dla bufora w kilku czciach.
       Domylna  maksymalna  liczba  fragmentow  wynosi  16.  Oznacza   to,   e
       maksymalny  rozmiar bloku jest bardzo duy (2 MB, jeli uda si przydzieli
       16 blokow po 128 kB).

       Rozmiar wewntrznego bufora sterownika jest okrelony  przez  stal  czasu
       kompilacji,   ale  mona  go  zmieni  za  pomoc  opcji  startowej  jdra.
       Dodatkowo, sterownik probuje przydziela wikszy bufor  tymczasowy,  jeli
       zajdzie  taka  potrzeba w trakcie pracy. Jednake, przydzielanie podczas
       pracy duych ciglych blokow pamici moe si nie uda i zaleca si nie polega
       za  bardzo  na przydzielaniu buforow dynamicznych w kernelach starszych
       ni 2.1.121 (dotyczy to take ladowania  na  danie  sterownika  za  pomoc
       kerneld lub kmod).

       Ten  sterownik nie zawiera adnej specyficznej obslugi dla tam wybranego
       producenta, czy modelu. Po starcie systemu opcje urzdzenia  tamowego  s
       okrelane  na podstawie firmware napdu. Na przyklad, jeli firmware napdu
       wybiera tryb o stalej dlugoci bloku, urzdzenie tamowe rownie uywa trybu
       o  stalej  dlugoci  bloku. Opcje te mona zmieni za pomoc jawnych wywola
       ioctl() i zmiany te pozostaj aktywne, gdy urzdzenie zostanie zamknite i
       ponownie otwarte. Ustawione opcje dotycz zarowno urzdze z przewijaniem,
       jak i bez przewijania.

       Mona podawa rone opcje dla ronych urzdze  w  ramach  podgrupy  czterech
       urzdze.  Opcje  s  ustawiane  dla urzdzenia, gdy jest ono otwierane. Na
       przyklad,  administrator  systemu  moe   zdefiniowa   jedno   urzdzenie
       zapisujce  w trybie o stalej dlugoci bloku i jedno zapisujce w trybie o
       zmiennej dlugoci bloku (jeli napd obsluguje obydwa tryby).

       Sterownik obsluguje strefy tam, jeli  s  one  obslugiwane  przez  napd.
       (Trzeba tu zwroci uwag, e strefy tam nie maj nic wspolnego z partycjami
       dyskow [po angielsku w obu przypadkach "partitions"  -  przyp.  tlum.].
       Tama  podzielona na strefy moe by widziana jako kilka logicznych tam na
       jednym noniku.) Obslug stref trzeba wlczy za pomoc ioctl. Przy zmianach
       stref  zachowywane  jest  poloenie  na  tamie  w obrbie kadej ze stref.
       Stref, ktorej maj dotyczy nastpne operacje wybiera si za  pomoc  ioctl.
       Przelczanie stref odbywa si lcznie z nastpn operacj na tamie, aby unikn
       niepotrzebnego przewijania tamy.   Maksymalna  liczba  stref  na  tamie
       okrelona   jest  przez  stal  czasu  kompilacji  (pierwotnie:  cztery).
       Sterownik zawiera ioctl pozwalajcy sformatowa tam  z  jedn  lub  dwiema
       strefami.

       Urzdzenie  /dev/tape jest zwykle dowizaniem zwyklym lub symbolicznym do
       domylnego urzdzenia reprezentujcego tam magnetyczn w danym systemie.

TRANSMISJA DANYCH

       Sterownik moe pracowa zarowno w trybie  o  stalej,  jak  i  o  zmiennej
       dlugoci  bloku  (jeli  napd  obsluguje  oba  tryby).  W trybie o stalej
       dlugoci bloku napd zapisuje bloki okrelonej dlugoci i rozmiar bloku nie
       zaley od liczby bajtow, ktora zostala podana systemowej funkcji zapisu.
       W trybie o zmiennej dlugoci bloku zapisywany jest jeden blok przy kadym
       wywolaniu  funkcji  zapisu, a liczba bajtow podanych tej funkcji okrela
       rozmiar odpowiedniego bloku na tamie. Naley tu zwroci uwag, ze bloki na
       tamie  nie zawieraj informacji o trybie zapisu: jedyn wan rzecz podczas
       odczytu jest uywanie polece akceptujcych rozmiary blokow znajdujcych si
       na tamie.

       W  trybie  o  zmiennej  dlugoci bloku ilo odczytywanych bajtow nie musi
       dokladnie odpowiada dlugoci bloku na tamie.  Jeli  liczba  bajtow  jest
       wiksza  ni  nastpny  blok  na  tamie,  sterownik zwroci dane, a funkcja
       zwroci rozmiar biecego bloku. Jeli dlugo bloku jest  wiksza  ni  liczba
       bajtow, zwrocona zostanie dana ilo danych, poczwszy od pocztku bloku, a
       reszta bloku zostanie odrzucona.

       W trybie o  stalej  dlugoci  bloku  ilo  odczytywanych  bajtow  moe  by
       dowolna,  gdy wlczone jest buforowanie. Musi natomiast by wielokrotnoci
       dlugoci bloku, gdy  buforowanie  jest  wylczone.  Jdra  wczeniejsze  ni
       2.1.121  pozwalaly  na  zapis  dowolnej  liczby  bajtow  przy  wlczonym
       buforowaniu.  Natomiast w pozostalych przypadkach (jdra wczeniejsze  ni
       2.1.121  z wylczonym byforowaniem oraz nowsze jdra) liczba zapisywanych
       bajtow musi by wielokrotnoci dlugoci bloku na tamie.

       Znacznik pliku jest zapisywany na  tamie  automatycznie,  jeli  ostatni
       operacj na tej tamie przed jej zamkniciem byl zapis.

       Gdy  podczas  odczytu  napotkany  zostanie znacznik pliku, dzieje si co
       nastpuje. Jeli w chwili natrafienia na znacznik pliku  w  buforze  byly
       dane, zostan zwrocone dane z bufora. Nastpny odczyt zwroci zero bajtow.
       Kolejne odczyty zwroc dane z nastpnego pliku. Koniec zapisanych  danych
       jest  sygnalizowany  zwroceniem zerowej liczby bajtow przez dwa kolejne
       wywolania funkcji odczytu. Trzeci odczyt zwroci bld.

IOCTL

       Sterownik  obsluguje   trzy   wywolania   funkcji   ioctl.    Wywolania
       nierozpoznawane przez sterownik i st s przekazywane do sterownika SCSI.
       Ponisze definicje pochodz z pliku /usr/include/linux/mtio.h:

   MTIOCTOP - wykonanie operacji na tamie
       To wywolanie wymaga argumentu typu  (struct  mtop  *).   Nie  wszystkie
       napdy  obsluguj  wszystkie  polecenia.   Jeli  napd  odrzuca polecenie,
       sterownik przekazuje warto EIO.

       /* Struktura MTIOCTOP - dla polecenia op dla tamy magnetycznej: */
       struct mtop {
           short  mt_op;    /* jedno ze zdefiniowanych poniej polece*/
           int    mt_count; /* ile razy powtorzy*/
       };

       Operacje na tamie magnetycznej:
       MTBSF         Przesunicie do tylu o mt_count znacznikow pliku.
       MTBSFM        Przesunicie  do  tylu  o   mt_count   znacznikow   pliku.
                     Ustawienie  tamy  po  stronie  EOT (koca tamy) ostatniego
                     znacznika pliku.
       MTBSR         Przesunicie do tylu o mt_count rekordow (blokow tamy).
       MTBSS         Przesunicie do tylu o mt_count znacznikow (setmarks).
       MTCOMPRESSION Wlczenie kompresji danych na tamie dla danego  napdu  gdy
                     mt_count jest niezerowe, wylczenie kompresji gdy mt_count
                     jest  zerem.  Polecenie  to  korzysta  z  MODE  page   15
                     obslugiwanego przez wikszo urzdze DAT.
       MTEOM         Przesunicie   do  koca  zapisanej  czci  nonika  (w  celu
                     dogrania plikow).
       MTERASE       Wyczyszczenie tamy.
       MTFSF         Przesunicie do przodu o mt_count znacznikow pliku.
       MTFSFM        Przesunicie  do  przodu  o  mt_count  znacznikow   pliku.
                     Ustawienie  tamy po stronie BOT (pocztku tamy) ostatniego
                     znacznika pliku.
       MTFSR         Przesunicie do przodu o mt_count rekordow (blokow tamy).
       MTFSS         Przesunicie do przodu o mt_count znacznikow (setmarks).
       MTLOAD        Wykonanie  polecenia  SCSI  "load"  (zaladowanie   tamy).
                     Szczegolny   przypadek   dotyczcy   wylcznie   niektorych
                     automatycznie ladujcych  napdow  HP:  gdy  mt_count  jest
                     rowne  stalep  MT_ST_HPLOADER_OFFSET  powikszonej  o pewn
                     liczb, to ta liczba jest przesylana do  napdu  dla  celow
                     sterowania automatycznym zaladowaniem.
       MTLOCK        Zablokowanie kieszeni napdu tam.
       MTMKPART      Sformatowanie  tamy na jedn lub dwie strefy. Gdy mt_count
                     jest niezerowe, okrela rozmiar pierwszej strefy, a  druga
                     strefa obejmuje reszt tamy. Gdy mt_count jest zerem, tama
                     jest formatowana jako jedna  strefa.   Polecenie  to  nie
                     jest  dozwolone  dla  napdow,  dla  ktorych  nie  wlczono
                     obslugi stref (zobacz MT_ST_CAN_PARTITIONS poniej).
       MTNOP         Brak  operacji  -  jako  efekt  uboczny   opronia   bufor
                     sterownika.  Powinno si tego uywa przed odczytaniem stanu
                     za pomoc MTIOCGET.
       MTOFFL        Przewinicie tamy i odlczenie napdu.
       MTRESET       Inicjalizacja napdu.
       MTRETEN       Wyrownanie napicia tamy.
       MTREW         Prezewinicie.
       MTSEEK        Wyszukanie na tamie bloku o numerze podanym  w  mt_count.
                     Ta   operacja   wymaga   albo  sterownika  SCSI-2,  ktory
                     obsluguje  polecenie  LOCATE   (adres   specyficzny   dla
                     urzdzenia)  albo  urzdzenia  SCSI-1  zgodnego  z Tandberg
                     (Tandberg, Archive Viper, Wangtek, ...  ).   Numer  bloku
                     powinien  by  rowny zwroconemu poprzednio przez MTIOCPOS,
                     gdy uywany jest adres specyficzny dla urzdzenia.
       MTSETBLK      Ustawienie  dlugoci  bloku  sterownika   rownej   wartoci
                     podanej  w mt_count.  Dlugo rowna 0 wprowadza napd w tryb
                     blokow o zmiennej dlugoci.
       MTSETDENSITY  Ustawienie gstoci zapisu  tamy  zakodowanej  w  mt_count.
                     Kody  okrelajce  gsto  zapisu obslugiwane przez dany napd
                     mona znale w jego dokumentacji.
       MTSETPART     Przelczenie aktywnej strefy  na  mt_count  .   Strefy  sa
                     numerowane  od  zera. Polecenie to nie jest dozwolone dla
                     napdow, dla ktorych nie  wlczono  obslugi  stref  (zobacz
                     MT_ST_CAN_PARTITIONS poniej).
       MTUNLOAD      Wykonanie polecenia SCSI "unload" (nie wysuwa tamy).
       MTUNLOCK      Odblokowanie kieszeni napdu tam.
       MTWEOF        Zapisanie mt_count znacznikow pliku.
       MTWSM         Zapisanie mt_count znacznikow (setmarks).

       Polecenia  ustawiajce  opcje  dla  napdow  tam  magnetycznych  (mog  by
       wydawane tylko przez superuytkownika):
       MTSETDRVBUFFER
               Ustawienie ronych opcji napdu i sterownika, zgodnie z warociami
               pol  bitowych  przekazanych  w  mt_count.   Dotyczy  to sposobu
               buforowania   przez   sterownik,   13   logicznych   parametrow
               sterownika  oraz  progu zapisu bufora, domylnej dlugoci bloku i
               gstoci oraz czasow przeterminowania (tylko w  jdrach  >=  2.1).
               Pojedyncze  dzialanie  moe  zmieni  ustawienia tylko dla jednej
               pozycji z powyszej listy (parametry logiczne s traktowane  jako
               jedna calo).

               Warto,  ktorej  4 najwysze bity s rowne 0 zostanie wykorzystana
               do ustawienia trybu buforowania napdu. Do  wyboru  s  nastpujce
               tryby:

                   0   Napd  nie  bdzie  sygnalizowa stanu GOOD po poleceniach
                       zapisu zanim dane  nie  zostan  zapisane  fizycznie  na
                       noniku.
                   1   Napd  moe  sygnalizowa stan GOOD po poleceniach zapisu,
                       gdy  tylko  wszystkie   dane   zostan   umieszczone   w
                       wewntrznym buforze napdu.
                   2   Napd  moe  sygnalizowa stan GOOD po poleceniach zapisu,
                       gdy  tylko  (a)  wszystkie  dane  zostan  przeslane  do
                       wewntrznego  bufora  napdu  i  (b) wszystkie buforowane
                       dane (z innych  polece)  zostan  pomylnie  zapisane  na
                       noniku.

               Aby  kontrolowa  prog  zapisu, warto mt_count musi zawiera stal
               MT_ST_WRITE_THRESHOLD dodan za  pomoc  bitowego  OR  do  liczby
               blokow  w  28  najniszych  bitach.  Liczba  blokow odnosi si do
               1024-bajtowych blokow, a nie blokow o fizycznym rozmiarze bloku
               dla  danego urzdzenia.  Prog zapisu nie moe przekroczy rozmiaru
               wewntrznego bufora napdu (patrz OPIS, powyej).

               Aby ustawi lub usun opcje logiczne, warto mt_count musi zawiera
               jedn     ze    stalych    MT_ST_BOOLEANS,    MT_ST_SETBOOLEANS,
               MT_ST_CLEARBOOLEANS  lub  MT_ST_DEFBOOLEANS  dodan   za   pomoc
               bitowego  OR  do  dowolnej  kombinacji  poniszych  opcji. Uycie
               MT_ST_BOOLEANS  powoduje  nadanie  wszystkim   opcjom   wartoci
               podanych     na     odpowiednich    polach    bitowych.    Przy
               MT_ST_SETBOOLEANS  ustawione  zostan   tylko   wybrane   opcje,
               natomiast  przy  MT_ST_DEFBOOLEANS  tylko  wybrane opcje zostan
               usunite.

               Za  pomoc  MT_ST_DEFBOOLEANS  ustawiane  s  domylne  opcje  dla
               urzdzenia  tamowego. Nieaktywne urzdzenia tamowe (np. urzdzenia
               o numerze podrzdnym 32  lub  160)  s  aktywowane  po  pierwszym
               ustawieniu  dla  nich  domylnych  opcji.   Aktywowane urzdzenie
               dziedziczy od urzdzenia  aktywowanego  podczas  startu  systemu
               opcje, ktore nie zostaly jawnie podane.

               Dostpne s nastpujce opcje logiczne:

               MT_ST_BUFFER_WRITES  (Domylnie: wlczona)
                      Buforowanie wszystkich operacji zapisu w trybie o stalej
                      dlugoci bloku.  Jeli ta opcja jest wylczona i napd  uywa
                      stalej  dlugoci  bloku,  wtedy wszystkie operacje zapisu
                      musz dotyczy  wielokrotnoci  dlugoci  bloku.   Opcja  ta
                      powinna by wylczona, jeli chcemy w sposob pewny zapisywa
                      archiwa skladajce si z wielu wolumenow.
               MT_ST_ASYNC_WRITES  (Domylnie: wlczona)
                      Gdy  opcja  ta  jest  wlczona,  wtedy  operacje   zapisu
                      przekazuj  sterowanie  natychmiast,  bez  oczekiwania na
                      przeslanie informacji do napdu, jeli tylko dane  mieszcz
                      si  w  buforze  sterownika.   Stopie wypelnienia bufora,
                      przy ktorym zostanie wydane polecenie zapisu  SCSI  jest
                      okrelony  przez  prog  zapisu.  Wszystkie bldy zgloszone
                      przez napd bd wstrzymane a do nastpnej operacji.   Opcja
                      ta  powinna  by  wylczona,  jeli  chcemy  w sposob pewny
                      zapisywa archiwa skladajce si z wielu wolumenow.
               MT_ST_READ_AHEAD  (Domylnie: wlczona)
                      Opcja   ta   powoduje   zapewnienie   przez    sterownik
                      buforowania  i  odczytu wyprzedzajcego w trybie o stalej
                      dlugoci bloku.  Jeli ta opcja jest wylczona i napd  uywa
                      blokow   o  stalej  dlugoci,  wtedy  wszystkie  operacje
                      odczytu musz dotyczy wielokrotnoci dlugoci bloku.
               MT_ST_TWO_FM  (Domylnie: wylczona)
                      Opcja  ta  zmienia  zachowanie  sterownika  w   momencie
                      zamknicia   pliku.   Zwykle  towarzyszy  temu  zapisanie
                      pojedynczego znacznika  koca  pliku.   Jeli  opcja  jest
                      wlczona,  sterownik  zapisze  dwa  znaczniki i cofnie si
                      przed drugi.

                      Uwaga: Ta opcja  nie  powinna  by  wlczona  w  przypadku
                      napdow  QIC, poniewa nie s one w stanie zapisa danych na
                      znaczniku pliku.  Napdy te  wykrywaj  koniec  zapisanych
                      danych poprzez sprawdzenie, czy tama jest pusta, zamiast
                      stwierdzania  dwoch  kolejnych  znacznikow  koca  pliku.
                      Wikszo innych wspolczesnych napdow rownie wykrywa koniec
                      zapisanych danych, wic poslugiwanie si dwoma znacznikami
                      koca  pliku  jest  niezbdne  jedynie przy wymianie tam z
                      niektorymi innymi systemami.

               MT_ST_DEBUGGING  (Domylnie: wylczona)
                      Ta opcja wlcza wypisywanie przez  sterownik  komunikatow
                      diagnostycznych  (skuteczne  tylko  gdy sterownik zostal
                      skompilowany ze zdefiniowan niezerow wartoci DEBUG).
               MT_ST_FAST_EOM  (Domylnie: wylczona)
                      Wlczenie  tej  opcji  powoduje,  e  polecenia  MTEOM   s
                      przesylane    bezporednio    do    napdu,   potencjalnie
                      przyspieszajc operacj, lecz jednoczenie  powodujc  utrat
                      przez  sterownik  informacji o aktualnym poloeniu tamy -
                      numerze  pliku,   zwykle   przekazywanego   jako   wynik
                      zapytania  MTIOCGET.   Jeli  opcja  MT_ST_FAST_EOM  jest
                      wylczona, sterownik bdzie odpowiadal na polecenie  MTEOM
                      przwijaniem tamy plik po pliku.
               MT_ST_AUTO_LOCK  (Domylnie: wylczona)
                      Jeli  ta  opcja  jest  wlczona,  to  kiesze  napdu bdzie
                      blokowana po otwarciu urzdzenia, a odblokowywana po jego
                      zamkniciu.
               MT_ST_DEF_WRITES  (Domylnie: wylczona)
                      Opcje  tamy (dlugo bloku, tryb, kompresja itp.) mog ulec
                      zmianie   przy   przelczaniu   z    jednego    urzdzenia
                      skojarzonego z napdem na inne urzdzenia skojarzone z tym
                      samym napdem, w zalenoci od definicji tych  urzdze.   Ta
                      opcja  okrela,  kiedy  sterownik  powinien wymusi zmiany
                      wysyljc  polecenia  SCSI  oraz  kiedy  naley  polega  na
                      wlaciwociach  autodetekcyjnych urzdzenia.  Jeli opcja ta
                      jest wylczona, sterownik  bdzie  wysyla  polecenia  SCSI
                      natychmiast po zmianie urzdzenia. Jeli jest ona wlczona,
                      polecenia SCSI nie zostan wyslane dopoki nie  pojawi  si
                      danie   zapisu.  W  tym  przypadku  firmware  napdu  moe
                      dokonywa podczas odczytu autodetekcji struktury tamy,  a
                      polecenia  SCSI  maj  na  celu  jedynie zapewnienie, aby
                      zapis na tamie odbywal si zgodnie z wlaciw specyfikacj.
               MT_ST_CAN_BSR  (Domylnie: wylczona)
                      Gdy wykorzystywany jest odczyt wyprzedzajcy,  tama  musi
                      by  czasami  cofnita  do wlaciwej pozycji. Dzieje si to,
                      gdy urzdzenie jest zamykane i wykorzystywane jest w  tym
                      celu  polecenie  SCSI  cofania  o  zadan  ilo  rekordow.
                      Niektore starsze napdy nie potrafi wykona tego polecenia
                      w  sposob  pewny  i opcja ta sluy to zabronienia napdowi
                      uywania tych polece. Kocowym efektem jest  nieprawidlowe
                      pozycjonowanie tamy po zamkniciu urzdzenia przy wlczonym
                      odczycie wyprzedzajcym w trybie o stalej dlugoci bloku.
               MT_ST_NO_BLKLIMS  (Domylnie: wylczona)
                      Niektore napdy nie obsluguj polecenia SCSI  "READ  BLOCK
                      LIMITS".  Jeli  opcja ta jest wlczona, steronik nie uywa
                      tego  polecenia.  Wad  jest  niemono  sprawdzenia  przez
                      sterownik  przed  wyslaniem  polecenia, czy zadana dlugo
                      bloku jest akceptowana przez napd.
               MT_ST_CAN_PARTITIONS  (Domylnie: wylczona)
                      Opcja ta wlcza  obslug  kilku  stref  na  jednej  tamie.
                      Dotyczy ona wszystkich urzdze skojarzonych z napdem.
               MT_ST_SCSI2LOGICAL  (Domylnie: wylczona)
                      Ta  opcja poleca sterownikowi uywanie logicznych adresow
                      blokow  zdefiniowanych  w  standardzie  SCSI-2  podzczas
                      wykonywania  operacji  wyszukiwania  (seek)  oraz "tell"
                      (dla polece MTSEEK i MTIOCPOS oraz przy  zmianie  strefy
                      tamy).   W  przeciwnym razie uywane s adresy specyficzne
                      dla urzdzenia. Wlczenie tej opcji jest wysoce  zalecane,
                      jeli  napd  obsluguje  adresy  logiczne, gdy zliczaj one
                      rownie  znaczniki  plikow.   Niektore   napdy   obsluguj
                      wylcznie logiczne adresy blokow.
               MT_ST_SYSV  (Domylnie: wylczona)
                      Gdy  ta  opcja  jest  wlczona,  urzdzenia  tamowe  uywaj
                      semantyki Systemu V.  W  przeciwnym  razie  uywana  jest
                      semantyka   BSD.   Najwaniejsza   ronica   pomidzy  tymi
                      semantykami polega na tym, co si dzieje,  gdy  urzdzenie
                      uywane  do odczytu jest zamykanie: w semantyce SYSV tama
                      jest przewijana do przodu poza najbliszy znacznik pliku,
                      jeli  nie  stalo si to wczeniej. W semantyce BSD pozycja
                      tamy nie ulega zmianie.
               PRZYKLAD
                      struct mtop mt_cmd;
                      mt_cmd.mt_op = MTSETDRVBUFFER;
                      mt_cmd.mt_count = MT_ST_BOOLEANS |
                                 MT_ST_BUFFER_WRITES |
                                 MT_ST_ASYNC_WRITES;
                      ioctl(fd, MTIOCTOP, &mt_cmd);

               Domylny rozmiar bloku dla  urzdzenia  mona  ustawi  przy  uyciu
               MT_ST_DEF_BLKSIZE,  a domylny kod gstoci mona ustawi przy uyciu
               MT_ST_DEFDENSITY. Wartoci tych parametrow powinny by dodane  za
               pomoc bitowego OR do kodu operacji.

               Przy    kernelu    2.1.x    i    poniejszych,   wartoci   czasu
               przeterminowania (timeout) mona ustawi przy uyciu  podpolecenia
               MT_ST_SET_TIMEOUT  dodanego  za  pomoc  bitowego  OR  do  czasu
               przeterminowania w  sekundach.  Dlugie  czasy  przeterminowania
               (wykorzystywane   przy  poleceniach  przewijania  i  niektorych
               innych   trwajcych    dlugo)    mona    ustawi    przy    uyciu
               MT_ST_SET_LONG_TIMEOUT.  Domylne  wartoci jdra s bardzo dlugie,
               aby  zapewni   nie   przeterminowanie   pomylnie   wykonywanego
               polecenia  przez  aden  napd. Z tego powodu niniejszy sterownik
               moe sprawia wraenie zawieszonego, newet gdy jedynie czaka on na
               przeterminowanie  operacji. Polecenia te mog sluy do ustawienia
               bardziej praktycznych wartoci  dla  konkretnego  napdu.   Czasy
               przeterminowania   ustawione   dla   jednego  urzdzenia  dotycz
               wszystkich urzdze skojarzonych z tym samym napdem.

   MTIOCGET - Odczytanie stanu
       To polecenie wykorzystuje argument typu (struct mtget *).

       /* struktura dla MTIOCGET - odczytanie stanu tamy magn. */
       struct mtget {
           long   mt_type;
           long   mt_resid;
           /* Kolejne rejestry s specyficzne dla urzdzenia */
           long   mt_dsreg;
           long   mt_gstat;
           long   mt_erreg;
           /* Kolejne dwa pole nie zawsze s uywane */
           daddr_t          mt_fileno;
           daddr_t          mt_blkno;
       };

       mt_type    Plik naglowkowy definiuje wiele  moliwych  wartoci  mt_type,
                  lecz  aktualny  sterownik  raportuje jedynie typy podstawowe
                  MT_ISSCSI1  (Generic  SCSI-1  tape)  i  MT_ISSCSI2  (Generic
                  SCSI-2 tape).
       mt_resid   zawiera numer strefy biecej tamy.
       mt_dsreg   raportuje   aktualne   ustawienia   dlugoci   bloku  dla  (w
                  najniszych 24 bitach) oraz gstoci  zapisu  (w  8  najwyszych
                  bitach).   Te pola s zdefiniowane przez MT_ST_BLKSIZE_SHIFT,
                  MT_ST_BLKSIZE_MASK,          MT_ST_DENSITY_SHIFT           i
                  MT_ST_DENSITY_MASK.
       mt_gstat   raprotuje  podstawowe  (niezalene od urzdzenia) informacje o
                  atanie.  Plik naglowkowy zawiera definicje makrodefinicji do
                  testowania przekazywanych bitow stanu:
                  GMT_EOF(x):  Tama  zostala ustawiona tu za znacznikiem pliku
                      (zawsze nieprawdziwe po poleceniu MTSEEK).
                  GMT_BOT(x): Tama zostala  ustawiona  na  pocztku  pierwszego
                      pliku (zawsze nieprawdziwe po poleceniu MTSEEK).
                  GMT_EOT(x):   Wykonanie   polecenia   spowodowalo  osignicie
                      fizycznego koca nonika.
                  GMT_SM(x):  Tama  jest  aktualnie  ustawiona  na   znaczniku
                      (setmark).  (zawsze nieprawdziwe po poleceniu MTSEEK).
                  GMT_EOD(x): Tama jest ustawiona na kocu zapisanych danych.
                  GMT_WR_PROT(x):   Napd  jest  chroniony  przed  zapisem.   W
                      przypadku niektorych urzdze moe  to  rownie  oznacza,  e
                      napd nie obsluguje zapisu na noniku tego typu, co biecy.
                  GMT_ONLINE(x):  Ostatnie  wykonanie  funkcji  open() zastalo
                      napd gotowy do dzialania  z  odpowiednio  umiejscowionym
                      nonikiem.
                  GMT_D_6250(x),  GMT_D_1600(x), GMT_D_800(x): Ta "podstawowa"
                      informacja o stanie urzdzenia zawiera rownie  ustawienia
                      gstoci zapisu, lecz jedynie dla 9-ciekowych 1/2" urzdze.
                  GMT_DR_OPEN(x): Brak tamy w napdzie.
                  GMT_IM_REP_EN(x):  Tryb  natychmiastowego  raportowania.  To
                      pole bitowe jest ustawiane na 1, gdy nie ma gwarancji, e
                      dane  zostaly  fizycznie  zapisane  na  tamie  do chwili
                      zakoczenia funkcji zapisu. Natomiast jest  ustawiane  na
                      zero  tylko  wtedy,  gdy sterownik nie buforuje danych i
                      napd zostal ustawiony na ich niebuforowanie.
       mt_erreg   Jedyne  pole  zdefiniowane  w  mt_erreg  jest   to   licznik
                  naprawionych  bldow,  ktory znajduje sie w 16 niskich bitach
                  (jak   to   zdefiniowano   przez    MT_ST_SOFTERR_SHIFT    i
                  MT_ST_SOFTERR_MASK).    Z   powodu  niezgodnoci  w  sposobie
                  zglaszania naprawionych bldow przez napdy, licznik ten czsto
                  nie  jest  obslugiwany  (wikszo  napdow domylnie nie zglasza
                  naprawionych bldow, ale mona to zmieni poleceniem SCSI "MODE
                  SELECT").
       mt_fileno  raportuje aktualny numer pliku (liczc od zera).  W przypadku
                  gdy nie jest znany numer pliku (np. po  MTBSS  lub  MTSEEK),
                  przekazywana jest warto -1.
       mt_blkno   raportuje  numer  bloku  (liczc  od zera) wewntrz aktualnego
                  pliku.  Gdy numer bloku nie jest znany  (np  po  poleceniach
                  MTBSF, MTBSS lub MTSEEK), przekazywana jest warto -1.

   MTIOCPOS - Odczytanie po/loenia tamy
       To  polecenie uywa argumentu typu (struct mtpos *) i raportuje aktualny
       numer bloku tamy (w sensie, w jakim  go  rozumie  napd),  co  nie  jest
       rownowane mt_blkno przekazywanemu przez MTIOCGET.  Musi to by urzdzenie
       SCSI-2, ktore obsluguje polecenie READ POSITION (adres specyficzny  dla
       urzdzenia)  lub  urzdzenie  SCSI-1 zgodne z Tandberg (Tandberg, Archive
       Viper, Wangtek, ... ).

       /* struktura dla MTIOCPOS - odczytanie poloenia tamy magn. */
       struct     mtpos {
           long   mt_blkno; /* aktualny numer bloku */
       };

WARTO ZWRACANA

       EIO           Wydane polecenie nie moe zosta zrealizowane.

       ENOSPC        Operacja zapisu nie  moe  zosta  zakoczona  poniewa  tama
                     osignla koniec nonika.

       EACCES        Nastpila  proba  zapisu  lub  skasowania  tamy chronionej
                     przed zapisem.   (Ten  bld  nie  jest  wykrywany  podczas
                     wykonywania funkcji open().)

       EFAULT        Parametry poleenia wskazuj na obszar pamici nie nalecy do
                     procesu wywolujcego funkcj.

       ENXIO         Podczas otwierania, takie urzdzenie nie istnieje.

       EBUSY         Urzdzenie jest aktualnie w  uyciu  lub  sterownikowi  nie
                     udalo si przydzieli pamici dla bufora.

       EOVERFLOW     Nastpila  proba  odczytania  lub  zapisu bloku o zmiennej
                     dlugoci, ktory jest wikszy ni wewntrzny bufor sterownika.

       EINVAL        Funkcja  ioctl()  posiadala  niedozwolony  argument   lub
                     podano niedozwolony rozmiar bloku.

       ENOSYS        Nieznana funkcja ioctl().

       EROFS         Wystpila  proba  otwarcia  z  opcj  O_WRONLY  lub O_RDWR,
                     podczas gdy tama znajduje si w napdzie  chronionym  przed
                     zapisem.

PLIKI

       /dev/st*  : automatycznie przewijajce urzdzenia tam SCSI
       /dev/nst* : nieprzewijajce urzdzenia tam SCSI

AUTOR

       Sterownik zostal napisany przez Kai'ego Makisar <Kai.Makisara@metla.fi>
       na podstawie  sterownika  napisanego  przez  Dwayne'a  Forsytha.  Kilka
       innych osob rownie wnioslo wklad podczas tworzenia sterownika.

ZOBACZ TAKE

       mt(1)

       Plik  README.st w rodlach jdra zawierajcy najwiesze informacje dotyczce
       sterownika i jego moliwoci konfiguracyjnych.

UWAGI

       1. Podczas wymiany danych pomidzy systemami, oba systemy  musz  uzgodni
       dlugo  fizycznego  bloku  na  tamie. Parametry napdu po starcie systemu
       czsto roni si od uywanych dla danego urzdzenia  przez  wikszo  systemow
       operacyjnych.  Wiekszo systemow uywa napdow w trybie o zmiennej dlugoci
       bloku, o ile napd ten tryb obsluguje. Dotyczy to wikszoci wspolczesnych
       napdow, wlczajc w to napdy DAT, 8 mm napdy wybierania spiralnego, napdy
       DLT itp. Mona doradzi uywanie tych napdow w trybie o  zmiennej  dlugoci
       bloku  rownie  w  Linuksie  (tzn.  uycie  MTSETBLK lub MTSETDEFBLK przy
       starcie systemu w celu ustawienia  tego  trybu),  przynajmniej  podczas
       wymiany  danych  z  obcym  systemem.  Wad  tego jest konieczno uycia do
       dlugiego bloku na tamie, aby otrzyma ackceptowalna wydajno transferu na
       magistrali SCSI.

       2. Wiele programow (np. tar) pozwala uytkownikowi na okrelenie czynnika
       okrelajcego rozmiar bloku w linii polece. Naley  zauway,  e  okrela  to
       dlugo  fizycznego  bloku  na  tamie jedynie w trybie o zmiennej dlugoci
       bloku.

       3. Aby mona bylo uywa napdow tam SCSI, musz by  wkompilowane  w  kernel
       lub  zaladowane  jako  moduly:  podstawowy  sterownik  SCSI,  sterownik
       kontrolera SCSI oraz sterownik tam SCSI. Jeli  nie  ma  sterownika  tam
       SCSI,  nepd zostanie rozpoznany, ale opisana na tej stronie obsluga tam
       nie bdzie dostpna.

       4. Sterownik zapisuje komunikaty o bldach na konsoli / do  logow.  Kody
       SENSE  zapisane w niektorych komunikatach s automatycznie tlumaczone na
       tekst, o ile w konfiguracji jdra wlczono rozwlekle komuniakaty SCSI.

COPYRIGHT

       Copyright (C) 1995 Robert K. Nichols.
       Copyright (C) 1999 Kai Makisara.

       Udziela si pozwolenia na dystrybucj doslownych kopii tej  dokumentacji,
       pod   warunkiem,  e  kada  kopia  bdzie  zawiera  informacj  o  prawach
       autorskich oraz t uwag. Dodatkowe pozwolenia mona znale  w  naglowku  w
       pliku rodlowym.

INFORMACJE O T/LUMACZENIU

       Powysze  tlumaczenie  pochodzi z nieistniejcego ju Projektu Tlumaczenia
       Manuali i moe nie by aktualne. W razie zauwaenia ronic  midzy  powyszym
       opisem  a  rzeczywistym  zachowaniem  opisywanego programu lub funkcji,
       prosimy o zapoznanie si z oryginaln (angielsk) wersj strony podrcznika.