OpenBSD fixed for lib/DtSvc.
[oweals/cde.git] / cde / lib / DtSvc / include / codelibs / privbuf.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 /*
24  * $TOG: privbuf.h /main/5 1999/10/15 17:23:22 mgreess $
25  *
26  * (c) Copyright 1996 Digital Equipment Corporation.
27  * (c) Copyright 1993,1994,1996 Hewlett-Packard Company.
28  * (c) Copyright 1993,1994,1996 International Business Machines Corp.
29  * (c) Copyright 1993,1994,1996 Sun Microsystems, Inc.
30  * (c) Copyright 1993,1994,1996 Novell, Inc. 
31  * (c) Copyright 1996 FUJITSU LIMITED.
32  * (c) Copyright 1996 Hitachi.
33  */
34 #ifndef __PRIVBUF_H_
35 #define __PRIVBUF_H_
36
37 #ifdef DOMAIN_ALLOW_MALLOC_OVERRIDE
38 #include "/usr/include/apollo/shlib.h"
39 #endif
40 #ifdef apollo
41 #include <stdlib.h>
42 #endif
43
44 typedef void (*privbuf_func)(void *v);
45
46 #ifdef __PRIVATE_
47 // this is only for internal library routines needing dynamic buffers:
48 #include <stddef.h>
49 #include <stdlib.h>
50
51 #if defined(__osf__) || defined(sun) || defined(linux) || defined(CSRG_BASED)
52 // The DEC C++ compiler rejects valid inline declarations, claiming
53 // they have both internal and external linkage.
54 #else
55 inline static void *operator new(size_t size) { return malloc((unsigned)size); }
56 inline static void operator delete(void *p) { if (p) free((char*)p); }
57 #endif
58
59 #include <codelibs/dynarray.h>
60 declare_array(privbuf_charbuf, char, 128)
61 declare_array(privbuf_strvec, char*, 128)
62 struct privbuf_buffer
63 {
64     privbuf_func func;
65     privbuf_charbuf buf;
66     privbuf_strvec vec;
67 };
68 extern void privbuf_freeprivbuf(void *buf);
69 extern privbuf_buffer *privbuf_allocprivbuf();
70 #undef __PRIVATE_
71 #endif /* __PRIVATE_ */
72
73 #ifdef __cplusplus
74 extern "C" {
75     void privbuf_release(void **var);
76 }
77 #else
78 extern void privbuf_release();
79 #endif
80
81 #endif /* __PRIVBUF_H_ */