14887Schin 24887Schin /* : : generated by proto : : */ 34887Schin /*********************************************************************** 44887Schin * * 54887Schin * This software is part of the ast package * 6*12068SRoger.Faulkner@Oracle.COM * Copyright (c) 1985-2010 AT&T Intellectual Property * 74887Schin * and is licensed under the * 84887Schin * Common Public License, Version 1.0 * 98462SApril.Chin@Sun.COM * by AT&T Intellectual Property * 104887Schin * * 114887Schin * A copy of the License is available at * 124887Schin * http://www.opensource.org/licenses/cpl1.0.txt * 134887Schin * (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) * 144887Schin * * 154887Schin * Information and Software Systems Research * 164887Schin * AT&T Research * 174887Schin * Florham Park NJ * 184887Schin * * 194887Schin * Glenn Fowler <gsf@research.att.com> * 204887Schin * David Korn <dgk@research.att.com> * 214887Schin * Phong Vo <kpv@research.att.com> * 224887Schin * * 234887Schin ***********************************************************************/ 244887Schin 254887Schin /* 264887Schin * David Korn 274887Schin * AT&T Research 284887Schin * 294887Schin * Interface definitions for a stack-like storage library 304887Schin * 314887Schin */ 324887Schin 334887Schin #ifndef _STK_H 344887Schin #if !defined(__PROTO__) 354887Schin #include <prototyped.h> 364887Schin #endif 374887Schin #if !defined(__LINKAGE__) 384887Schin #define __LINKAGE__ /* 2004-08-11 transition */ 394887Schin #endif 404887Schin 414887Schin #define _STK_H 424887Schin 434887Schin #include <sfio.h> 444887Schin 454887Schin #define _Stk_data _Stak_data 464887Schin 474887Schin #define stkstd (&_Stk_data) 484887Schin 494887Schin #define Stk_t Sfio_t 504887Schin 514887Schin #define STK_SMALL 1 /* small stkopen stack */ 524887Schin #define STK_NULL 2 /* return NULL on overflow */ 534887Schin 544887Schin #define stkptr(sp,n) ((char*)((sp)->_data)+(n)) 554887Schin #define stktop(sp) ((char*)(sp)->_next) 564887Schin #define stktell(sp) ((sp)->_next-(sp)->_data) 574887Schin #define stkseek(sp,n) ((n)==0?(char*)((sp)->_next=(sp)->_data):_stkseek(sp,n)) 584887Schin 594887Schin #if _BLD_ast && defined(__EXPORT__) 604887Schin #undef __MANGLE__ 614887Schin #define __MANGLE__ __LINKAGE__ __EXPORT__ 624887Schin #endif 634887Schin #if !_BLD_ast && defined(__IMPORT__) 644887Schin #undef __MANGLE__ 654887Schin #define __MANGLE__ __LINKAGE__ __IMPORT__ 664887Schin #endif 674887Schin 684887Schin extern __MANGLE__ Sfio_t _Stk_data; 694887Schin 704887Schin #undef __MANGLE__ 714887Schin #define __MANGLE__ __LINKAGE__ 724887Schin 734887Schin #if _BLD_ast && defined(__EXPORT__) 744887Schin #undef __MANGLE__ 754887Schin #define __MANGLE__ __LINKAGE__ __EXPORT__ 764887Schin #endif 774887Schin 784887Schin extern __MANGLE__ Stk_t* stkopen __PROTO__((int)); 794887Schin extern __MANGLE__ Stk_t* stkinstall __PROTO__((Stk_t*, char*(*)(int))); 804887Schin extern __MANGLE__ int stkclose __PROTO__((Stk_t*)); 814887Schin extern __MANGLE__ int stklink __PROTO__((Stk_t*)); 824887Schin extern __MANGLE__ char* stkalloc __PROTO__((Stk_t*, unsigned)); 834887Schin extern __MANGLE__ char* stkcopy __PROTO__((Stk_t*,const char*)); 844887Schin extern __MANGLE__ char* stkset __PROTO__((Stk_t*, char*, unsigned)); 854887Schin extern __MANGLE__ char* _stkseek __PROTO__((Stk_t*, unsigned)); 864887Schin extern __MANGLE__ char* stkfreeze __PROTO__((Stk_t*, unsigned)); 878462SApril.Chin@Sun.COM extern __MANGLE__ int stkon __PROTO__((Stk_t*, char *)); 884887Schin 894887Schin #undef __MANGLE__ 904887Schin #define __MANGLE__ __LINKAGE__ 914887Schin 924887Schin #endif 93