The st driver provides the interface to a variety of SCSI
tape devices. Currently, the driver takes control of all detected devices of
type “sequential-access”. The st driver uses major
device number 9.
Each device uses eight minor device numbers. The lowermost five
bits in the minor numbers are assigned sequentially in the order of
detection. In the 2.6 kernel, the bits above the eight lowermost bits are
concatenated to the five lowermost bits to form the tape number. The minor
numbers can be grouped into two sets of four numbers: the principal
(auto-rewind) minor device numbers, n, and the
“no-rewind” device numbers, (n + 128). Devices opened
using the principal device number will be sent a REWIND command when
they are closed. Devices opened using the “no-rewind” device
number will not. (Note that using an auto-rewind device for positioning the
tape with, for instance, mt does not lead to the desired result: the tape is
rewound after the mt command and the next command starts from the beginning
of the tape).
Au sein de chaque groupe, quatre numéros mineurs
sont disponibles pour définir des périphériques avec
des caractéristiques différentes (taille de bloc, compression,
densité, etc.). Lorsque le système démarre, seul le
premier périphérique est disponible. Les trois autres
sont activés lorsque les caractéristiques par défaut
sont définies (voir plus bas). En modifiant les constantes à
la compilation, on peut modifier la répartition entre le nombre
maximal de lecteurs de bandes et le nombre de numéros mineurs par
lecteur. Les allocations par défaut permettent de contrôler
32 lecteurs de bandes. Par exemple, il est possible de
contrôler jusqu'à 64 lecteurs avec deux numéros
mineurs pour des options différentes.
Les fichiers spéciaux sont créés typiquement
ainsi :
mknod -m 660 /dev/st0 c 9 0
mknod -m 660 /dev/st0l c 9 32
mknod -m 660 /dev/st0m c 9 64
mknod -m 660 /dev/st0a c 9 96
mknod -m 660 /dev/nst0 c 9 128
mknod -m 660 /dev/nst0l c 9 160
mknod -m 660 /dev/nst0m c 9 192
mknod -m 660 /dev/nst0a c 9 224
Il n'existe pas de périphériques blocs
correspondants.
The driver uses an internal buffer that has to be large enough to
hold at least one tape block. Before Linux 2.1.121, the buffer is allocated
as one contiguous block. This limits the block size to the largest
contiguous block of memory the kernel allocator can provide. The limit is
currently 128 kB for 32-bit architectures and 256 kB for
64-bit architectures. In newer kernels the driver allocates the buffer in
several parts if necessary. By default, the maximum number of parts is 16.
This means that the maximum block size is very large (2 MB if
allocation of 16 blocks of 128 kB succeeds).
The driver's internal buffer size is determined by a compile-time
constant which can be overridden with a kernel startup option. In addition
to this, the driver tries to allocate a larger temporary buffer at run time
if necessary. However, run-time allocation of large contiguous blocks of
memory may fail and it is advisable not to rely too much on dynamic buffer
allocation before Linux 2.1.121 (this applies also to demand-loading the
driver with kerneld or kmod).
Le pilote ne gère pas spécifiquement un type ou une
marque de lecteur de bandes. Après le démarrage du
système, les options du périphérique sont
définies par le microcode du périphérique. Par exemple,
si celui-ci réclame un mode de blocs fixes, le lecteur de bandes
utilisera ce mode. Les options peuvent être modifiées par des
appels ioctl(2) explicites et restent effectives lorsque le
périphérique est fermé puis réouvert. La
configuration des options affecte aussi bien les périphériques
avec rembobinage automatique que ceux sans.
Des options différentes peuvent être fournies pour
différents périphériques au sein du sous-groupe de
quatre. Les options prennent effet à l'ouverture du
périphérique. Par exemple, l'administrateur peut
définir un périphérique qui écrit des blocs
fixes d'une certaine taille, et un qui écrit avec des blocs de
longueur variable (si le périphérique accepte les deux
modes).
Le pilote gère les partitions de bandes si elles
sont acceptées par le lecteur. (Notez que les partitions de bande
n'ont rien à voir avec les partitions de disques. Une bande
partitionnée peut être vue comme un ensemble de bandes
logiques dans le même support). La gestion des partitions doit
être activé par un ioctl(2). L'emplacement de la bande
est sauvegardé au sein de chaque partition au cours des changements
de partitions. La partition utilisée pour les opérations
ultérieures est sélectionnée avec un ioctl(2).
Le changement de partition est effectué au moment de la suivante
opération bande afin d'éviter les mouvements inutiles de la
bande. Le nombre maximal de partitions sur une bande est défini par
une constante à la compilation (4 par défaut). Le pilote
contient un ioctl(2) qui peut formater une bande avec une ou deux
partitions.
Le fichier spécial de périphérique
/dev/tape est généralement un lien symbolique ou un
lien matériel vers le lecteur de bandes par défaut.
Starting from Linux 2.6.2, the driver exports in the sysfs
directory /sys/class/scsi_tape the attached devices and some
parameters assigned to the devices.
Le pilote accepte un fonctionnement aussi bien dans un mode de
blocs fixes que dans un mode de blocs de longueur variable (si c'est
accepté par le lecteur). En mode de blocs fixes, le
périphérique écrit les blocs de la taille
indiquée et la taille des blocs ne dépend pas de la
quantité de données transmises lors de l'appel système.
Dans le mode de longueur variable, un bloc de données est
écrit à chaque appel système write et le nombre
d'octets transmis indique la taille du bloc correspondant sur la bande.
Notez que les blocs de la bande ne contiennent aucune information sur le
mode d'écriture utilisé : la seule chose importante est
d'utiliser lors de la lecture une commande qui accepte la taille des blocs
de la bande.
En mode bloc de taille variable, le nombre d'octets à lire
n'a pas besoin de correspondre exactement à la taille du bloc de la
bande. Si le nombre d'octets demandés est plus grand que la taille du
bloc suivant sur la bande, le pilote renvoie la quantité de
données effectivement lues. Si la taille de bloc est plus grande que
le nombre d'octets demandés, une erreur est renvoyée.
In fixed-block mode the read byte counts can be arbitrary if
buffering is enabled, or a multiple of the tape block size if buffering is
disabled. Before Linux 2.1.121 allow writes with arbitrary byte count if
buffering is enabled. In all other cases (before Linux 2.1.121 with
buffering disabled or newer kernel) the write byte count must be a multiple
of the tape block size.
In Linux 2.6, the driver tries to use direct transfers between the
user buffer and the device. If this is not possible, the driver's internal
buffer is used. The reasons for not using direct transfers include improper
alignment of the user buffer (default is 512 bytes but this can be changed
by the HBA driver), one or more pages of the user buffer not reachable by
the SCSI adapter, and so on.
Une marque « filemark » est
automatiquement écrite sur la bande si la dernière
opération avant fermeture était une écriture.
En lecture, une marque « filemark »
provoque les événements suivants : s'il reste des
données dans le tampon lorsqu'on trouve la marque, les données
en mémoire sont renvoyées ; la lecture suivante renvoie
zéro octet ; la lecture suivante renvoie les données du
fichier suivant ; la fin des données enregistrées est
signalée par un retour de zéro octet pour deux appels
successifs en lecture. Enfin, le troisième appel renvoie une
erreur.
Le pilote gère trois requêtes ioctl(2). Les
requêtes non reconnues par st sont transmises au
contrôleur SCSI. Les définitions ci-dessous sont
extraites de /usr/include/linux/mtio.h :
Cette requête prend un paramètre de type (struct
mtop *). Certains contrôleurs ne gèrent pas toutes
les opérations. Le pilote renvoie une erreur EIO si le
périphérique n'accepte pas l'opération.
/* Structure MTIOCTOP - pour les opérations sur bande : */
struct mtop {
short mt_op; /* opérations définies ci-dessous */
int mt_count; /* nombre d'opérations */
};
Opérations sur bande magnétique lors d'une
utilisation normale :
- MTBSF
- Reculer la bande de mt_count marqueurs de fichier.
- MTBSFM
- Reculer la bande de mt_count filemarks. Repositionner la bande sur
le côté EOT de la dernière marque de fichier.
- MTBSR
- Reculer la bande de mt_count enregistrements (blocs bande).
- MTBSS
- Reculer la bande de mt_count marques d'ensemble de fichiers.
- MTCOMPRESSION
- Valider la compression des données sur bande dans le lecteur si
mt_count est non nul, désactiver la compression si
mt_count est nul. Cette commande utilise la page MODE 15
supportée par la plupart des DAT.
- MTEOM
- Aller à la fin des enregistrements (ajouter des fichiers).
- MTERASE
- Erase tape. With Linux 2.6, short erase (mark tape empty) is performed if
the argument is zero. Otherwise, long erase (erase all) is done.
- MTFSF
- Avancer la bande de mt_count marques de fichier.
- MTFSFM
- Avancer la bande de mt_count filemarks. Positionner la bande du
côté BOT de la dernière marque de fichier.
- MTFSR
- Avancer de mt_count enregistrements (blocs bande).
- MTFSS
- Avancer de mt_count marques d'ensemble de fichiers.
- MTLOAD
- Exécuter la commande de chargement SCSI. Un cas particulier est
prévu pour certains chargeurs automatiques HP. Si mt_count
correspond à la somme de la constante MT_ST_HPLOADER_OFFSET
et d'un nombre, ce dernier est envoyé au pilote pour
contrôler le chargeur automatique.
- MTLOCK
- Verrouiller la porte du lecteur de bande.
- MTMKPART
- Format the tape into one or two partitions. If mt_count is
positive, it gives the size of partition 1 and partition 0 contains the
rest of the tape. If mt_count is zero, the tape is formatted into
one partition. From Linux 4.6, a negative mt_count specifies the
size of partition 0 and the rest of the tape contains partition 1. The
physical ordering of partitions depends on the drive. This command is not
allowed for a drive unless the partition support is enabled for the drive
(see MT_ST_CAN_PARTITIONS below).
- MTNOP
- No op—flushes the driver's buffer as a side effect. Should be used
before reading status with MTIOCGET.
- MTOFFL
- Rembobiner la bande et éteindre le lecteur.
- MTRESET
- Réinitialiser le lecteur.
- MTRETEN
- Retendre la bande.
- MTREW
- Rembobiner la bande.
- MTSEEK
- Rechercher sur la bande le bloc numéro mt_count. Cette
opération nécessite soit un contrôleur SCSI-2 qui
prend en charge la commande LOCATE (adresse spécifique au
périphérique), soit un lecteur SCSI-1 compatible Tandberg
(Tandberg, Archive Viper, Wangtek, ... ). Le numéro
de bloc devrait toujours être un numéro renvoyé
précédemment par MTIOCPOS si les adresses
spécifiques au lecteur sont utilisées.
- MTSETBLK
- Définir la longueur de blocs du lecteur à la valeur
spécifiée dans mt_count. Une longueur de bloc nulle
place le lecteur dans le mode de blocs de tailles variables.
- MTSETDENSITY
- Définir la densité de la bande à celle codée
dans mt_count. Les codes des densités acceptées par
un lecteur sont disponibles dans la documentation de celui-ci.
- MTSETPART
- La partition active devient celle indiquée par mt_count. Les
partitions sont numérotées depuis zéro. Cette
commande n'est autorisée que si la gestion du partitionnement est
activée pour le lecteur (voir MT_ST_CAN_PARTITIONS plus
bas).
- MTUNLOAD
- Exécuter la commande de déchargement SCSI (n'éjecte
pas la bande).
- MTUNLOCK
- Déverrouiller la porte du lecteur de bande.
- MTWEOF
- Écrire mt_count marques de fichiers.
- MTWSM
- Écrire mt_count marques d'ensemble de fichiers.
Fonctions de configuration du lecteur de bande magnétique
(pour le superutilisateur) :
- MTSETDRVBUFFER
- Set various drive and driver options according to bits encoded in
mt_count. These consist of the drive's buffering mode, a set of
Boolean driver options, the buffer write threshold, defaults for the block
size and density, and timeouts (only since Linux 2.1). A single operation
can affect only one item in the list below (the Booleans counted as one
item.)
- Une valeur ayant ses 4 bits de poids fort à 0 sera
utilisée pour indiquer le type de tampon du lecteur. Les types de
tampon sont :
- 0
- Le contrôleur ne renverra pas l'état BON en
écriture avant que les données ne soient réellement
écrites sur le support.
- 1
- Le contrôleur peut renvoyer l'état BON en
écriture dès que les données ont été
transmises aux tampons internes du lecteur de bande.
- 2
- Le contrôleur peut renvoyer l'état BON en
écriture dès que les données ont été
transmises aux tampons internes du lecteur de bande, si toutes les
écritures précédentes des tampons sur le support se
sont déroulées correctement.
- Pour contrôler le seuil d'écriture, on doit inclure dans
mt_count la constante MT_ST_WRITE_THRESHOLD associée
avec le nombre de blocs dans les 28 bits de poids faible par un
OU binaire « | ». Le nombre de blocs
concerne des blocs de 1024 octets, et non pas la taille physique
des blocs sur la bande. Le seuil ne peut pas excéder la taille des
tampons internes du contrôleur (voir DESCRIPTION, plus bas).
- Pour valider ou invalider les options booléennes, la valeur
mt_count doit inclure l'une des constantes MT_ST_BOOLEANS,
MT_ST_SETBOOLEANS, MT_ST_CLEARBOOLEANS ou
MT_ST_DEFBOOLEANS associées par un OU binaire avec
une combinaison des options décrites ci-dessous. Avec
MT_ST_BOOLEANS les options sont définies avec les valeurs
indiquées. Avec MT_ST_SETBOOLEANS les options sont
activées sélectivement et inhibées avec
MT_ST_DEFBOOLEANS.
- Les options par défaut pour un contrôleur de bande sont
choisies avec MT_ST_DEFBOOLEANS. Un périphérique non
actif (par exemple avec un numéro mineur de
32 ou 160) est activé lorsque les options par
défaut sont définies pour la première fois. Un
périphérique actif hérite des options non
définies explicitement du périphérique actif au
démarrage.
- Les options booléennes sont :
- MT_ST_BUFFER_WRITES
(Défaut : vrai)
- Les opérations d'écriture en mode de bloc fixes sont mises
en cache. Si cette option est invalidée, et si l'enregistreur
utilise une longueur de bloc fixe, toutes les opérations
d'écriture doivent se faire avec une longueur multiple de celle du
bloc. Cette option doit être fausse pour créer des archives
multivolumes fiables.
- MT_ST_ASYNC_WRITES
(Défaut : vrai)
- Quand cette option est validée, les opérations
d'écriture renvoient immédiatement si les données
tiennent dans le tampon du pilote, sans attendre que celles-ci soient
effectivement transmises au lecteur de bande. Le seuil du tampon
d'écriture détermine le taux de remplissage du tampon avant
d'effectuer une commande SCSI. Toute erreur renvoyée par le
périphérique sera conservée jusqu'à
l'opération suivante. Cette option doit être fausse pour
créer des archives multivolumes fiables.
- MT_ST_READ_AHEAD
(Défaut : vrai)
- Cette option indique au pilote de fournir un cache en lecture, ainsi
qu'une lecture anticipée des données en mode de blocs fixes.
Si cette option est invalidée, et que le lecteur utilise une taille
de blocs fixes, toutes les opérations de lecture doivent se faire
avec une taille multiple de celle du bloc.
- MT_ST_TWO_FM
(Défaut : faux)
- Cette option modifie le comportement du pilote quand un fichier est
fermé. L'attitude normale consiste à écrire une seule
filemark, néanmoins si cette option est validée, le pilote
écrira deux filemarks et replacera la tête au-dessus de la
seconde.
- Note : cette option ne doit pas être utilisée avec
les lecteurs de bandes QIC, car ils ne sont pas capables d'écraser
une filemark. Ces lecteurs détectent la fin des données
enregistrées en cherchant de la bande vierge à la place des
deux filemarks consécutives habituelles. La plupart des autres
lecteurs courants détectent également la présence de
bande vierge, aussi l'utilisation des deux filemarks n'est
généralement utile que lors d'échange de bandes avec
d'autres systèmes.
- MT_ST_DEBUGGING
(Défaut : faux)
- Cette option valide les divers messages de débogage du pilote (si
celui-ci a été compilé avec la constante DEBUG
ayant une valeur non nulle).
- MT_ST_FAST_EOM
(Défaut : faux)
- Cette option indique que les opérations MTEOM doivent
être envoyées directement au lecteur, ce qui peut
accélérer les opérations, mais aussi faire perdre au
pilote le compte des pistes du fichier en cours, normalement
renvoyé par la requête MTIOCGET. Si
MT_ST_FAST_EOM est fausse, le contrôleur répondra
à une requête MTEOM en sautant en avant de fichiers
en fichiers.
- MT_ST_AUTO_LOCK
(Défaut : faux)
- Lorsque cette option est vraie, la porte du lecteur est verrouillée
lorsque le périphérique est ouvert, et
déverrouillée lorsque le périphérique est
refermé.
- MT_ST_DEF_WRITES
(Défaut : faux)
- Les options de bande (taille de bloc, mode, compression...) peuvent varier
lorsque l'on passe d'un périphérique lié à un
lecteur à un autre périphérique correspondant au
même lecteur. Cette option définit si les changements sont
fournis au pilote en utilisant les commandes SCSI, et si les
capacités d'auto-détection du lecteur sont fiables. Si
l'option est fausse, le pilote envoie les commandes SCSI
immédiatement lorsque le périphérique change. Si
cette option est vraie, les commandes SCSI ne sont pas envoyées
avant une demande d'écriture. Dans ce cas, le microcode est
habilité à détecter la structure de la bande lors de
la lecture, et les commandes SCSI ne sont utilisées que pour
être sûrs que la bande est écrite correctement.
- MT_ST_CAN_BSR
(Défaut : faux)
- When read-ahead is used, the tape must sometimes be spaced backward to the
correct position when the device is closed and the SCSI command to space
backward over records is used for this purpose. Some older drives can't
process this command reliably and this option can be used to instruct the
driver not to use the command. The end result is that, with read-ahead and
fixed-block mode, the tape may not be correctly positioned within a file
when the device is closed. With Linux 2.6, the default is true for drives
supporting SCSI-3.
- MT_ST_NO_BLKLIMS
(Défaut : faux)
- Certains lecteurs n'acceptent pas la commande SCSI READ BLOCK
LIMITS de lecture des limites de blocs. Si l'on utilise cette option,
le pilote n'invoque pas cette commande. L'inconvénient est que le
pilote ne peut pas vérifier, avant d'envoyer des commandes, si la
taille de bloc choisie est acceptée par le lecteur.
- MT_ST_CAN_PARTITIONS
(Défaut : faux)
- Cette option active la prise en charge des partitions multiples sur une
bande. Cette option s'applique à tous les
périphériques liés au lecteur.
- MT_ST_SCSI2LOGICAL
(Défaut : faux)
- Cette option indique au pilote d'utiliser les adresses de blocs logiques
définies dans le standard SCSI-2, lors d'opérations de
positionnement et de lecture de la position (aussi bien lors des commandes
MTSEEK et MTIOCPOS que lors des changements de partitions).
Sinon, il utilise les adresses spécifiques au
périphérique. Il est très recommandé d'activer
cette option si le lecteur gère les adresses logiques car elles
contiennent également les filemarks. Il existe d'ailleurs quelques
lecteurs qui ne gèrent que les adresses logiques.
- MT_ST_SYSV
(Défaut : faux)
- Lorsque cette option est activée, les périphériques
de bande utilisent les sémantiques System V. Dans le cas
contraire, ils utilisent la sémantique BSD. La différence
principale est le comportement lors de la fermeture d'un
périphérique en lecture. Avec System V, la bande est
positionnée en avant à la suite de la filemark suivante, si
cela n'a pas déjà eu lieu lors de la lecture. Dans la
sémantique BSD, la position ne change pas.
- MT_NO_WAIT
(Défaut : faux)
- Active le mode immédiat (c.à.d. n'attend pas la fin de la
commande) pour certaines commandes comme le rembobinage.
Un exemple :
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);
La taille de bloc par défaut pour un
périphérique peut être configurée avec
MT_ST_DEF_BLKSIZE et le code de densité par défaut avec
MT_ST_DEFDENSITY. Les valeurs des paramètres sont
associées par un OU logique avec le code opératoire.
With Linux 2.1.x and later, the timeout values can be set with the
subcommand MT_ST_SET_TIMEOUT ORed with the timeout in seconds. The
long timeout (used for rewinds and other commands that may take a long time)
can be set with MT_ST_SET_LONG_TIMEOUT. The kernel defaults are very
long to make sure that a successful command is not timed out with any drive.
Because of this, the driver may seem stuck even if it is only waiting for
the timeout. These commands can be used to set more practical values for a
specific drive. The timeouts set for one device apply for all devices linked
to the same drive.
Starting from Linux 2.4.19 and Linux 2.5.43, the driver supports a
status bit which indicates whether the drive requests cleaning. The method
used by the drive to return cleaning information is set using the
MT_ST_SEL_CLN subcommand. If the value is zero, the cleaning bit is
always zero. If the value is one, the TapeAlert data defined in the SCSI-3
standard is used (not yet implemented). Values 2–17 are reserved. If
the lowest eight bits are >= 18, bits from the extended sense data are
used. The bits 9–16 specify a mask to select the bits to look at and
the bits 17–23 specify the bit pattern to look for. If the bit
pattern is zero, one or more bits under the mask indicate the cleaning
request. If the pattern is nonzero, the pattern must match the masked sense
data byte.
Cette requête prend un paramètre du type (struct
mtget *).
/* Structure pour MTIOCGET - État de la bande magnétique */
struct mtget {
long mt_type;
long mt_resid;
/* Les registres suivants dépendent du matériel */
long mt_dsreg;
long mt_gstat;
long mt_erreg;
/* Ces deux derniers champs sont parfois inutilisés */
daddr_t mt_fileno;
daddr_t mt_blkno;
};
- mt_type
- Le fichier d'en-tête définit plusieurs valeurs pour
mt_type, mais le pilote actuel renvoie uniquement les types
génériques MT_ISSCSI1 (lecteur SCSI-1
générique) et MT_ISSCSI2 (lecteur SCSI-2
générique).
- mt_resid
- Contient le numéro de partition en cours.
- mt_dsreg
- Renvoie la configuration actuelle de la longueur de bloc (dans les 24 bits
de poids faible) et la densité (dans les 8 bits de poids fort). Ces
champs sont définis par MT_ST_BLKSIZE_SHIFT,
MT_ST_BLKSIZE_MASK, MT_ST_DENSITY_SHIFT et
MT_ST_DENSITY_MASK.
- mt_gstat
- Renvoie des informations génériques d'état
(indépendantes du périphérique). Le fichier
d'en-tête définit les macros suivantes pour tester les bits
d'état :
- GMT_EOF(x)
- The tape is positioned just after a filemark (always false after an
MTSEEK operation).
- GMT_BOT(x)
- The tape is positioned at the beginning of the first file (always false
after an MTSEEK operation).
- GMT_EOT(x)
- A tape operation has reached the physical End Of Tape.
- GMT_SM(x)
- The tape is currently positioned at a setmark (always false after an
MTSEEK operation).
- GMT_EOD(x)
- The tape is positioned at the end of recorded data.
- GMT_WR_PROT(x)
- The drive is write-protected. For some drives this can also mean that the
drive does not support writing on the current medium type.
- GMT_ONLINE(x)
- The last open(2) found the drive with a tape in place and ready for
operation.
- GMT_D_6250(x)
- GMT_D_1600(x)
- GMT_D_800(x)
- This “generic” status information reports the current
density setting for 9-track ½" tape drives only.
- GMT_DR_OPEN(x)
- The drive does not have a tape in place.
- GMT_IM_REP_EN(x)
- Immediate report mode. This bit is set if there are no guarantees that the
data has been physically written to the tape when the write call returns.
It is set zero only when the driver does not buffer data and the drive is
set not to buffer data.
- GMT_CLN(x)
- The drive has requested cleaning. Implemented since Linux 2.4.19 and Linux
2.5.43.
- mt_erreg
- Le seul champ défini dans mt_erreg est le nombre d'erreurs
corrigées, dans les 16 bits de poids faible (comme
défini par les masques MT_ST_SOFTERR_SHIFT et
MT_ST_SOFTERR_MASK). À cause d'incompatibilités dans
les méthodes utilisées par les lecteurs pour rendre compte
des corrections d'erreur, cette valeur n'est pas toujours fournie (la
plupart des lecteurs ne renvoient pas, par défaut, les erreurs
transitoires, mais cela peut être modifié avec la commande
SCSI MODE SELECT).
- mt_fileno
- Renvoie le numéro du fichier en cours (commençant
à 0). La valeur est mise à -1 si le numéro du
fichier est inconnu (par exemple, après un MTBSS ou un
MTSEEK).
- mt_blkno
- Renvoie le numéro de bloc (commençant à 0)
à l'intérieur du fichier en cours. Cette valeur est mise
à -1 quand le numéro de bloc est inconnu (par exemple,
après un MTBSF, un MTBSS ou un MTSEEK).
Cette requête prend un paramètre du type (struct
mtpos *) et renvoie une valeur spécifique au lecteur,
correspondant au numéro de bloc en cours, et qui n'est pas la
même que mt_blkno renvoyée par MTIOCGET. Ce
lecteur doit être un modèle SCSI-2 qui gère la commande
READ POSITION ou un lecteur SCSI-1 compatible Tandberg (Tandberg,
Archive Viper, Wangtek, ...).
/* Structure pour MTIOCPOS - Commande pour obtenir la position */
struct mtpos {
long mt_blkno; /* numéro du bloc actuel */
};
La traduction française de cette page de manuel a
été créée par Christophe Blaess
<https://www.blaess.fr/christophe/>, Stéphan Rafin
<stephan.rafin@laposte.net>, Thierry Vignaud
<tvignaud@mandriva.com>, François Micaux, Alain Portal
<aportal@univ-montp2.fr>, Jean-Philippe Guérard
<fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh)
<jean-luc.coulon@wanadoo.fr>, Julien Cristau
<jcristau@debian.org>, Thomas Huriaux
<thomas.huriaux@gmail.com>, Nicolas François
<nicolas.francois@centraliens.net>, Florentin Duneau
<fduneau@gmail.com>, Simon Paillard
<simon.paillard@resel.enst-bretagne.fr>, Denis Barbier
<barbier@debian.org>, David Prévot <david@tilapin.org>,
Cédric Boutillier <cedric.boutillier@gmail.com>,
Frédéric Hantrais <fhantrais@gmail.com> et
Grégoire Scano <gregoire.scano@malloc.fr>
Cette traduction est une documentation libre ; veuillez
vous reporter à la
GNU General
Public License version 3 concernant les conditions de copie et de
distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page
de manuel, veuillez envoyer un message à
debian-l10n-french@lists.debian.org.