xref: /titanic_52/usr/src/contrib/ast/src/lib/libdll/dllerror.c (revision 906afcb89d0412cc073b95c2d701a804a8cdb62c)
1 /***********************************************************************
2 *                                                                      *
3 *               This software is part of the ast package               *
4 *          Copyright (c) 1997-2011 AT&T Intellectual Property          *
5 *                      and is licensed under the                       *
6 *                 Eclipse Public License, Version 1.0                  *
7 *                    by AT&T Intellectual Property                     *
8 *                                                                      *
9 *                A copy of the License is available at                 *
10 *          http://www.eclipse.org/org/documents/epl-v10.html           *
11 *         (with md5 checksum b35adb5213ca9657e911e9befb180842)         *
12 *                                                                      *
13 *              Information and Software Systems Research               *
14 *                            AT&T Research                             *
15 *                           Florham Park NJ                            *
16 *                                                                      *
17 *                 Glenn Fowler <gsf@research.att.com>                  *
18 *                                                                      *
19 ***********************************************************************/
20 #pragma prototyped
21 /*
22  * Glenn Fowler
23  * AT&T Research
24  */
25 
26 #include "dlllib.h"
27 
28 Dllstate_t	state;
29 
30 /*
31  * return error message from last failed dl*() call
32  * retain==0 resets the last dl*() error
33  */
34 
35 extern char*
36 dllerror(int retain)
37 {
38 	char*	s;
39 
40 	if (state.error)
41 	{
42 		state.error = retain;
43 		return state.errorbuf;
44 	}
45 	s = dlerror();
46 	if (retain)
47 	{
48 		state.error = retain;
49 		sfsprintf(state.errorbuf, sizeof(state.errorbuf), "%s", s);
50 	}
51 	return s;
52 }
53