LP(4)              Manuel du programmeur Linux              LP(4)


NOM
       lp - Imprimantes parallèles.

SYNOPSIS
       #include <linux/lp.h>

CONFIGURATION
       lp[0-2]  sont des périphériques caractères pour les impri­
       mantes à liaison parallèle. Ils ont un numéro majeur 6  et
       un  numéro  mineur  0-2.   Le numéro mineur correspond aux
       ports d'imprimantes d'adresse de base  0x03bc,  0x0378  et
       0x0278.   Habituellement ils ont un mode d'accès 220 et un
       propriétaire root.lp.

       On peut utiliser les ports parallèles soit  en  scrutation
       (polling) soit en interruption. L'utilisation en interrup­
       tion est surtout recommandée avec un  haut  trafic  (ex  :
       imprimante laser). Pour les imprimantes matricielles clas­
       siques, la  scrutation  suffira.  Par  défaut  le  système
       utilise la scrutation.

DESCRIPTION
       Les appels systèmes ioctl(2) suivants sont supportés :

       int ioctl(int fd, LPTIME, int arg)
              fixe  la  durée pendant laquelle le driver s'endort
              avant de revérifier l'état  de  l'imprimante  après
              que  le buffer ait été rempli.  Avec une imprimante
              rapide on peut diminuer ce délai, avec  une  impri­
              mante  lente  on  peut  l'augmenter.   La durée est
              indiquée dans arg, en  centièmes  de  secondes.  La
              valeur  par  défaut est 2 (soit 0,02 seconde). Cela
              n'influe que sur le driver en scrutation.


       int ioctl(int fd, LPCHAR, int arg)
              indique le nombre  maximum  d'itérations  d'attente
              active  que  le driver en scrutation effectue alors
              qu'il  attend  que  l'imprimante  soit  prête.   Si
              l'impression   est   trop  lente,  augmenter  cette
              valeur, si le système ralentit trop,  la  diminuer.
              Le  nombre  est  indiqué  dans  arg,  la valeur par
              défaut est 1000. Cela n'influe que sur le diver  en
              scrutation.


       int ioctl(int fd, LPABORT, int arg)
              Si arg vaut 0, le driver réessaiera en cas d'erreur
              d'impression, sinon il abandonnera. La  valeur  par
              défaut est 0.


       int ioctl(int fd, LPABORTOPEN, int arg)
              Si arg vaut 0, open(2) sera annulé en cas d'erreur,



Linux                    18 Octobre 1996                        1





LP(4)              Manuel du programmeur Linux              LP(4)


              sinon l'erreur sera ignorée. Par  défaut  elle  est
              ignorée.


       int ioctl(int fd, LPCAREFUL, int arg)
              Si  arg  vaut 0, on bloquera l'écriture sur le port
              parallèle   au   cas   où   les   broches   erreur,
              plus-de-papier,   ou   imprimante-hors-ligne   sont
              validées. Sinon ces  signaux  seront  ignorés.  Par
              défaut ils sont ignorés.


       int ioctl(int fd, LPWAIT, int arg)
              Indique  le  nombre d'itérations d'attente active à
              effectuer avant d'activer la broche STROBE pour que
              l'imprimante accepte le caractère écrit, et le nom­
              bre d'itérations à  effectuer  avant  d'éteindre  à
              nouveau   la  broche  STROBE.   Les  spécifications
              indique que ce délai devrait être de 0,5 micro-sec­
              ondes,  mais  l'experience  a  montré  que le délai
              induit par le code  du  driver  est  suffisant.  La
              valeur  est  indiquée  dans  arg,  elle  vaut 0 par
              défaut. Ceci concerne  autant  le  gestionnaire  en
              interruption que celui en scrutation.


       int ioctl(int fd, LPSETIRQ, int arg)
              Cet  ioctl()  nécessite  des privilèges Super-User.
              Son argument est une  nouvelle  IRQ  pour  l'impri­
              mante.  Comme  effet  de  bords,  l'imprimante  est
              réinitialisée. Si arg vaut 0,  le  gestionnaire  en
              scrutation sera utilisé, ce qui est le comportement
              par défaut.


       int ioctl(int fd, LPGETIRQ, int *arg)
              Stocke la valeur actuelle d'IRQ dans arg.


       int ioctl(int fd, LPGETSTATUS, int *arg)
              Stocke le statut actuel du port dans arg.  Les bits
              ont les significations suivantes :

              LP_PBUSY     Entrée OCCUPÉE inversée, active à 1
              LP_PACK      Entrée ACQUITTEMENT, active à 0
              LP_POUTPA    Entrée PLUS-DE-PAPIER, active à 1
              LP_PSELECD   Entrée SELECT, active à 1
              LP_PERRORP   Entrée ERREUR, active à 0

              Référez  vous au manuel de votre imprimante pour la
              signification de ces signaux. Des  bits  non  docu­
              mentés  peuvent également être présents, suivant le
              type d'imprimante.




Linux                    18 Octobre 1996                        2





LP(4)              Manuel du programmeur Linux              LP(4)


       int ioctl(int fd, LPRESET)
              Réinitialise l'imprimante.  Pas d'argument.

FICHIERS
       /dev/lp*

AUTEURS
       Le driver d'imprimante a été écrit  à  l'origine  par  Jim
       Weigand  et  Linus  Torvalds.  Il fut ensuite amélioré par
       Michael K. Johnson.  Le code d'interruption  a  été  écrit
       par by Nigel Gamble.  Alan Cox l'a modularisé.  LPCAREFUL,
       LPABORT, LPGETSTATUS ont été ajoutés par Chris Metcalf.

VOIR AUSSI
       mknod(1), chown(1), chmod(1), tunelp(8), lpcntl(8)


TRADUCTION
       Christophe Blaess, 1997.






































Linux                    18 Octobre 1996                        3