1 /*  GETOPT.H    (c) Copyright see notice below                       */
2 /*              NetBSD getopt parsing function                       */
3 
4 /*
5  * Copyright (c) 1987, 1993, 1994, 1996
6  *  The Regents of the University of California.  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  * 1. Redistributions of source code must retain the above copyright
12  *    notice, this list of conditions and the following disclaimer.
13  * 2. Redistributions in binary form must reproduce the above copyright
14  *    notice, this list of conditions and the following disclaimer in the
15  *    documentation and/or other materials provided with the distribution.
16  * 3. All advertising materials mentioning features or use of this software
17  *    must display the following acknowledgement:
18  *  This product includes software developed by the University of
19  *  California, Berkeley and its contributors.
20  * 4. Neither the name of the University nor the names of its contributors
21  *    may be used to endorse or promote products derived from this software
22  *    without specific prior written permission.
23  *
24  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
25  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
28  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
29  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
30  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
31  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
33  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
34  * SUCH DAMAGE.
35  */
36 
37 #ifndef __GETOPT_H__
38 #define __GETOPT_H__
39 
40 #ifdef _MSVC_
41 #include "hostopts.h"
42 
43 #ifdef HDL_BUILD_SHARED
44 #ifndef _GETOPT_C_
45 #ifndef _HUTIL_DLL_
46 #define GOP_DLL_IMPORT DLL_IMPORT
47 #else   /* _HUTIL_DLL_ */
48 #define GOP_DLL_IMPORT extern
49 #endif  /* _HUTIL_DLL_ */
50 #else
51 #define GOP_DLL_IMPORT DLL_EXPORT
52 #endif
53 #else
54 #define GOP_DLL_IMPORT extern
55 #endif
56 #endif
57 
58 #ifndef _MSVC_
59 #define GOP_DLL_IMPORT extern
60 #endif
61 
62 
63 #ifdef __cplusplus
64 extern "C" {
65 #endif
66 
67 GOP_DLL_IMPORT int   opterr;      /* if error message should be printed */
68 GOP_DLL_IMPORT int   optind;      /* index into parent argv vector */
69 GOP_DLL_IMPORT int   optopt;      /* character checked for validity */
70 GOP_DLL_IMPORT int   optreset;    /* reset getopt */
71 GOP_DLL_IMPORT char *optarg;      /* argument associated with option */
72 
73 GOP_DLL_IMPORT int getopt (int, char * const *, const char *);
74 
75 #ifdef __cplusplus
76 }
77 #endif
78 
79 #endif /* __GETOPT_H__ */
80 
81 #ifndef __UNISTD_GETOPT__
82 #ifndef __GETOPT_LONG_H__
83 #define __GETOPT_LONG_H__
84 
85 #ifdef __cplusplus
86 extern "C" {
87 #endif
88 
89 struct option {
90     const char *name;
91     int  has_arg;
92     int *flag;
93     int val;
94 };
95 
96 GOP_DLL_IMPORT int getopt_long (int, char *const *, const char *, const struct option *, int *);
97 #ifndef HAVE_DECL_GETOPT
98 #define HAVE_DECL_GETOPT 1
99 #endif
100 
101 #define no_argument             0
102 #define required_argument       1
103 #define optional_argument       2
104 
105 #ifdef __cplusplus
106 }
107 #endif
108 
109 #endif /* __GETOPT_LONG_H__ */
110 #endif /* __UNISTD_GETOPT__ */
111