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