uboot/include/hwconfig.h
<<
>>
Prefs
   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@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
  19extern int hwconfig_f(const char *opt, char *buf);
  20extern const char *hwconfig_arg_f(const char *opt, size_t *arglen, char *buf);
  21extern int hwconfig_arg_cmp_f(const char *opt, const char *arg, char *buf);
  22extern int hwconfig_sub_f(const char *opt, const char *subopt, char *buf);
  23extern const char *hwconfig_subarg_f(const char *opt, const char *subopt,
  24                                     size_t *subarglen, char *buf);
  25extern int hwconfig_subarg_cmp_f(const char *opt, const char *subopt,
  26                                 const char *subarg, char *buf);
  27#else
  28
  29static inline int hwconfig_f(const char *opt, char *buf)
  30{
  31        return -ENOSYS;
  32}
  33
  34static inline const char *hwconfig_arg_f(const char *opt, size_t *arglen,
  35                                         char *buf)
  36{
  37        *arglen = 0;
  38        return "";
  39}
  40
  41static inline int hwconfig_arg_cmp_f(const char *opt, const char *arg,
  42                                     char *buf)
  43{
  44        return -ENOSYS;
  45}
  46
  47static inline int hwconfig_sub_f(const char *opt, const char *subopt, char *buf)
  48{
  49        return -ENOSYS;
  50}
  51
  52static 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
  59static 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
  67static inline int hwconfig(const char *opt)
  68{
  69        return hwconfig_f(opt, NULL);
  70}
  71
  72static inline const char *hwconfig_arg(const char *opt, size_t *arglen)
  73{
  74        return hwconfig_arg_f(opt, arglen, NULL);
  75}
  76
  77static inline int hwconfig_arg_cmp(const char *opt, const char *arg)
  78{
  79        return hwconfig_arg_cmp_f(opt, arg, NULL);
  80}
  81
  82static inline int hwconfig_sub(const char *opt, const char *subopt)
  83{
  84        return hwconfig_sub_f(opt, subopt, NULL);
  85}
  86
  87static 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
  93static 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