1141402Sphk/*-
2141402Sphk * Copyright (c) 2005 Poul-Henning Kamp
3141402Sphk * All rights reserved.
4141402Sphk *
5141402Sphk * Redistribution and use in source and binary forms, with or without
6141402Sphk * modification, are permitted provided that the following conditions
7141402Sphk * are met:
8141402Sphk * 1. Redistributions of source code must retain the above copyright
9141402Sphk *    notice, this list of conditions and the following disclaimer.
10141402Sphk * 2. Redistributions in binary form must reproduce the above copyright
11141402Sphk *    notice, this list of conditions and the following disclaimer in the
12141402Sphk *    documentation and/or other materials provided with the distribution.
13141402Sphk *
14141402Sphk * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15141402Sphk * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16141402Sphk * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17141402Sphk * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18141402Sphk * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19141402Sphk * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20141402Sphk * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21141402Sphk * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22141402Sphk * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23141402Sphk * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24141402Sphk * SUCH DAMAGE.
25141402Sphk *
26141402Sphk * This file merely redirects to the file in <dev/ieee488/ugpib.h>
27141402Sphk *
28141402Sphk * $FreeBSD$
29141402Sphk */
30141402Sphk
31141402Sphk#include <stdio.h>
32141402Sphk#include <errno.h>
33141402Sphk#include <err.h>
34141402Sphk#include <sys/types.h>
35141402Sphk#include <fcntl.h>
36141402Sphk
37141402Sphk#include <dev/ieee488/ugpib.h>
38141402Sphk#include <dev/ieee488/ibfoo_int.h>
39141402Sphk
40141768Sphkint ibcnt, iberr, ibsta;
41141402Sphk
42141402Sphkstatic int fd = -1;
43141402Sphk
44141402Sphkstatic int
45141768Sphk__ibsubmit(struct ibarg *ap)
46141402Sphk{
47141402Sphk	int i;
48141402Sphk
49141402Sphk	if (fd < 0)
50141402Sphk		fd = open("/dev/gpib0ib", O_RDWR);
51141402Sphk	if (fd < 0)
52141402Sphk		err(1, "Could not open /dev/gpib0ib");
53141402Sphk	i = ioctl(fd, GPIB_IBFOO, ap);
54141402Sphk	if (i)
55141402Sphk		err(1, "GPIB_IBFOO(%d, 0x%x) failed", ap->__ident, ap->__field);
56141402Sphk	ibcnt = ap->__ibcnt;
57141402Sphk	iberr = ap->__iberr;
58141768Sphk	ibsta = ap->__ibsta;
59141402Sphk	return (ap->__retval);
60141402Sphk}
61141402Sphk
62141402Sphkint
63141402Sphkibask (int handle, int option, int * retval)
64141402Sphk{
65141768Sphk	struct ibarg io;
66141402Sphk
67141402Sphk	io.__ident = __ID_IBASK;
68141402Sphk	io.handle = handle;
69141402Sphk	io.option = option;
70141402Sphk	io.retval = retval;
71141402Sphk	io.__field = __F_HANDLE | __F_OPTION | __F_RETVAL;
72141402Sphk	return (__ibsubmit(&io));
73141402Sphk}
74141402Sphk
75141402Sphkint
76141402Sphkibbna (int handle, char * bdname)
77141402Sphk{
78141768Sphk	struct ibarg io;
79141402Sphk
80141402Sphk	io.__ident = __ID_IBBNA;
81141402Sphk	io.handle = handle;
82141402Sphk	io.bdname = bdname;
83141402Sphk	io.__field = __F_HANDLE | __F_BDNAME;
84141402Sphk	return (__ibsubmit(&io));
85141402Sphk}
86141402Sphk
87141402Sphkint
88141402Sphkibcac (int handle, int v)
89141402Sphk{
90141768Sphk	struct ibarg io;
91141402Sphk
92141402Sphk	io.__ident = __ID_IBCAC;
93141402Sphk	io.handle = handle;
94141402Sphk	io.v = v;
95141402Sphk	io.__field = __F_HANDLE | __F_V;
96141402Sphk	return (__ibsubmit(&io));
97141402Sphk}
98141402Sphk
99141402Sphkint
100141402Sphkibclr (int handle)
101141402Sphk{
102141768Sphk	struct ibarg io;
103141402Sphk
104141402Sphk	io.__ident = __ID_IBCLR;
105141402Sphk	io.handle = handle;
106141402Sphk	io.__field = __F_HANDLE;
107141402Sphk	return (__ibsubmit(&io));
108141402Sphk}
109141402Sphk
110141402Sphkint
111141402Sphkibcmd (int handle, void * buffer, long cnt)
112141402Sphk{
113141768Sphk	struct ibarg io;
114141402Sphk
115141402Sphk	io.__ident = __ID_IBCMD;
116141402Sphk	io.handle = handle;
117141402Sphk	io.buffer = buffer;
118141402Sphk	io.cnt = cnt;
119141402Sphk	io.__field = __F_HANDLE | __F_BUFFER | __F_CNT;
120141402Sphk	return (__ibsubmit(&io));
121141402Sphk}
122141402Sphk
123141402Sphkint
124141402Sphkibcmda (int handle, void * buffer, long cnt)
125141402Sphk{
126141768Sphk	struct ibarg io;
127141402Sphk
128141402Sphk	io.__ident = __ID_IBCMDA;
129141402Sphk	io.handle = handle;
130141402Sphk	io.buffer = buffer;
131141402Sphk	io.cnt = cnt;
132141402Sphk	io.__field = __F_HANDLE | __F_BUFFER | __F_CNT;
133141402Sphk	return (__ibsubmit(&io));
134141402Sphk}
135141402Sphk
136141402Sphkint
137141402Sphkibconfig (int handle, int option, int value)
138141402Sphk{
139141768Sphk	struct ibarg io;
140141402Sphk
141141402Sphk	io.__ident = __ID_IBCONFIG;
142141402Sphk	io.handle = handle;
143141402Sphk	io.option = option;
144141402Sphk	io.value = value;
145141402Sphk	io.__field = __F_HANDLE | __F_OPTION | __F_VALUE;
146141402Sphk	return (__ibsubmit(&io));
147141402Sphk}
148141402Sphk
149141402Sphkint
150141402Sphkibdev (int boardID, int pad, int sad, int tmo, int eot, int eos)
151141402Sphk{
152141768Sphk	struct ibarg io;
153141402Sphk
154141402Sphk	io.__ident = __ID_IBDEV;
155141402Sphk	io.boardID = boardID;
156141402Sphk	io.pad = pad;
157141402Sphk	io.sad = sad;
158141402Sphk	io.tmo = tmo;
159141402Sphk	io.eot = eot;
160141402Sphk	io.eos = eos;
161141402Sphk	io.__field = __F_BOARDID | __F_PAD | __F_SAD | __F_TMO | __F_EOT | __F_EOS;
162141402Sphk	return (__ibsubmit(&io));
163141402Sphk}
164141402Sphk
165141402Sphkint
166141402Sphkibdiag (int handle, void * buffer, long cnt)
167141402Sphk{
168141768Sphk	struct ibarg io;
169141402Sphk
170141402Sphk	io.__ident = __ID_IBDIAG;
171141402Sphk	io.handle = handle;
172141402Sphk	io.buffer = buffer;
173141402Sphk	io.cnt = cnt;
174141402Sphk	io.__field = __F_HANDLE | __F_BUFFER | __F_CNT;
175141402Sphk	return (__ibsubmit(&io));
176141402Sphk}
177141402Sphk
178141402Sphkint
179141402Sphkibdma (int handle, int v)
180141402Sphk{
181141768Sphk	struct ibarg io;
182141402Sphk
183141402Sphk	io.__ident = __ID_IBDMA;
184141402Sphk	io.handle = handle;
185141402Sphk	io.v = v;
186141402Sphk	io.__field = __F_HANDLE | __F_V;
187141402Sphk	return (__ibsubmit(&io));
188141402Sphk}
189141402Sphk
190141402Sphkint
191141402Sphkibeos (int handle, int eos)
192141402Sphk{
193141768Sphk	struct ibarg io;
194141402Sphk
195141402Sphk	io.__ident = __ID_IBEOS;
196141402Sphk	io.handle = handle;
197141402Sphk	io.eos = eos;
198141402Sphk	io.__field = __F_HANDLE | __F_EOS;
199141402Sphk	return (__ibsubmit(&io));
200141402Sphk}
201141402Sphk
202141402Sphkint
203141736Sphkibeot (int handle, int eot)
204141402Sphk{
205141768Sphk	struct ibarg io;
206141402Sphk
207141402Sphk	io.__ident = __ID_IBEOT;
208141402Sphk	io.handle = handle;
209141736Sphk	io.eot = eot;
210141736Sphk	io.__field = __F_HANDLE | __F_EOT;
211141402Sphk	return (__ibsubmit(&io));
212141402Sphk}
213141402Sphk
214141402Sphkint
215141402Sphkibevent (int handle, short * event)
216141402Sphk{
217141768Sphk	struct ibarg io;
218141402Sphk
219141402Sphk	io.__ident = __ID_IBEVENT;
220141402Sphk	io.handle = handle;
221141402Sphk	io.event = event;
222141402Sphk	io.__field = __F_HANDLE | __F_EVENT;
223141402Sphk	return (__ibsubmit(&io));
224141402Sphk}
225141402Sphk
226141402Sphkint
227141402Sphkibfind (char * bdname)
228141402Sphk{
229141768Sphk	struct ibarg io;
230141402Sphk
231141402Sphk	io.__ident = __ID_IBFIND;
232141402Sphk	io.bdname = bdname;
233141402Sphk	io.__field = __F_BDNAME;
234141402Sphk	return (__ibsubmit(&io));
235141402Sphk}
236141402Sphk
237141402Sphkint
238141402Sphkibgts (int handle, int v)
239141402Sphk{
240141768Sphk	struct ibarg io;
241141402Sphk
242141402Sphk	io.__ident = __ID_IBGTS;
243141402Sphk	io.handle = handle;
244141402Sphk	io.v = v;
245141402Sphk	io.__field = __F_HANDLE | __F_V;
246141402Sphk	return (__ibsubmit(&io));
247141402Sphk}
248141402Sphk
249141402Sphkint
250141402Sphkibist (int handle, int v)
251141402Sphk{
252141768Sphk	struct ibarg io;
253141402Sphk
254141402Sphk	io.__ident = __ID_IBIST;
255141402Sphk	io.handle = handle;
256141402Sphk	io.v = v;
257141402Sphk	io.__field = __F_HANDLE | __F_V;
258141402Sphk	return (__ibsubmit(&io));
259141402Sphk}
260141402Sphk
261141402Sphkint
262141402Sphkiblines (int handle, short * lines)
263141402Sphk{
264141768Sphk	struct ibarg io;
265141402Sphk
266141402Sphk	io.__ident = __ID_IBLINES;
267141402Sphk	io.handle = handle;
268141402Sphk	io.lines = lines;
269141402Sphk	io.__field = __F_HANDLE | __F_LINES;
270141402Sphk	return (__ibsubmit(&io));
271141402Sphk}
272141402Sphk
273141402Sphkint
274141402Sphkibllo (int handle)
275141402Sphk{
276141768Sphk	struct ibarg io;
277141402Sphk
278141402Sphk	io.__ident = __ID_IBLLO;
279141402Sphk	io.handle = handle;
280141402Sphk	io.__field = __F_HANDLE;
281141402Sphk	return (__ibsubmit(&io));
282141402Sphk}
283141402Sphk
284141402Sphkint
285141402Sphkibln (int handle, int padval, int sadval, short * listenflag)
286141402Sphk{
287141768Sphk	struct ibarg io;
288141402Sphk
289141402Sphk	io.__ident = __ID_IBLN;
290141402Sphk	io.handle = handle;
291141402Sphk	io.padval = padval;
292141402Sphk	io.sadval = sadval;
293141402Sphk	io.listenflag = listenflag;
294141402Sphk	io.__field = __F_HANDLE | __F_PADVAL | __F_SADVAL | __F_LISTENFLAG;
295141402Sphk	return (__ibsubmit(&io));
296141402Sphk}
297141402Sphk
298141402Sphkint
299141402Sphkibloc (int handle)
300141402Sphk{
301141768Sphk	struct ibarg io;
302141402Sphk
303141402Sphk	io.__ident = __ID_IBLOC;
304141402Sphk	io.handle = handle;
305141402Sphk	io.__field = __F_HANDLE;
306141402Sphk	return (__ibsubmit(&io));
307141402Sphk}
308141402Sphk
309141402Sphkint
310141402Sphkibonl (int handle, int v)
311141402Sphk{
312141768Sphk	struct ibarg io;
313141402Sphk
314141402Sphk	io.__ident = __ID_IBONL;
315141402Sphk	io.handle = handle;
316141402Sphk	io.v = v;
317141402Sphk	io.__field = __F_HANDLE | __F_V;
318141402Sphk	return (__ibsubmit(&io));
319141402Sphk}
320141402Sphk
321141402Sphkint
322141402Sphkibpad (int handle, int v)
323141402Sphk{
324141768Sphk	struct ibarg io;
325141402Sphk
326141402Sphk	io.__ident = __ID_IBPAD;
327141402Sphk	io.handle = handle;
328141402Sphk	io.v = v;
329141402Sphk	io.__field = __F_HANDLE | __F_V;
330141402Sphk	return (__ibsubmit(&io));
331141402Sphk}
332141402Sphk
333141402Sphkint
334141402Sphkibpct (int handle)
335141402Sphk{
336141768Sphk	struct ibarg io;
337141402Sphk
338141402Sphk	io.__ident = __ID_IBPCT;
339141402Sphk	io.handle = handle;
340141402Sphk	io.__field = __F_HANDLE;
341141402Sphk	return (__ibsubmit(&io));
342141402Sphk}
343141402Sphk
344141402Sphkint
345141402Sphkibpoke (int handle, int option, int value)
346141402Sphk{
347141768Sphk	struct ibarg io;
348141402Sphk
349141402Sphk	io.__ident = __ID_IBPOKE;
350141402Sphk	io.handle = handle;
351141402Sphk	io.option = option;
352141402Sphk	io.value = value;
353141402Sphk	io.__field = __F_HANDLE | __F_OPTION | __F_VALUE;
354141402Sphk	return (__ibsubmit(&io));
355141402Sphk}
356141402Sphk
357141402Sphkint
358141402Sphkibppc (int handle, int v)
359141402Sphk{
360141768Sphk	struct ibarg io;
361141402Sphk
362141402Sphk	io.__ident = __ID_IBPPC;
363141402Sphk	io.handle = handle;
364141402Sphk	io.v = v;
365141402Sphk	io.__field = __F_HANDLE | __F_V;
366141402Sphk	return (__ibsubmit(&io));
367141402Sphk}
368141402Sphk
369141402Sphkint
370141402Sphkibrd (int handle, void * buffer, long cnt)
371141402Sphk{
372141768Sphk	struct ibarg io;
373141402Sphk
374141402Sphk	io.__ident = __ID_IBRD;
375141402Sphk	io.handle = handle;
376141402Sphk	io.buffer = buffer;
377141402Sphk	io.cnt = cnt;
378141402Sphk	io.__field = __F_HANDLE | __F_BUFFER | __F_CNT;
379141402Sphk	return (__ibsubmit(&io));
380141402Sphk}
381141402Sphk
382141402Sphkint
383141402Sphkibrda (int handle, void * buffer, long cnt)
384141402Sphk{
385141768Sphk	struct ibarg io;
386141402Sphk
387141402Sphk	io.__ident = __ID_IBRDA;
388141402Sphk	io.handle = handle;
389141402Sphk	io.buffer = buffer;
390141402Sphk	io.cnt = cnt;
391141402Sphk	io.__field = __F_HANDLE | __F_BUFFER | __F_CNT;
392141402Sphk	return (__ibsubmit(&io));
393141402Sphk}
394141402Sphk
395141402Sphkint
396141402Sphkibrdf (int handle, char * flname)
397141402Sphk{
398141768Sphk	struct ibarg io;
399141402Sphk
400141402Sphk	io.__ident = __ID_IBRDF;
401141402Sphk	io.handle = handle;
402141402Sphk	io.flname = flname;
403141402Sphk	io.__field = __F_HANDLE | __F_FLNAME;
404141402Sphk	return (__ibsubmit(&io));
405141402Sphk}
406141402Sphk
407141402Sphkint
408141402Sphkibrdkey (int handle, void * buffer, int cnt)
409141402Sphk{
410141768Sphk	struct ibarg io;
411141402Sphk
412141402Sphk	io.__ident = __ID_IBRDKEY;
413141402Sphk	io.handle = handle;
414141402Sphk	io.buffer = buffer;
415141402Sphk	io.cnt = cnt;
416141402Sphk	io.__field = __F_HANDLE | __F_BUFFER | __F_CNT;
417141402Sphk	return (__ibsubmit(&io));
418141402Sphk}
419141402Sphk
420141402Sphkint
421141402Sphkibrpp (int handle, char * ppr)
422141402Sphk{
423141768Sphk	struct ibarg io;
424141402Sphk
425141402Sphk	io.__ident = __ID_IBRPP;
426141402Sphk	io.handle = handle;
427141402Sphk	io.ppr = ppr;
428141402Sphk	io.__field = __F_HANDLE | __F_PPR;
429141402Sphk	return (__ibsubmit(&io));
430141402Sphk}
431141402Sphk
432141402Sphkint
433141402Sphkibrsc (int handle, int v)
434141402Sphk{
435141768Sphk	struct ibarg io;
436141402Sphk
437141402Sphk	io.__ident = __ID_IBRSC;
438141402Sphk	io.handle = handle;
439141402Sphk	io.v = v;
440141402Sphk	io.__field = __F_HANDLE | __F_V;
441141402Sphk	return (__ibsubmit(&io));
442141402Sphk}
443141402Sphk
444141402Sphkint
445141402Sphkibrsp (int handle, char * spr)
446141402Sphk{
447141768Sphk	struct ibarg io;
448141402Sphk
449141402Sphk	io.__ident = __ID_IBRSP;
450141402Sphk	io.handle = handle;
451141402Sphk	io.spr = spr;
452141402Sphk	io.__field = __F_HANDLE | __F_SPR;
453141402Sphk	return (__ibsubmit(&io));
454141402Sphk}
455141402Sphk
456141402Sphkint
457141402Sphkibrsv (int handle, int v)
458141402Sphk{
459141768Sphk	struct ibarg io;
460141402Sphk
461141402Sphk	io.__ident = __ID_IBRSV;
462141402Sphk	io.handle = handle;
463141402Sphk	io.v = v;
464141402Sphk	io.__field = __F_HANDLE | __F_V;
465141402Sphk	return (__ibsubmit(&io));
466141402Sphk}
467141402Sphk
468141402Sphkint
469141777Sphkibsad (int handle, int sad)
470141402Sphk{
471141768Sphk	struct ibarg io;
472141402Sphk
473141402Sphk	io.__ident = __ID_IBSAD;
474141402Sphk	io.handle = handle;
475141783Sscottl	io.sad = sad;
476141777Sphk	io.__field = __F_HANDLE | __F_SAD;
477141402Sphk	return (__ibsubmit(&io));
478141402Sphk}
479141402Sphk
480141402Sphkint
481141402Sphkibsgnl (int handle, int v)
482141402Sphk{
483141768Sphk	struct ibarg io;
484141402Sphk
485141402Sphk	io.__ident = __ID_IBSGNL;
486141402Sphk	io.handle = handle;
487141402Sphk	io.v = v;
488141402Sphk	io.__field = __F_HANDLE | __F_V;
489141402Sphk	return (__ibsubmit(&io));
490141402Sphk}
491141402Sphk
492141402Sphkint
493141402Sphkibsic (int handle)
494141402Sphk{
495141768Sphk	struct ibarg io;
496141402Sphk
497141402Sphk	io.__ident = __ID_IBSIC;
498141402Sphk	io.handle = handle;
499141402Sphk	io.__field = __F_HANDLE;
500141402Sphk	return (__ibsubmit(&io));
501141402Sphk}
502141402Sphk
503141402Sphkint
504141402Sphkibsre (int handle, int v)
505141402Sphk{
506141768Sphk	struct ibarg io;
507141402Sphk
508141402Sphk	io.__ident = __ID_IBSRE;
509141402Sphk	io.handle = handle;
510141402Sphk	io.v = v;
511141402Sphk	io.__field = __F_HANDLE | __F_V;
512141402Sphk	return (__ibsubmit(&io));
513141402Sphk}
514141402Sphk
515141402Sphkint
516141402Sphkibsrq (ibsrq_t * func)
517141402Sphk{
518141768Sphk	struct ibarg io;
519141402Sphk
520141402Sphk	io.__ident = __ID_IBSRQ;
521141402Sphk	io.func = func;
522141402Sphk	io.__field = __F_FUNC;
523141402Sphk	return (__ibsubmit(&io));
524141402Sphk}
525141402Sphk
526141402Sphkint
527141402Sphkibstop (int handle)
528141402Sphk{
529141768Sphk	struct ibarg io;
530141402Sphk
531141402Sphk	io.__ident = __ID_IBSTOP;
532141402Sphk	io.handle = handle;
533141402Sphk	io.__field = __F_HANDLE;
534141402Sphk	return (__ibsubmit(&io));
535141402Sphk}
536141402Sphk
537141402Sphkint
538141402Sphkibtmo (int handle, int tmo)
539141402Sphk{
540141768Sphk	struct ibarg io;
541141402Sphk
542141402Sphk	io.__ident = __ID_IBTMO;
543141402Sphk	io.handle = handle;
544141402Sphk	io.tmo = tmo;
545141402Sphk	io.__field = __F_HANDLE | __F_TMO;
546141402Sphk	return (__ibsubmit(&io));
547141402Sphk}
548141402Sphk
549141402Sphkint
550141402Sphkibtrap (int  mask, int mode)
551141402Sphk{
552141768Sphk	struct ibarg io;
553141402Sphk
554141402Sphk	io.__ident = __ID_IBTRAP;
555141402Sphk	io.mask = mask;
556141402Sphk	io.mode = mode;
557141402Sphk	io.__field = __F_MASK | __F_MODE;
558141402Sphk	return (__ibsubmit(&io));
559141402Sphk}
560141402Sphk
561141402Sphkint
562141402Sphkibtrg (int handle)
563141402Sphk{
564141768Sphk	struct ibarg io;
565141402Sphk
566141402Sphk	io.__ident = __ID_IBTRG;
567141402Sphk	io.handle = handle;
568141402Sphk	io.__field = __F_HANDLE;
569141402Sphk	return (__ibsubmit(&io));
570141402Sphk}
571141402Sphk
572141402Sphkint
573141402Sphkibwait (int handle, int mask)
574141402Sphk{
575141768Sphk	struct ibarg io;
576141402Sphk
577141402Sphk	io.__ident = __ID_IBWAIT;
578141402Sphk	io.handle = handle;
579141402Sphk	io.mask = mask;
580141402Sphk	io.__field = __F_HANDLE | __F_MASK;
581141402Sphk	return (__ibsubmit(&io));
582141402Sphk}
583141402Sphk
584141402Sphkint
585141591Sphkibwrt (int handle, const void *buffer, long cnt)
586141402Sphk{
587141768Sphk	struct ibarg io;
588141402Sphk
589141402Sphk	io.__ident = __ID_IBWRT;
590141402Sphk	io.handle = handle;
591141591Sphk	io.buffer = __DECONST(void *, buffer);
592141402Sphk	io.cnt = cnt;
593141402Sphk	io.__field = __F_HANDLE | __F_BUFFER | __F_CNT;
594141402Sphk	return (__ibsubmit(&io));
595141402Sphk}
596141402Sphk
597141402Sphkint
598141591Sphkibwrta (int handle, const void * buffer, long cnt)
599141402Sphk{
600141768Sphk	struct ibarg io;
601141402Sphk
602141402Sphk	io.__ident = __ID_IBWRTA;
603141402Sphk	io.handle = handle;
604141591Sphk	io.buffer = __DECONST(void *, buffer);
605141402Sphk	io.cnt = cnt;
606141402Sphk	io.__field = __F_HANDLE | __F_BUFFER | __F_CNT;
607141402Sphk	return (__ibsubmit(&io));
608141402Sphk}
609141402Sphk
610141402Sphkint
611141591Sphkibwrtf (int handle, const char *flname)
612141402Sphk{
613141768Sphk	struct ibarg io;
614141402Sphk
615141402Sphk	io.__ident = __ID_IBWRTF;
616141402Sphk	io.handle = handle;
617141591Sphk	io.flname = __DECONST(void *, flname);
618141402Sphk	io.__field = __F_HANDLE | __F_FLNAME;
619141402Sphk	return (__ibsubmit(&io));
620141402Sphk}
621141402Sphk
622141402Sphkint
623141591Sphkibwrtkey (int handle, const void *buffer, int cnt)
624141402Sphk{
625141768Sphk	struct ibarg io;
626141402Sphk
627141402Sphk	io.__ident = __ID_IBWRTKEY;
628141402Sphk	io.handle = handle;
629141591Sphk	io.buffer = __DECONST(void *, buffer);
630141402Sphk	io.cnt = cnt;
631141402Sphk	io.__field = __F_HANDLE | __F_BUFFER | __F_CNT;
632141402Sphk	return (__ibsubmit(&io));
633141402Sphk}
634141402Sphk
635141402Sphkint
636141402Sphkibxtrc (int handle, void * buffer, long cnt)
637141402Sphk{
638141768Sphk	struct ibarg io;
639141402Sphk
640141402Sphk	io.__ident = __ID_IBXTRC;
641141402Sphk	io.handle = handle;
642141402Sphk	io.buffer = buffer;
643141402Sphk	io.cnt = cnt;
644141402Sphk	io.__field = __F_HANDLE | __F_BUFFER | __F_CNT;
645141402Sphk	return (__ibsubmit(&io));
646141402Sphk}
647141402Sphk
648