1*d30ea906Sjfb8856606 /* SPDX-License-Identifier: BSD-3-Clause
2*d30ea906Sjfb8856606  * Copyright(c) 2010-2014 Intel Corporation.
3a9643ea8Slogwang  * Copyright (c) 2009, Olivier MATZ <[email protected]>
4a9643ea8Slogwang  * All rights reserved.
5a9643ea8Slogwang  */
6a9643ea8Slogwang 
7a9643ea8Slogwang #ifndef _PARSE_ETHERADDR_H_
8a9643ea8Slogwang #define _PARSE_ETHERADDR_H_
9a9643ea8Slogwang 
10a9643ea8Slogwang #include <cmdline_parse.h>
11a9643ea8Slogwang 
12a9643ea8Slogwang #ifdef __cplusplus
13a9643ea8Slogwang extern "C" {
14a9643ea8Slogwang #endif
15a9643ea8Slogwang 
16a9643ea8Slogwang struct cmdline_token_etheraddr {
17a9643ea8Slogwang 	struct cmdline_token_hdr hdr;
18a9643ea8Slogwang };
19a9643ea8Slogwang typedef struct cmdline_token_etheraddr cmdline_parse_token_etheraddr_t;
20a9643ea8Slogwang 
21a9643ea8Slogwang extern struct cmdline_token_ops cmdline_token_etheraddr_ops;
22a9643ea8Slogwang 
23a9643ea8Slogwang int cmdline_parse_etheraddr(cmdline_parse_token_hdr_t *tk, const char *srcbuf,
24a9643ea8Slogwang 	void *res, unsigned ressize);
25a9643ea8Slogwang int cmdline_get_help_etheraddr(cmdline_parse_token_hdr_t *tk, char *dstbuf,
26a9643ea8Slogwang 	unsigned int size);
27a9643ea8Slogwang 
28a9643ea8Slogwang #define TOKEN_ETHERADDR_INITIALIZER(structure, field)       \
29a9643ea8Slogwang {                                                           \
30a9643ea8Slogwang 	/* hdr */                                               \
31a9643ea8Slogwang 	{                                                       \
32a9643ea8Slogwang 		&cmdline_token_etheraddr_ops,   /* ops */           \
33a9643ea8Slogwang 		offsetof(structure, field),     /* offset */        \
34a9643ea8Slogwang 	},                                                      \
35a9643ea8Slogwang }
36a9643ea8Slogwang 
37a9643ea8Slogwang #ifdef __cplusplus
38a9643ea8Slogwang }
39a9643ea8Slogwang #endif
40a9643ea8Slogwang 
41a9643ea8Slogwang 
42a9643ea8Slogwang #endif /* _PARSE_ETHERADDR_H_ */
43