linux/tools/perf/util/strlist.h
<<
>>
Prefs
   1#ifndef STRLIST_H_
   2#define STRLIST_H_
   3
   4#include <linux/rbtree.h>
   5#include <stdbool.h>
   6
   7struct str_node {
   8        struct rb_node rb_node;
   9        const char     *s;
  10};
  11
  12struct strlist {
  13        struct rb_root entries;
  14        unsigned int   nr_entries;
  15        bool           dupstr;
  16};
  17
  18struct strlist *strlist__new(bool dupstr, const char *slist);
  19void strlist__delete(struct strlist *self);
  20
  21void strlist__remove(struct strlist *self, struct str_node *sn);
  22int strlist__load(struct strlist *self, const char *filename);
  23int strlist__add(struct strlist *self, const char *str);
  24
  25struct str_node *strlist__entry(const struct strlist *self, unsigned int idx);
  26bool strlist__has_entry(struct strlist *self, const char *entry);
  27
  28static inline bool strlist__empty(const struct strlist *self)
  29{
  30        return self->nr_entries == 0;
  31}
  32
  33static inline unsigned int strlist__nr_entries(const struct strlist *self)
  34{
  35        return self->nr_entries;
  36}
  37
  38int strlist__parse_list(struct strlist *self, const char *s);
  39#endif /* STRLIST_H_ */
  40