Lines Matching refs:dk
105 static void devfs_rule_applyde_recursive(struct devfs_krule *dk,
107 static void devfs_rule_applydm(struct devfs_krule *dk, struct devfs_mount *dm);
114 static int devfs_rule_match(struct devfs_krule *dk, struct devfs_mount *dm,
116 static int devfs_rule_matchpath(struct devfs_krule *dk, struct devfs_mount *dm,
118 static void devfs_rule_run(struct devfs_krule *dk, struct devfs_mount *dm,
165 struct devfs_krule *dk; in devfs_rules_ioctl() local
192 dk = devfs_rule_byid(dr->dr_id); in devfs_rules_ioctl()
193 if (dk != NULL) { in devfs_rules_ioctl()
228 dk = malloc(sizeof(*dk), M_TEMP, M_WAITOK | M_ZERO); in devfs_rules_ioctl()
229 memcpy(&dk->dk_rule, dr, sizeof(*dr)); in devfs_rules_ioctl()
230 devfs_rule_applydm(dk, dm); in devfs_rules_ioctl()
231 free(dk, M_TEMP); in devfs_rules_ioctl()
236 dk = devfs_rule_byid(rid); in devfs_rules_ioctl()
237 if (dk == NULL) { in devfs_rules_ioctl()
241 devfs_rule_applydm(dk, dm); in devfs_rules_ioctl()
246 dk = devfs_rule_byid(rid); in devfs_rules_ioctl()
247 if (dk == NULL) { in devfs_rules_ioctl()
251 ds = dk->dk_ruleset; in devfs_rules_ioctl()
252 error = devfs_rule_delete(dk); in devfs_rules_ioctl()
273 TAILQ_FOREACH(dk, &ds->ds_rules, dk_list) { in devfs_rules_ioctl()
274 if (rid2rn(dk->dk_rule.dr_id) > rnum) in devfs_rules_ioctl()
277 if (dk == NULL) { in devfs_rules_ioctl()
281 memcpy(dr, &dk->dk_rule, sizeof(*dr)); in devfs_rules_ioctl()
345 devfs_rule_applyde_recursive(struct devfs_krule *dk, struct devfs_mount *dm, in devfs_rule_applyde_recursive() argument
351 devfs_rule_applyde_recursive(dk, dm, de2); in devfs_rule_applyde_recursive()
352 devfs_rule_run(dk, dm, de, devfs_rule_depth); in devfs_rule_applyde_recursive()
359 devfs_rule_applydm(struct devfs_krule *dk, struct devfs_mount *dm) in devfs_rule_applydm() argument
362 devfs_rule_applyde_recursive(dk, dm, dm->dm_rootdir); in devfs_rule_applydm()
372 struct devfs_krule *dk; in devfs_rule_autonumber() local
375 dk = TAILQ_LAST(&ds->ds_rules, rulehead); in devfs_rule_autonumber()
376 if (dk == NULL) in devfs_rule_autonumber()
379 *rnump = rid2rn(dk->dk_rule.dr_id) + 100; in devfs_rule_autonumber()
381 if (*rnump < rid2rn(dk->dk_rule.dr_id)) in devfs_rule_autonumber()
396 struct devfs_krule *dk; in devfs_rule_byid() local
403 TAILQ_FOREACH(dk, &ds->ds_rules, dk_list) { in devfs_rule_byid()
404 if (rid2rn(dk->dk_rule.dr_id) == rn) in devfs_rule_byid()
405 return (dk); in devfs_rule_byid()
406 else if (rid2rn(dk->dk_rule.dr_id) > rn) in devfs_rule_byid()
417 devfs_rule_delete(struct devfs_krule *dk) in devfs_rule_delete() argument
421 if (dk->dk_rule.dr_iacts & DRA_INCSET) { in devfs_rule_delete()
422 ds = devfs_ruleset_bynum(dk->dk_rule.dr_incset); in devfs_rule_delete()
427 ds = dk->dk_ruleset; in devfs_rule_delete()
428 TAILQ_REMOVE(&ds->ds_rules, dk, dk_list); in devfs_rule_delete()
430 free(dk, M_DEVFSRULE); in devfs_rule_delete()
478 struct devfs_krule *dk; in devfs_rule_insert() local
510 dk = malloc(sizeof(*dk), M_DEVFSRULE, M_WAITOK | M_ZERO); in devfs_rule_insert()
511 dk->dk_ruleset = ds; in devfs_rule_insert()
515 memcpy(&dk->dk_rule, dr, sizeof(*dr)); in devfs_rule_insert()
516 dk->dk_rule.dr_id = mkrid(rid2rsn(dk->dk_rule.dr_id), dkrn); in devfs_rule_insert()
520 TAILQ_INSERT_BEFORE(k1, dk, dk_list); in devfs_rule_insert()
525 TAILQ_INSERT_TAIL(&ds->ds_rules, dk, dk_list); in devfs_rule_insert()
534 devfs_rule_match(struct devfs_krule *dk, struct devfs_mount *dm, in devfs_rule_match() argument
537 struct devfs_rule *dr = &dk->dk_rule; in devfs_rule_match()
568 if (!devfs_rule_matchpath(dk, dm, de)) in devfs_rule_match()
578 devfs_rule_matchpath(struct devfs_krule *dk, struct devfs_mount *dm, in devfs_rule_matchpath() argument
581 struct devfs_rule *dr = &dk->dk_rule; in devfs_rule_matchpath()
608 devfs_rule_run(struct devfs_krule *dk, struct devfs_mount *dm, in devfs_rule_run() argument
611 struct devfs_rule *dr = &dk->dk_rule; in devfs_rule_run()
614 if (!devfs_rule_match(dk, dm, de)) in devfs_rule_run()
639 ds = devfs_ruleset_bynum(dk->dk_rule.dr_incset); in devfs_rule_run()
653 struct devfs_krule *dk; in devfs_ruleset_applyde() local
655 TAILQ_FOREACH(dk, &ds->ds_rules, dk_list) in devfs_ruleset_applyde()
656 devfs_rule_run(dk, dm, de, depth); in devfs_ruleset_applyde()
665 struct devfs_krule *dk; in devfs_ruleset_applydm() local
683 TAILQ_FOREACH(dk, &ds->ds_rules, dk_list) in devfs_ruleset_applydm()
684 devfs_rule_applydm(dk, dm); in devfs_ruleset_applydm()