#ifndef _SFIO_T_H
#define _SFIO_T_H 1
#define _SFIO_PRIVATE \
Sfoff_t extent; \
Sfoff_t here; \
unsigned char getr; \
unsigned char tiny[1]; \
unsigned short bits; \
unsigned int mode; \
struct _sfdisc_s* disc; \
struct _sfpool_s* pool; \
struct _sfrsrv_s* rsrv; \
struct _sfproc_s* proc; \
Void_t* mutex; \
Void_t* stdio; \
Sfoff_t lpos; \
size_t iosz;
#include "sfio.h"
#define SF_INIT 0000004
#define SF_RDWR (SF_READ|SF_WRITE)
#define SF_RDSTR (SF_READ|SF_STRING)
#define SF_WRSTR (SF_WRITE|SF_STRING)
#define SF_RDWRSTR (SF_RDWR|SF_STRING)
#define SFNEW(data,size,file,type,disc,mutex) \
{ (unsigned char*)(data), \
(unsigned char*)(data), \
(unsigned char*)(data), \
(unsigned char*)(data), \
(Sfio_t*)0, \
(unsigned short)((type)&SF_FLAGS), \
(short)(file), \
(unsigned char*)(data), \
(ssize_t)(size), \
(ssize_t)(-1), \
(Sfoff_t)0, \
(Sfoff_t)0, \
0, \
{0}, \
0, \
(unsigned int)(((type)&(SF_RDWR))|SF_INIT), \
(struct _sfdisc_s*)(disc), \
(struct _sfpool_s*)0, \
(struct _sfrsrv_s*)0, \
(struct _sfproc_s*)0, \
(mutex), \
(Void_t*)0, \
(Sfoff_t)0, \
(size_t)0 \
}
#define SFCLEAR(f,mtx) \
( (f)->next = (unsigned char*)0, \
(f)->endw = (unsigned char*)0, \
(f)->endr = (unsigned char*)0, \
(f)->endb = (unsigned char*)0, \
(f)->push = (Sfio_t*)0, \
(f)->flags = (unsigned short)0, \
(f)->file = -1, \
(f)->data = (unsigned char*)0, \
(f)->size = (ssize_t)(-1), \
(f)->val = (ssize_t)(-1), \
(f)->extent = (Sfoff_t)(-1), \
(f)->here = (Sfoff_t)0, \
(f)->getr = 0, \
(f)->tiny[0] = 0, \
(f)->bits = 0, \
(f)->mode = 0, \
(f)->disc = (struct _sfdisc_s*)0, \
(f)->pool = (struct _sfpool_s*)0, \
(f)->rsrv = (struct _sfrsrv_s*)0, \
(f)->proc = (struct _sfproc_s*)0, \
(f)->mutex = (mtx), \
(f)->stdio = (Void_t*)0, \
(f)->lpos = (Sfoff_t)0, \
(f)->iosz = (size_t)0 \
)
#endif