]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | /*- |
2 | * BSD LICENSE | |
3 | * | |
4 | * Copyright(c) 2010-2014 Intel Corporation. All rights reserved. | |
5 | * All rights reserved. | |
6 | * | |
7 | * Redistribution and use in source and binary forms, with or without | |
8 | * modification, are permitted provided that the following conditions | |
9 | * are met: | |
10 | * | |
11 | * * Redistributions of source code must retain the above copyright | |
12 | * notice, this list of conditions and the following disclaimer. | |
13 | * * Redistributions in binary form must reproduce the above copyright | |
14 | * notice, this list of conditions and the following disclaimer in | |
15 | * the documentation and/or other materials provided with the | |
16 | * distribution. | |
17 | * * Neither the name of Intel Corporation nor the names of its | |
18 | * contributors may be used to endorse or promote products derived | |
19 | * from this software without specific prior written permission. | |
20 | * | |
21 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | |
22 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | |
23 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | |
24 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | |
25 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |
26 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |
27 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | |
28 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | |
29 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |
30 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | |
31 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
32 | */ | |
33 | ||
34 | /* | |
35 | * Copyright (c) 2009, Olivier MATZ <zer0@droids-corp.org> | |
36 | * All rights reserved. | |
37 | * Redistribution and use in source and binary forms, with or without | |
38 | * modification, are permitted provided that the following conditions are met: | |
39 | * | |
40 | * * Redistributions of source code must retain the above copyright | |
41 | * notice, this list of conditions and the following disclaimer. | |
42 | * * Redistributions in binary form must reproduce the above copyright | |
43 | * notice, this list of conditions and the following disclaimer in the | |
44 | * documentation and/or other materials provided with the distribution. | |
45 | * * Neither the name of the University of California, Berkeley nor the | |
46 | * names of its contributors may be used to endorse or promote products | |
47 | * derived from this software without specific prior written permission. | |
48 | * | |
49 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY | |
50 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | |
51 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |
52 | * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY | |
53 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | |
54 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | |
55 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | |
56 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |
57 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | |
58 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
59 | */ | |
60 | ||
61 | #ifndef _PARSE_NUM_H_ | |
62 | #define _PARSE_NUM_H_ | |
63 | ||
64 | #include <cmdline_parse.h> | |
65 | ||
66 | #ifdef __cplusplus | |
67 | extern "C" { | |
68 | #endif | |
69 | ||
70 | enum cmdline_numtype { | |
71 | UINT8 = 0, | |
72 | UINT16, | |
73 | UINT32, | |
74 | UINT64, | |
75 | INT8, | |
76 | INT16, | |
77 | INT32, | |
78 | INT64 | |
79 | }; | |
80 | ||
81 | struct cmdline_token_num_data { | |
82 | enum cmdline_numtype type; | |
83 | }; | |
84 | ||
85 | struct cmdline_token_num { | |
86 | struct cmdline_token_hdr hdr; | |
87 | struct cmdline_token_num_data num_data; | |
88 | }; | |
89 | typedef struct cmdline_token_num cmdline_parse_token_num_t; | |
90 | ||
91 | extern struct cmdline_token_ops cmdline_token_num_ops; | |
92 | ||
93 | int cmdline_parse_num(cmdline_parse_token_hdr_t *tk, | |
94 | const char *srcbuf, void *res, unsigned ressize); | |
95 | int cmdline_get_help_num(cmdline_parse_token_hdr_t *tk, | |
96 | char *dstbuf, unsigned int size); | |
97 | ||
98 | #define TOKEN_NUM_INITIALIZER(structure, field, numtype) \ | |
99 | { \ | |
100 | /* hdr */ \ | |
101 | { \ | |
102 | &cmdline_token_num_ops, /* ops */ \ | |
103 | offsetof(structure, field), /* offset */ \ | |
104 | }, \ | |
105 | /* num_data */ \ | |
106 | { \ | |
107 | numtype, /* type */ \ | |
108 | }, \ | |
109 | } | |
110 | ||
111 | #ifdef __cplusplus | |
112 | } | |
113 | #endif | |
114 | ||
115 | #endif /* _PARSE_NUM_H_ */ |