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