parser.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  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. #ifndef _LINUX_PARSER_H
  11. #define _LINUX_PARSER_H
  12. /* associates an integer enumerator with a pattern string. */
  13. struct match_token {
  14. int token;
  15. const char *pattern;
  16. };
  17. typedef struct match_token match_table_t[];
  18. /* Maximum number of arguments that match_token will find in a pattern */
  19. enum {MAX_OPT_ARGS = 3};
  20. /* Describe the location within a string of a substring */
  21. typedef struct {
  22. char *from;
  23. char *to;
  24. } substring_t;
  25. int match_token(char *, const match_table_t table, substring_t args[]);
  26. int match_int(substring_t *, int *result);
  27. int match_u64(substring_t *, u64 *result);
  28. int match_octal(substring_t *, int *result);
  29. int match_hex(substring_t *, int *result);
  30. bool match_wildcard(const char *pattern, const char *str);
  31. size_t match_strlcpy(char *, const substring_t *, size_t);
  32. char *match_strdup(const substring_t *);
  33. #endif /* _LINUX_PARSER_H */