1 /* 1 /* 2 * Any part of this program may be used in doc 2 * Any part of this program may be used in documents licensed under 3 * the GNU Free Documentation License, Version 3 * the GNU Free Documentation License, Version 1.1 or any later version 4 * published by the Free Software Foundation. 4 * published by the Free Software Foundation. 5 */ 5 */ 6 6 7 #ifndef _UAPI_PARPORT_H_ 7 #ifndef _UAPI_PARPORT_H_ 8 #define _UAPI_PARPORT_H_ 8 #define _UAPI_PARPORT_H_ 9 9 10 /* Start off with user-visible constants */ 10 /* Start off with user-visible constants */ 11 11 12 /* Maximum of 16 ports per machine */ 12 /* Maximum of 16 ports per machine */ 13 #define PARPORT_MAX 16 13 #define PARPORT_MAX 16 14 14 15 /* Magic numbers */ 15 /* Magic numbers */ 16 #define PARPORT_IRQ_NONE -1 16 #define PARPORT_IRQ_NONE -1 17 #define PARPORT_DMA_NONE -1 17 #define PARPORT_DMA_NONE -1 18 #define PARPORT_IRQ_AUTO -2 18 #define PARPORT_IRQ_AUTO -2 19 #define PARPORT_DMA_AUTO -2 19 #define PARPORT_DMA_AUTO -2 20 #define PARPORT_DMA_NOFIFO -3 20 #define PARPORT_DMA_NOFIFO -3 21 #define PARPORT_DISABLE -2 21 #define PARPORT_DISABLE -2 22 #define PARPORT_IRQ_PROBEONLY -3 22 #define PARPORT_IRQ_PROBEONLY -3 23 #define PARPORT_IOHI_AUTO -1 23 #define PARPORT_IOHI_AUTO -1 24 24 25 #define PARPORT_CONTROL_STROBE 0x1 25 #define PARPORT_CONTROL_STROBE 0x1 26 #define PARPORT_CONTROL_AUTOFD 0x2 26 #define PARPORT_CONTROL_AUTOFD 0x2 27 #define PARPORT_CONTROL_INIT 0x4 27 #define PARPORT_CONTROL_INIT 0x4 28 #define PARPORT_CONTROL_SELECT 0x8 28 #define PARPORT_CONTROL_SELECT 0x8 29 29 30 #define PARPORT_STATUS_ERROR 0x8 30 #define PARPORT_STATUS_ERROR 0x8 31 #define PARPORT_STATUS_SELECT 0x10 31 #define PARPORT_STATUS_SELECT 0x10 32 #define PARPORT_STATUS_PAPEROUT 0x20 32 #define PARPORT_STATUS_PAPEROUT 0x20 33 #define PARPORT_STATUS_ACK 0x40 33 #define PARPORT_STATUS_ACK 0x40 34 #define PARPORT_STATUS_BUSY 0x80 34 #define PARPORT_STATUS_BUSY 0x80 35 35 36 /* Type classes for Plug-and-Play probe. */ 36 /* Type classes for Plug-and-Play probe. */ 37 typedef enum { 37 typedef enum { 38 PARPORT_CLASS_LEGACY = 0, /* Non 38 PARPORT_CLASS_LEGACY = 0, /* Non-IEEE1284 device */ 39 PARPORT_CLASS_PRINTER, 39 PARPORT_CLASS_PRINTER, 40 PARPORT_CLASS_MODEM, 40 PARPORT_CLASS_MODEM, 41 PARPORT_CLASS_NET, 41 PARPORT_CLASS_NET, 42 PARPORT_CLASS_HDC, /* Har 42 PARPORT_CLASS_HDC, /* Hard disk controller */ 43 PARPORT_CLASS_PCMCIA, 43 PARPORT_CLASS_PCMCIA, 44 PARPORT_CLASS_MEDIA, /* Mul 44 PARPORT_CLASS_MEDIA, /* Multimedia device */ 45 PARPORT_CLASS_FDC, /* Flo 45 PARPORT_CLASS_FDC, /* Floppy disk controller */ 46 PARPORT_CLASS_PORTS, 46 PARPORT_CLASS_PORTS, 47 PARPORT_CLASS_SCANNER, 47 PARPORT_CLASS_SCANNER, 48 PARPORT_CLASS_DIGCAM, 48 PARPORT_CLASS_DIGCAM, 49 PARPORT_CLASS_OTHER, /* Any 49 PARPORT_CLASS_OTHER, /* Anything else */ 50 PARPORT_CLASS_UNSPEC, /* No 50 PARPORT_CLASS_UNSPEC, /* No CLS field in ID */ 51 PARPORT_CLASS_SCSIADAPTER 51 PARPORT_CLASS_SCSIADAPTER 52 } parport_device_class; 52 } parport_device_class; 53 53 54 /* The "modes" entry in parport is a bit field 54 /* The "modes" entry in parport is a bit field representing the 55 capabilities of the hardware. */ 55 capabilities of the hardware. */ 56 #define PARPORT_MODE_PCSPP (1<<0) /* IBM 56 #define PARPORT_MODE_PCSPP (1<<0) /* IBM PC registers available. */ 57 #define PARPORT_MODE_TRISTATE (1<<1) /* Can 57 #define PARPORT_MODE_TRISTATE (1<<1) /* Can tristate. */ 58 #define PARPORT_MODE_EPP (1<<2) /* Hard 58 #define PARPORT_MODE_EPP (1<<2) /* Hardware EPP. */ 59 #define PARPORT_MODE_ECP (1<<3) /* Hard 59 #define PARPORT_MODE_ECP (1<<3) /* Hardware ECP. */ 60 #define PARPORT_MODE_COMPAT (1<<4) /* Hard 60 #define PARPORT_MODE_COMPAT (1<<4) /* Hardware 'printer protocol'. */ 61 #define PARPORT_MODE_DMA (1<<5) /* Hard 61 #define PARPORT_MODE_DMA (1<<5) /* Hardware can DMA. */ 62 #define PARPORT_MODE_SAFEININT (1<<6) /* SPP 62 #define PARPORT_MODE_SAFEININT (1<<6) /* SPP registers accessible in IRQ. */ 63 63 64 /* IEEE1284 modes: 64 /* IEEE1284 modes: 65 Nibble mode, byte mode, ECP, ECPRLE and EPP 65 Nibble mode, byte mode, ECP, ECPRLE and EPP are their own 66 'extensibility request' values. Others are 66 'extensibility request' values. Others are special. 67 'Real' ECP modes must have the IEEE1284_MOD 67 'Real' ECP modes must have the IEEE1284_MODE_ECP bit set. */ 68 #define IEEE1284_MODE_NIBBLE 0 68 #define IEEE1284_MODE_NIBBLE 0 69 #define IEEE1284_MODE_BYTE (1<<0) 69 #define IEEE1284_MODE_BYTE (1<<0) 70 #define IEEE1284_MODE_COMPAT (1<<8) 70 #define IEEE1284_MODE_COMPAT (1<<8) 71 #define IEEE1284_MODE_BECP (1<<9) 71 #define IEEE1284_MODE_BECP (1<<9) /* Bounded ECP mode */ 72 #define IEEE1284_MODE_ECP (1<<4) 72 #define IEEE1284_MODE_ECP (1<<4) 73 #define IEEE1284_MODE_ECPRLE (IEEE1 73 #define IEEE1284_MODE_ECPRLE (IEEE1284_MODE_ECP | (1<<5)) 74 #define IEEE1284_MODE_ECPSWE (1<<10 74 #define IEEE1284_MODE_ECPSWE (1<<10) /* Software-emulated */ 75 #define IEEE1284_MODE_EPP (1<<6) 75 #define IEEE1284_MODE_EPP (1<<6) 76 #define IEEE1284_MODE_EPPSL (1<<11 76 #define IEEE1284_MODE_EPPSL (1<<11) /* EPP 1.7 */ 77 #define IEEE1284_MODE_EPPSWE (1<<12 77 #define IEEE1284_MODE_EPPSWE (1<<12) /* Software-emulated */ 78 #define IEEE1284_DEVICEID (1<<2) 78 #define IEEE1284_DEVICEID (1<<2) /* This is a flag */ 79 #define IEEE1284_EXT_LINK (1<<14 79 #define IEEE1284_EXT_LINK (1<<14) /* This flag causes the 80 80 * extensibility link to 81 81 * be requested, using 82 82 * bits 0-6. */ 83 83 84 /* For the benefit of parport_read/write, you 84 /* For the benefit of parport_read/write, you can use these with 85 * parport_negotiate to use address operations 85 * parport_negotiate to use address operations. They have no effect 86 * other than to make parport_read/write use a 86 * other than to make parport_read/write use address transfers. */ 87 #define IEEE1284_ADDR (1<<13 87 #define IEEE1284_ADDR (1<<13) /* This is a flag */ 88 #define IEEE1284_DATA 0 88 #define IEEE1284_DATA 0 /* So is this */ 89 89 90 /* Flags for block transfer operations. */ 90 /* Flags for block transfer operations. */ 91 #define PARPORT_EPP_FAST (1<<0) 91 #define PARPORT_EPP_FAST (1<<0) /* Unreliable counts. */ 92 #define PARPORT_W91284PIC (1<<1) 92 #define PARPORT_W91284PIC (1<<1) /* have a Warp9 w91284pic in the device */ 93 #define PARPORT_EPP_FAST_32 PARPOR 93 #define PARPORT_EPP_FAST_32 PARPORT_EPP_FAST /* 32-bit EPP transfers */ 94 #define PARPORT_EPP_FAST_16 (1<<2) 94 #define PARPORT_EPP_FAST_16 (1<<2) /* 16-bit EPP transfers */ 95 #define PARPORT_EPP_FAST_8 (1<<3) 95 #define PARPORT_EPP_FAST_8 (1<<3) /* 8-bit EPP transfers */ 96 96 97 /* The rest is for the kernel only */ 97 /* The rest is for the kernel only */ 98 #endif /* _UAPI_PARPORT_H_ */ 98 #endif /* _UAPI_PARPORT_H_ */ 99 99
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.