parser.h 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. /*
  3. * linux/include/linux/parser.h
  4. *
  5. * Header for lib/parser.c
  6. * Intended use of these functions is parsing filesystem argument lists,
  7. * but could potentially be used anywhere else that simple option=arg
  8. * parsing is required.
  9. */
  10. /* associates an integer enumerator with a pattern string. */
  11. struct match_token {
  12. int token;
  13. const char *pattern;
  14. };
  15. typedef struct match_token match_table_t[];
  16. /* Maximum number of arguments that match_token will find in a pattern */
  17. enum {MAX_OPT_ARGS = 3};
  18. /* Describe the location within a string of a substring */
  19. typedef struct {
  20. char *from;
  21. char *to;
  22. } substring_t;
  23. int match_token(char *, const match_table_t table, substring_t args[]);
  24. int match_int(substring_t *, int *result);
  25. int match_u64(substring_t *, u64 *result);
  26. int match_octal(substring_t *, int *result);
  27. int match_hex(substring_t *, int *result);
  28. bool match_wildcard(const char *pattern, const char *str);
  29. size_t match_strlcpy(char *, const substring_t *, size_t);
  30. char *match_strdup(const substring_t *);