]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - sys/dev/ieee488/ugpib.h
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / sys / dev / ieee488 / ugpib.h
1 /*-
2  * Copyright (c) 2005 Poul-Henning Kamp <phk@FreeBSD.org>
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  * 1. Redistributions of source code must retain the above copyright
9  *    notice, this list of conditions and the following disclaimer.
10  * 2. Redistributions in binary form must reproduce the above copyright
11  *    notice, this list of conditions and the following disclaimer in the
12  *    documentation and/or other materials provided with the distribution.
13  *
14  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24  * SUCH DAMAGE.
25  *
26  * $FreeBSD$
27  *
28  */
29
30 #ifndef _DEV_IEEE488_UGPIB_H_
31 #define _DEV_IEEE488_UGPIB_H_
32
33 /* ibfoo() return values */
34 #define EDVR    0               /* System error                         */
35 #define ECIC    1               /* Not Active Controller                */
36 #define ENOL    2               /* Nobody listening                     */
37 #define EADR    3               /* Controller not addressed             */
38 #define EARG    4               /* Invalid argument                     */
39 #define ESAC    5               /* Not System Controller                */
40 #define EABO    6               /* I/O Aborted/Time out                 */
41 #define ENEB    7               /* No such controller                   */
42 #define EOIP    10              /* Async I/O in progress                */
43 #define ECAP    11              /* No such capability                   */
44 #define EFSO    12              /* File system error                    */
45 #define EBUS    14              /* Command byte xfer error              */
46 #define ESTB    15              /* Serial poll status byte lost         */
47 #define ESRQ    16              /* SRQ line stuck                       */
48 #define ETAB    20              /* Table problem                        */
49
50 /* ibsta bits */
51 #define ERR     (1<<15)         /* Error                                */
52 #define TIMO    (1<<14)         /* Timeout                              */
53 #define END     (1<<13)         /* EOI/EOS                              */
54 #define SRQI    (1<<12)         /* SRQ                                  */
55 #define RQS     (1<<11)         /* Device requests service              */
56 #define SPOLL   (1<<10)         /* Serial Poll                          */
57 #define EVENT   (1<<9)          /* Event occured                        */
58 #define CMPL    (1<<8)          /* I/O complete                         */
59 #define LOK     (1<<7)          /* Lockout                              */
60 #define REM     (1<<6)          /* Remote                               */
61 #define CIC     (1<<5)          /* CIC                                  */
62 #define ATN     (1<<4)          /* ATN                                  */
63 #define TACS    (1<<3)          /* Talker                               */
64 #define LACS    (1<<2)          /* Listener                             */
65 #define DTAS    (1<<1)          /* Device trigger status                */
66 #define DCAS    (1<<0)          /* Device clear state                   */
67
68 /* Timeouts */
69 #define TNONE   0
70 #define T10us   1
71 #define T30us   2
72 #define T100us  3
73 #define T300us  4
74 #define T1ms    5
75 #define T3ms    6
76 #define T10ms   7
77 #define T30ms   8
78 #define T100ms  9
79 #define T300ms  10
80 #define T1s     11
81 #define T3s     12
82 #define T10s    13
83 #define T30s    14
84 #define T100s   15
85 #define T300s   16
86 #define T1000s  17
87
88 /* EOS bits */
89 #define REOS    (1 << 10)
90 #define XEOS    (1 << 11)
91 #define BIN     (1 << 12)
92
93 /* Bus commands */
94 #define GTL     0x01            /* Go To Local                          */
95 #define SDC     0x04            /* Selected Device Clear                */
96 #define GET     0x08            /* Group Execute Trigger                */
97 #define LAD     0x20            /* Listen address                       */
98 #define UNL     0x3F            /* Unlisten                             */
99 #define TAD     0x40            /* Talk address                         */
100 #define UNT     0x5F            /* Untalk                               */
101
102 #ifndef _KERNEL
103
104 extern int ibcnt, iberr, ibsta;
105
106 int ibask(int handle, int option, int *retval);
107 int ibbna(int handle, char *bdname);
108 int ibcac(int handle, int v);
109 int ibclr(int handle);
110 int ibcmd(int handle, void *buffer, long cnt);
111 int ibcmda(int handle, void *buffer, long cnt);
112 int ibconfig(int handle, int option, int value);
113 int ibdev(int boardID, int pad, int sad, int tmo, int eot, int eos);
114 int ibdiag(int handle, void *buffer, long cnt);
115 int ibdma(int handle, int v);
116 int ibeos(int handle, int eos);
117 int ibeot(int handle, int eot);
118 int ibevent(int handle, short *event);
119 int ibfind(char *bdname);
120 int ibgts(int handle, int v);
121 int ibist(int handle, int v);
122 int iblines(int handle, short *lines);
123 int ibllo(int handle);
124 int ibln(int handle, int padval, int sadval, short *listenflag);
125 int ibloc(int handle);
126 int ibonl(int handle, int v);
127 int ibpad(int handle, int pad);
128 int ibpct(int handle);
129 int ibpoke(int handle, int option, int value);
130 int ibppc(int handle, int v);
131 int ibrd(int handle, void *buffer, long cnt);
132 int ibrda(int handle, void *buffer, long cnt);
133 int ibrdf(int handle, char *flname);
134 int ibrdkey(int handle, void *buffer, int cnt);
135 int ibrpp(int handle, char *ppr);
136 int ibrsc(int handle, int v);
137 int ibrsp(int handle, char *spr);
138 int ibrsv(int handle, int v);
139 int ibsad(int handle, int sad);
140 int ibsgnl(int handle, int v);
141 int ibsic(int handle);
142 int ibsre(int handle, int v);
143 int ibsrq(void (*func)(void));
144 int ibstop(int handle);
145 int ibtmo(int handle, int tmo);
146 int ibtrap(int  mask, int mode);
147 int ibtrg(int handle);
148 int ibwait(int handle, int mask);
149 int ibwrt(int handle, const void *buffer, long cnt);
150 int ibwrta(int handle, const void *buffer, long cnt);
151 int ibwrtf(int handle, const char *flname);
152 int ibwrtkey(int handle, const void *buffer, int cnt);
153 int ibxtrc(int handle, void *buffer, long cnt);
154 #endif /* _KERNEL */
155 #endif /* _DEV_IEEE488_UGPIB_H_ */