/***********************************************************************
* *
* This software is part of the ast package *
* Copyright (c) 2000-2011 AT&T Intellectual Property *
* and is licensed under the *
* Eclipse Public License, Version 1.0 *
* by AT&T Intellectual Property *
* *
* A copy of the License is available at *
* (with md5 checksum b35adb5213ca9657e911e9befb180842) *
* *
* Information and Software Systems Research *
* AT&T Research *
* Florham Park NJ *
* *
* Glenn Fowler <gsf@research.att.com> *
* Phong Vo <kpv@research.att.com> *
* *
***********************************************************************/
#pragma prototyped
#ifndef _IV_H
/* Library for handling intervals of arbitrary sized unsigned integer points.
**
** ivset(iv, lo, hi, data): specifies an interval [lo,hi]
** associated with the given "data".
** ivget(iv, pt): find the data currently associated with "pt".
** ivdel(iv, lo, hi): deletes the specified interval [lo,hi].
**
** Written by Kiem-Phong Vo and Glenn Fowler.
*/
#include <fv.h>
/* types related to the interval handle */
struct Ivseg_s
{
unsigned char* lo;
unsigned char* hi;
void* data;
#ifdef _IV_SEG_PRIVATE_
#endif
};
struct Ivdisc_s
{
};
struct Ivmeth_s
{
const char* name;
const char* description;
const char* options;
};
struct Iv_s
{
void* data;
unsigned char* unit;
unsigned char* r1;
unsigned char* r2;
int size;
};
#else
#if defined(__EXPORT__)
#define IVLIB(m) Ivmethod_t* Iv##m = &_##Iv##m; extern __EXPORT__ Ivmethod_t* vcodex_lib(const char* path) { return Iv##m; }
#else
#define IVLIB(m) Ivmethod_t* Iv##m = &_##Iv##m; extern Ivmethod_t* iv_lib(const char* path) { return Iv##m; }
#endif
#endif
#endif /* _IV_H */