/***********************************************************************1* *2* This software is part of the ast package *3* Copyright (c) 2000-2011 AT&T Intellectual Property *4* and is licensed under the *5* Eclipse Public License, Version 1.0 *6* by AT&T Intellectual Property *7* *8* A copy of the License is available at *9* http://www.eclipse.org/org/documents/epl-v10.html *10* (with md5 checksum b35adb5213ca9657e911e9befb180842) *11* *12* Information and Software Systems Research *13* AT&T Research *14* Florham Park NJ *15* *16* Glenn Fowler <[email protected]> *17* Phong Vo <[email protected]> *18* *19***********************************************************************/20#pragma prototyped2122#include "ivlib.h"2324Iv_t*25ivopen(Ivdisc_t* disc, Ivmeth_t* meth, int size, const char* options)26{27Iv_t* iv;2829if (!disc || !meth || !(iv = newof(0, Iv_t, 1, 3 * size)))30return 0;31iv->disc = disc;32iv->meth = meth;33iv->data = 0;34iv->unit = (unsigned char*)(iv + 1);35fvset(size, iv->unit, 1);36iv->r1 = iv->unit + size;37iv->r2 = iv->r1 + size;38iv->size = size;39if (meth->eventf && (*meth->eventf)(iv, IV_OPEN, (void*)options) < 0)40{41free(iv);42return 0;43}44return iv;45}464748