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