NULL
};
-struct udev_rules {
+struct UdevRules {
usec_t dirs_ts_usec;
ResolveNameTiming resolve_name_timing;
unsigned gids_max;
};
-static char *rules_str(struct udev_rules *rules, unsigned off) {
+static char *rules_str(UdevRules *rules, unsigned off) {
return rules->strbuf->buf + off;
}
-static unsigned rules_add_string(struct udev_rules *rules, const char *s) {
+static unsigned rules_add_string(UdevRules *rules, const char *s) {
return strbuf_add_string(rules->strbuf, s, strlen(s));
}
#define MAX_TK 64
struct rule_tmp {
- struct udev_rules *rules;
+ UdevRules *rules;
struct token rule;
struct token token[MAX_TK];
unsigned token_cur;
return token_strs[type];
}
-static void dump_token(struct udev_rules *rules, struct token *token) {
+static void dump_token(UdevRules *rules, struct token *token) {
enum token_type type = token->type;
enum operation_type op = token->key.op;
enum string_glob_type glob = token->key.glob;
}
}
-static void dump_rules(struct udev_rules *rules) {
+static void dump_rules(UdevRules *rules) {
unsigned i;
log_debug("Dumping %u (%zu bytes) tokens, %zu (%zu bytes) strings",
dump_token(rules, &rules->tokens[i]);
}
#else
-static inline void dump_token(struct udev_rules *rules, struct token *token) {}
-static inline void dump_rules(struct udev_rules *rules) {}
+static inline void dump_token(UdevRules *rules, struct token *token) {}
+static inline void dump_rules(UdevRules *rules) {}
#endif /* ENABLE_DEBUG_UDEV */
-static int add_token(struct udev_rules *rules, struct token *token) {
+static int add_token(UdevRules *rules, struct token *token) {
/* grow buffer if needed */
if (rules->token_cur+1 >= rules->token_max) {
struct token *tokens;
log_device_error_errno(dev, error, "Failed to resolve %s '%s': %m", entity, owner);
}
-static uid_t add_uid(struct udev_rules *rules, const char *owner) {
+static uid_t add_uid(UdevRules *rules, const char *owner) {
unsigned i;
uid_t uid = 0;
unsigned off;
return uid;
}
-static gid_t add_gid(struct udev_rules *rules, const char *group) {
+static gid_t add_gid(UdevRules *rules, const char *group) {
unsigned i;
gid_t gid = 0;
unsigned off;
rule_tmp->token_cur++;
}
-static int sort_token(struct udev_rules *rules, struct rule_tmp *rule_tmp) {
+static int sort_token(UdevRules *rules, struct rule_tmp *rule_tmp) {
unsigned i;
unsigned start = 0;
unsigned end = rule_tmp->token_cur;
#define LOG_RULE_DEBUG(fmt, ...) LOG_RULE_FULL(LOG_DEBUG, fmt, ##__VA_ARGS__)
#define LOG_AND_RETURN(fmt, ...) { LOG_RULE_ERROR(fmt, __VA_ARGS__); return; }
-static void add_rule(struct udev_rules *rules, char *line,
+static void add_rule(UdevRules *rules, char *line,
const char *filename, unsigned filename_off, unsigned lineno) {
char *linepos;
const char *attr;
LOG_RULE_ERROR("Failed to add rule token");
}
-static int parse_file(struct udev_rules *rules, const char *filename) {
+static int parse_file(UdevRules *rules, const char *filename) {
_cleanup_fclose_ FILE *f = NULL;
unsigned first_token;
unsigned filename_off;
return 0;
}
-int udev_rules_new(struct udev_rules **ret_rules, ResolveNameTiming resolve_name_timing) {
- _cleanup_(udev_rules_freep) struct udev_rules *rules = NULL;
+int udev_rules_new(UdevRules **ret_rules, ResolveNameTiming resolve_name_timing) {
+ _cleanup_(udev_rules_freep) UdevRules *rules = NULL;
_cleanup_strv_free_ char **files = NULL;
char **f;
int r;
assert(resolve_name_timing >= 0 && resolve_name_timing < _RESOLVE_NAME_TIMING_MAX);
- rules = new(struct udev_rules, 1);
+ rules = new(UdevRules, 1);
if (!rules)
return -ENOMEM;
- *rules = (struct udev_rules) {
+ *rules = (UdevRules) {
.resolve_name_timing = resolve_name_timing,
};
return 0;
}
-struct udev_rules *udev_rules_free(struct udev_rules *rules) {
+UdevRules *udev_rules_free(UdevRules *rules) {
if (!rules)
return NULL;
free(rules->tokens);
return mfree(rules);
}
-bool udev_rules_check_timestamp(struct udev_rules *rules) {
+bool udev_rules_check_timestamp(UdevRules *rules) {
if (!rules)
return false;
return paths_check_timestamp(rules_dirs, &rules->dirs_ts_usec, true);
}
-static int match_key(struct udev_rules *rules, struct token *token, const char *val) {
+static int match_key(UdevRules *rules, struct token *token, const char *val) {
char *key_value = rules_str(rules, token->key.value_off);
char *pos;
bool match = false;
return -1;
}
-static int match_attr(struct udev_rules *rules, sd_device *dev, struct udev_event *event, struct token *cur) {
+static int match_attr(UdevRules *rules, sd_device *dev, struct udev_event *event, struct token *cur) {
char nbuf[UTIL_NAME_SIZE], vbuf[UTIL_NAME_SIZE];
const char *name, *value;
size_t len;
};
int udev_rules_apply_to_event(
- struct udev_rules *rules,
+ UdevRules *rules,
struct udev_event *event,
usec_t timeout_usec,
Hashmap *properties_list) {
return 0;
}
-int udev_rules_apply_static_dev_perms(struct udev_rules *rules) {
+int udev_rules_apply_static_dev_perms(UdevRules *rules) {
struct token *cur;
struct token *rule;
uid_t uid = 0;
};
/* udev-rules.c */
-struct udev_rules;
-int udev_rules_new(struct udev_rules **ret_rules, ResolveNameTiming resolve_name_timing);
-struct udev_rules *udev_rules_free(struct udev_rules *rules);
+typedef struct UdevRules UdevRules;
-bool udev_rules_check_timestamp(struct udev_rules *rules);
-int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event,
+int udev_rules_new(UdevRules **ret_rules, ResolveNameTiming resolve_name_timing);
+UdevRules *udev_rules_free(UdevRules *rules);
+
+bool udev_rules_check_timestamp(UdevRules *rules);
+int udev_rules_apply_to_event(UdevRules *rules, struct udev_event *event,
usec_t timeout_usec,
Hashmap *properties_list);
-int udev_rules_apply_static_dev_perms(struct udev_rules *rules);
+int udev_rules_apply_static_dev_perms(UdevRules *rules);
static inline usec_t udev_warn_timeout(usec_t timeout_usec) {
return DIV_ROUND_UP(timeout_usec, 3);
int udev_event_execute_rules(struct udev_event *event,
usec_t timeout_usec,
Hashmap *properties_list,
- struct udev_rules *rules);
+ UdevRules *rules);
void udev_event_execute_run(struct udev_event *event, usec_t timeout_usec);
/* Cleanup functions */
DEFINE_TRIVIAL_CLEANUP_FUNC(struct udev_event*, udev_event_free);
-DEFINE_TRIVIAL_CLEANUP_FUNC(struct udev_rules*, udev_rules_free);
+DEFINE_TRIVIAL_CLEANUP_FUNC(UdevRules*, udev_rules_free);