1 /* 2 * An inteface for configuring a hardware via u-boot environment. 3 * 4 * Copyright (c) 2009 MontaVista Software, Inc. 5 * Copyright 2011 Freescale Semiconductor, Inc. 6 * 7 * Author: Anton Vorontsov <avorontsov@ru.mvista.com> 8 * 9 * SPDX-License-Identifier: GPL-2.0+ 10 */ 11 12 #ifndef _HWCONFIG_H 13 #define _HWCONFIG_H 14 15 #include <linux/types.h> 16 #include <asm/errno.h> 17 18 #ifdef CONFIG_HWCONFIG 19 20 extern int hwconfig_f(const char *opt, char *buf); 21 extern const char *hwconfig_arg_f(const char *opt, size_t *arglen, char *buf); 22 extern int hwconfig_arg_cmp_f(const char *opt, const char *arg, char *buf); 23 extern int hwconfig_sub_f(const char *opt, const char *subopt, char *buf); 24 extern const char *hwconfig_subarg_f(const char *opt, const char *subopt, 25 size_t *subarglen, char *buf); 26 extern int hwconfig_subarg_cmp_f(const char *opt, const char *subopt, 27 const char *subarg, char *buf); 28 #else 29 30 static inline int hwconfig_f(const char *opt, char *buf) 31 { 32 return -ENOSYS; 33 } 34 35 static inline const char *hwconfig_arg_f(const char *opt, size_t *arglen, 36 char *buf) 37 { 38 *arglen = 0; 39 return ""; 40 } 41 42 static inline int hwconfig_arg_cmp_f(const char *opt, const char *arg, 43 char *buf) 44 { 45 return -ENOSYS; 46 } 47 48 static inline int hwconfig_sub_f(const char *opt, const char *subopt, char *buf) 49 { 50 return -ENOSYS; 51 } 52 53 static inline const char *hwconfig_subarg_f(const char *opt, const char *subopt, 54 size_t *subarglen, char *buf) 55 { 56 *subarglen = 0; 57 return ""; 58 } 59 60 static inline int hwconfig_subarg_cmp_f(const char *opt, const char *subopt, 61 const char *subarg, char *buf) 62 { 63 return -ENOSYS; 64 } 65 66 #endif /* CONFIG_HWCONFIG */ 67 68 static inline int hwconfig(const char *opt) 69 { 70 return hwconfig_f(opt, NULL); 71 } 72 73 static inline const char *hwconfig_arg(const char *opt, size_t *arglen) 74 { 75 return hwconfig_arg_f(opt, arglen, NULL); 76 } 77 78 static inline int hwconfig_arg_cmp(const char *opt, const char *arg) 79 { 80 return hwconfig_arg_cmp_f(opt, arg, NULL); 81 } 82 83 static inline int hwconfig_sub(const char *opt, const char *subopt) 84 { 85 return hwconfig_sub_f(opt, subopt, NULL); 86 } 87 88 static inline const char *hwconfig_subarg(const char *opt, const char *subopt, 89 size_t *subarglen) 90 { 91 return hwconfig_subarg_f(opt, subopt, subarglen, NULL); 92 } 93 94 static inline int hwconfig_subarg_cmp(const char *opt, const char *subopt, 95 const char *subarg) 96 { 97 return hwconfig_subarg_cmp_f(opt, subopt, subarg, NULL); 98 } 99 100 #endif /* _HWCONFIG_H */ 101