Provided by:
manpages-pl_20060617-3_all 
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.