Add GNU LGPL headers to all .c .C and .h files
[oweals/cde.git] / cde / programs / dtksh / ksh93 / src / lib / libast / include / stk.h
1 /*
2  * CDE - Common Desktop Environment
3  *
4  * Copyright (c) 1993-2012, The Open Group. All rights reserved.
5  *
6  * These libraries and programs are free software; you can
7  * redistribute them and/or modify them under the terms of the GNU
8  * Lesser General Public License as published by the Free Software
9  * Foundation; either version 2 of the License, or (at your option)
10  * any later version.
11  *
12  * These libraries and programs are distributed in the hope that
13  * they will be useful, but WITHOUT ANY WARRANTY; without even the
14  * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15  * PURPOSE. See the GNU Lesser General Public License for more
16  * details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with these librararies and programs; if not, write
20  * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
21  * Floor, Boston, MA 02110-1301 USA
22  */
23 /* $XConsortium: stk.h /main/2 1996/05/08 19:44:00 drk $ */
24 /***************************************************************
25 *                                                              *
26 *                      AT&T - PROPRIETARY                      *
27 *                                                              *
28 *         THIS IS PROPRIETARY SOURCE CODE LICENSED BY          *
29 *                          AT&T CORP.                          *
30 *                                                              *
31 *                Copyright (c) 1995 AT&T Corp.                 *
32 *                     All Rights Reserved                      *
33 *                                                              *
34 *           This software is licensed by AT&T Corp.            *
35 *       under the terms and conditions of the license in       *
36 *       http://www.research.att.com/orgs/ssr/book/reuse        *
37 *                                                              *
38 *               This software was created by the               *
39 *           Software Engineering Research Department           *
40 *                    AT&T Bell Laboratories                    *
41 *                                                              *
42 *               For further information contact                *
43 *                     gsf@research.att.com                     *
44 *                                                              *
45 ***************************************************************/
46
47 /* : : generated by proto : : */
48                   
49 /*
50  * David Korn
51  * AT&T Bell Laboratories
52  *
53  * Interface definitions for a stack-like storage library
54  *
55  */
56
57 #ifndef _STK_H
58 #if !defined(__PROTO__)
59 #if defined(__STDC__) || defined(__cplusplus) || defined(_proto) || defined(c_plusplus)
60 #if defined(__cplusplus)
61 #define __MANGLE__      "C"
62 #else
63 #define __MANGLE__
64 #endif
65 #define __STDARG__
66 #define __PROTO__(x)    x
67 #define __OTORP__(x)
68 #define __PARAM__(n,o)  n
69 #if !defined(__STDC__) && !defined(__cplusplus)
70 #if !defined(c_plusplus)
71 #define const
72 #endif
73 #define signed
74 #define void            int
75 #define volatile
76 #define __V_            char
77 #else
78 #define __V_            void
79 #endif
80 #else
81 #define __PROTO__(x)    ()
82 #define __OTORP__(x)    x
83 #define __PARAM__(n,o)  o
84 #define __MANGLE__
85 #define __V_            char
86 #define const
87 #define signed
88 #define void            int
89 #define volatile
90 #endif
91 #if defined(__cplusplus) || defined(c_plusplus)
92 #define __VARARG__      ...
93 #else
94 #define __VARARG__
95 #endif
96 #if defined(__STDARG__)
97 #define __VA_START__(p,a)       va_start(p,a)
98 #else
99 #define __VA_START__(p,a)       va_start(p)
100 #endif
101 #endif
102
103 #define _STK_H
104
105 #include <sfio.h>
106
107 #if _DLL_INDIRECT_DATA && !_DLL
108 #define _Stk_data       (*_Stak_data)
109 #else
110 #define _Stk_data       _Stak_data
111 #endif
112
113 extern __MANGLE__ Sfio_t                _Stk_data;
114 #define stkstd          (&_Stk_data)
115
116 #define Stk_t           Sfio_t
117
118 #define STK_SMALL       1               /* argument to stkopen          */
119
120 #define stkptr(sp,n)    ((char*)((sp)->data)+(n))
121 #define stktell(sp)     ((sp)->next-(sp)->data)
122 #define stkseek(sp,n)   ((n)==0?(char*)((sp)->next=(sp)->data):_stkseek(sp,n))
123
124 extern __MANGLE__ Stk_t*                stkopen __PROTO__((int));
125 extern __MANGLE__ Stk_t*                stkinstall __PROTO__((Stk_t*, char*(*)(int)));
126 extern __MANGLE__ int           stkclose __PROTO__((Stk_t*));
127 extern __MANGLE__ int           stklink __PROTO__((Stk_t*));
128 extern __MANGLE__ char*         stkalloc __PROTO__((Stk_t*, unsigned));
129 extern __MANGLE__ char*         stkcopy __PROTO__((Stk_t*,const char*));
130 extern __MANGLE__ char*         stkset __PROTO__((Stk_t*, char*, unsigned));
131 extern __MANGLE__ char*         _stkseek __PROTO__((Stk_t*, unsigned));
132 extern __MANGLE__ char*         stkfreeze __PROTO__((Stk_t*, unsigned));
133
134 #endif