Hamlib  3.0.1
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
par_nt.h
1 /* NT Parport Access stuff - Matthew Duggan (2002) */
2 
3 /*
4  * ParallelVdm Device (0x2C) is mostly undocumented, used by VDM for parallel
5  * port compatibility.
6  */
7 
8 /*
9  * Different from CTL_CODE in DDK, limited to ParallelVdm but makes this
10  * code cleaner.
11  */
12 
13 #ifndef _PAR_NT_H
14 
15 #define _PAR_NT_H
16 
17 #define NT_CTL_CODE( Function ) ( (0x2C<<16) | ((Function) << 2) )
18 
19 /* IOCTL codes */
20 #define NT_IOCTL_DATA NT_CTL_CODE(1) /* Write Only */
21 #define NT_IOCTL_CONTROL NT_CTL_CODE(2) /* Read/Write */
22 #define NT_IOCTL_STATUS NT_CTL_CODE(3) /* Read Only */
23 
24 
25 /*
26  * Raw port access (PC-style port registers but within inversions)
27  * Functions returning int may fail.
28  */
29 
30 /* The status pin functions operate in terms of these bits: */
31 enum ieee1284_status_bits
32 {
33  S1284_NFAULT = 0x08,
34  S1284_SELECT = 0x10,
35  S1284_PERROR = 0x20,
36  S1284_NACK = 0x40,
37  S1284_BUSY = 0x80,
38  /* To convert those values into PC-style register values, use this: */
39  S1284_INVERTED = S1284_BUSY
40 };
41 
42 /* The control pin functions operate in terms of these bits: */
43 enum ieee1284_control_bits
44 {
45  C1284_NSTROBE = 0x01,
46  C1284_NAUTOFD = 0x02,
47  C1284_NINIT = 0x04,
48  C1284_NSELECTIN = 0x08,
49  /* To convert those values into PC-style register values, use this: */
50  C1284_INVERTED = (C1284_NSTROBE|
51  C1284_NAUTOFD|
52  C1284_NSELECTIN)
53 };
54 
55 #endif /* _PAR_NT_H */

Generated by doxygen 1.8.8

Hamlib documentation for version 3.0.1 -- Wed Jan 13 2016 15:05:23
Project page: http://www.hamlib.org