/drivers/net/wireless/bcm4329/include/miniopt.h

https://bitbucket.org/wisechild/galaxy-nexus · C++ Header · 77 lines · 26 code · 14 blank · 37 comment · 0 complexity · 2e2aa01a74cb362314e6ce76d5a40b83 MD5 · raw file

  1. /*
  2. * Command line options parser.
  3. *
  4. * Copyright (C) 1999-2010, Broadcom Corporation
  5. *
  6. * Unless you and Broadcom execute a separate written software license
  7. * agreement governing use of this software, this software is licensed to you
  8. * under the terms of the GNU General Public License version 2 (the "GPL"),
  9. * available at http://www.broadcom.com/licenses/GPLv2.php, with the
  10. * following added to such license:
  11. *
  12. * As a special exception, the copyright holders of this software give you
  13. * permission to link this software with independent modules, and to copy and
  14. * distribute the resulting executable under terms of your choice, provided that
  15. * you also meet, for each linked independent module, the terms and conditions of
  16. * the license of that module. An independent module is a module which is not
  17. * derived from this software. The special exception does not apply to any
  18. * modifications of the software.
  19. *
  20. * Notwithstanding the above, under no circumstances may you combine this
  21. * software in any way with any other Broadcom software provided under a license
  22. * other than the GPL, without Broadcom's express prior written consent.
  23. * $Id: miniopt.h,v 1.1.6.2 2009/01/14 23:52:48 Exp $
  24. */
  25. #ifndef MINI_OPT_H
  26. #define MINI_OPT_H
  27. #ifdef __cplusplus
  28. extern "C" {
  29. #endif
  30. /* ---- Include Files ---------------------------------------------------- */
  31. /* ---- Constants and Types ---------------------------------------------- */
  32. #define MINIOPT_MAXKEY 128 /* Max options */
  33. typedef struct miniopt {
  34. /* These are persistent after miniopt_init() */
  35. const char* name; /* name for prompt in error strings */
  36. const char* flags; /* option chars that take no args */
  37. bool longflags; /* long options may be flags */
  38. bool opt_end; /* at end of options (passed a "--") */
  39. /* These are per-call to miniopt() */
  40. int consumed; /* number of argv entries cosumed in
  41. * the most recent call to miniopt()
  42. */
  43. bool positional;
  44. bool good_int; /* 'val' member is the result of a sucessful
  45. * strtol conversion of the option value
  46. */
  47. char opt;
  48. char key[MINIOPT_MAXKEY];
  49. char* valstr; /* positional param, or value for the option,
  50. * or null if the option had
  51. * no accompanying value
  52. */
  53. uint uval; /* strtol translation of valstr */
  54. int val; /* strtol translation of valstr */
  55. } miniopt_t;
  56. void miniopt_init(miniopt_t *t, const char* name, const char* flags, bool longflags);
  57. int miniopt(miniopt_t *t, char **argv);
  58. /* ---- Variable Externs ------------------------------------------------- */
  59. /* ---- Function Prototypes ---------------------------------------------- */
  60. #ifdef __cplusplus
  61. }
  62. #endif
  63. #endif /* MINI_OPT_H */