1/* $NetBSD: com_right.h,v 1.2 2017/01/28 21:31:45 christos Exp $ */
2
3/*
4 * Copyright (c) 1997 - 2000 Kungliga Tekniska Högskolan
5 * (Royal Institute of Technology, Stockholm, Sweden).
6 * All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
10 * are met:
11 *
12 * 1. Redistributions of source code must retain the above copyright
13 * notice, this list of conditions and the following disclaimer.
14 *
15 * 2. Redistributions in binary form must reproduce the above copyright
16 * notice, this list of conditions and the following disclaimer in the
17 * documentation and/or other materials provided with the distribution.
18 *
19 * 3. Neither the name of the Institute nor the names of its contributors
20 * may be used to endorse or promote products derived from this software
21 * without specific prior written permission.
22 *
23 * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
24 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26 * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
27 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
32 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33 * SUCH DAMAGE.
34 */
35
36/* Id */
37
38#ifndef __COM_RIGHT_H__
39#define __COM_RIGHT_H__
40
41#ifndef KRB5_LIB
42#ifndef KRB5_LIB_FUNCTION
43#if defined(_WIN32)
44#define KRB5_LIB_FUNCTION __declspec(dllimport)
45#define KRB5_LIB_CALL __stdcall
46#define KRB5_LIB_VARIABLE __declspec(dllimport)
47#else
48#define KRB5_LIB_FUNCTION
49#define KRB5_LIB_CALL
50#define KRB5_LIB_VARIABLE
51#endif
52#endif
53#endif
54
55#ifdef _WIN32
56#define KRB5_CALLCONV __stdcall
57#else
58#define KRB5_CALLCONV
59#endif
60
61#ifdef __STDC__
62#include <stdarg.h>
63#include <stddef.h>
64#endif
65
66struct error_table {
67 char const * const * msgs;
68 long base;
69 int n_msgs;
70};
71struct et_list {
72 struct et_list *next;
73 struct error_table *table;
74};
75extern struct et_list *_et_list;
76
77KRB5_LIB_FUNCTION const char * KRB5_LIB_CALL
78com_right (struct et_list *list, long code);
79
80KRB5_LIB_FUNCTION const char * KRB5_LIB_CALL
81com_right_r (struct et_list *list, long code, char *, size_t);
82
83KRB5_LIB_FUNCTION void KRB5_LIB_CALL
84initialize_error_table_r (struct et_list **, const char **, int, long);
85
86KRB5_LIB_FUNCTION void KRB5_LIB_CALL
87free_error_table (struct et_list *);
88
89#endif /* __COM_RIGHT_H__ */
90