1da2e3ebdSchin 2da2e3ebdSchin /* : : generated by proto : : */ 3da2e3ebdSchin /*********************************************************************** 4da2e3ebdSchin * * 5da2e3ebdSchin * This software is part of the ast package * 6*3e14f97fSRoger A. Faulkner * Copyright (c) 1985-2010 AT&T Intellectual Property * 7da2e3ebdSchin * and is licensed under the * 8da2e3ebdSchin * Common Public License, Version 1.0 * 97c2fbfb3SApril Chin * by AT&T Intellectual Property * 10da2e3ebdSchin * * 11da2e3ebdSchin * A copy of the License is available at * 12da2e3ebdSchin * http://www.opensource.org/licenses/cpl1.0.txt * 13da2e3ebdSchin * (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) * 14da2e3ebdSchin * * 15da2e3ebdSchin * Information and Software Systems Research * 16da2e3ebdSchin * AT&T Research * 17da2e3ebdSchin * Florham Park NJ * 18da2e3ebdSchin * * 19da2e3ebdSchin * Glenn Fowler <gsf@research.att.com> * 20da2e3ebdSchin * David Korn <dgk@research.att.com> * 21da2e3ebdSchin * Phong Vo <kpv@research.att.com> * 22da2e3ebdSchin * * 23da2e3ebdSchin ***********************************************************************/ 24da2e3ebdSchin 25da2e3ebdSchin /* 26da2e3ebdSchin * David Korn 27da2e3ebdSchin * AT&T Research 28da2e3ebdSchin * 29da2e3ebdSchin * Interface definitions for a stack-like storage library 30da2e3ebdSchin * 31da2e3ebdSchin */ 32da2e3ebdSchin 33da2e3ebdSchin #ifndef _STK_H 34da2e3ebdSchin #if !defined(__PROTO__) 35da2e3ebdSchin #include <prototyped.h> 36da2e3ebdSchin #endif 37da2e3ebdSchin #if !defined(__LINKAGE__) 38da2e3ebdSchin #define __LINKAGE__ /* 2004-08-11 transition */ 39da2e3ebdSchin #endif 40da2e3ebdSchin 41da2e3ebdSchin #define _STK_H 42da2e3ebdSchin 43da2e3ebdSchin #include <sfio.h> 44da2e3ebdSchin 45da2e3ebdSchin #define _Stk_data _Stak_data 46da2e3ebdSchin 47da2e3ebdSchin #define stkstd (&_Stk_data) 48da2e3ebdSchin 49da2e3ebdSchin #define Stk_t Sfio_t 50da2e3ebdSchin 51da2e3ebdSchin #define STK_SMALL 1 /* small stkopen stack */ 52da2e3ebdSchin #define STK_NULL 2 /* return NULL on overflow */ 53da2e3ebdSchin 54da2e3ebdSchin #define stkptr(sp,n) ((char*)((sp)->_data)+(n)) 55da2e3ebdSchin #define stktop(sp) ((char*)(sp)->_next) 56da2e3ebdSchin #define stktell(sp) ((sp)->_next-(sp)->_data) 57da2e3ebdSchin #define stkseek(sp,n) ((n)==0?(char*)((sp)->_next=(sp)->_data):_stkseek(sp,n)) 58da2e3ebdSchin 59da2e3ebdSchin #if _BLD_ast && defined(__EXPORT__) 60da2e3ebdSchin #undef __MANGLE__ 61da2e3ebdSchin #define __MANGLE__ __LINKAGE__ __EXPORT__ 62da2e3ebdSchin #endif 63da2e3ebdSchin #if !_BLD_ast && defined(__IMPORT__) 64da2e3ebdSchin #undef __MANGLE__ 65da2e3ebdSchin #define __MANGLE__ __LINKAGE__ __IMPORT__ 66da2e3ebdSchin #endif 67da2e3ebdSchin 68da2e3ebdSchin extern __MANGLE__ Sfio_t _Stk_data; 69da2e3ebdSchin 70da2e3ebdSchin #undef __MANGLE__ 71da2e3ebdSchin #define __MANGLE__ __LINKAGE__ 72da2e3ebdSchin 73da2e3ebdSchin #if _BLD_ast && defined(__EXPORT__) 74da2e3ebdSchin #undef __MANGLE__ 75da2e3ebdSchin #define __MANGLE__ __LINKAGE__ __EXPORT__ 76da2e3ebdSchin #endif 77da2e3ebdSchin 78da2e3ebdSchin extern __MANGLE__ Stk_t* stkopen __PROTO__((int)); 79da2e3ebdSchin extern __MANGLE__ Stk_t* stkinstall __PROTO__((Stk_t*, char*(*)(int))); 80da2e3ebdSchin extern __MANGLE__ int stkclose __PROTO__((Stk_t*)); 81da2e3ebdSchin extern __MANGLE__ int stklink __PROTO__((Stk_t*)); 82da2e3ebdSchin extern __MANGLE__ char* stkalloc __PROTO__((Stk_t*, unsigned)); 83da2e3ebdSchin extern __MANGLE__ char* stkcopy __PROTO__((Stk_t*,const char*)); 84da2e3ebdSchin extern __MANGLE__ char* stkset __PROTO__((Stk_t*, char*, unsigned)); 85da2e3ebdSchin extern __MANGLE__ char* _stkseek __PROTO__((Stk_t*, unsigned)); 86da2e3ebdSchin extern __MANGLE__ char* stkfreeze __PROTO__((Stk_t*, unsigned)); 877c2fbfb3SApril Chin extern __MANGLE__ int stkon __PROTO__((Stk_t*, char *)); 88da2e3ebdSchin 89da2e3ebdSchin #undef __MANGLE__ 90da2e3ebdSchin #define __MANGLE__ __LINKAGE__ 91da2e3ebdSchin 92da2e3ebdSchin #endif 93