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