Lines Matching refs:dr
50 static void rulespec_instr(struct devfs_rule *dr, const char *str,
52 static void rulespec_intok(struct devfs_rule *dr, int ac, char **av,
54 static void rulespec_outfp(FILE *fp, struct devfs_rule *dr);
110 struct devfs_rule dr; in rule_add() local
118 rulespec_intok(&dr, ac - 1, av + 1, in_rsnum); in rule_add()
119 rv = ioctl(mpfd, DEVFSIO_RADD, &dr); in rule_add()
129 struct devfs_rule dr; in rule_apply() local
140 rulespec_intok(&dr, ac - 1, av + 1, in_rsnum); in rule_apply()
141 rv = ioctl(mpfd, DEVFSIO_RAPPLY, &dr); in rule_apply()
185 struct devfs_rule dr; in rule_delset() local
190 memset(&dr, '\0', sizeof(dr)); in rule_delset()
191 dr.dr_magic = DEVFS_MAGIC; in rule_delset()
192 dr.dr_id = mkrid(in_rsnum, 0); in rule_delset()
193 while (ioctl(mpfd, DEVFSIO_RGETNEXT, &dr) != -1) { in rule_delset()
194 rv = ioctl(mpfd, DEVFSIO_RDEL, &dr.dr_id); in rule_delset()
206 struct devfs_rule dr; in rule_show() local
210 memset(&dr, '\0', sizeof(dr)); in rule_show()
211 dr.dr_magic = DEVFS_MAGIC; in rule_show()
214 dr.dr_id = mkrid(in_rsnum, rnum - 1); in rule_show()
215 rv = ioctl(mpfd, DEVFSIO_RGETNEXT, &dr); in rule_show()
218 if (rid2rn(dr.dr_id) == rnum) in rule_show()
219 rulespec_outfp(stdout, &dr); in rule_show()
221 dr.dr_id = mkrid(in_rsnum, 0); in rule_show()
222 while (ioctl(mpfd, DEVFSIO_RGETNEXT, &dr) != -1) in rule_show()
223 rulespec_outfp(stdout, &dr); in rule_show()
272 struct devfs_rule dr; in rulespec_infp() local
278 rulespec_instr(&dr, line, rsnum); in rulespec_infp()
279 rv = ioctl(mpfd, request, &dr); in rulespec_infp()
292 rulespec_instr(struct devfs_rule *dr, const char *str, devfs_rsnum rsnum) in rulespec_instr() argument
300 rulespec_intok(dr, ac, av, rsnum); in rulespec_instr()
309 rulespec_intok(struct devfs_rule *dr, int ac __unused, char **av, in rulespec_intok() argument
318 memset(dr, '\0', sizeof(*dr)); in rulespec_intok()
344 dr->dr_dswflags |= is->i; in rulespec_intok()
349 dr->dr_icond |= DRC_DSWFLAGS; in rulespec_intok()
354 if (strlcpy(dr->dr_pathptrn, av[1], DEVFS_MAXPTRNLEN) in rulespec_intok()
357 dr->dr_icond |= DRC_PATHPTRN; in rulespec_intok()
364 dr->dr_iacts |= DRA_BACTS; in rulespec_intok()
365 dr->dr_bacts |= DRB_HIDE; in rulespec_intok()
368 dr->dr_iacts |= DRA_BACTS; in rulespec_intok()
369 dr->dr_bacts |= DRB_UNHIDE; in rulespec_intok()
374 dr->dr_iacts |= DRA_UID; in rulespec_intok()
377 dr->dr_uid = pw->pw_uid; in rulespec_intok()
379 dr->dr_uid = eatoi(av[1]); /* XXX overflow */ in rulespec_intok()
384 dr->dr_iacts |= DRA_GID; in rulespec_intok()
387 dr->dr_gid = gr->gr_gid; in rulespec_intok()
389 dr->dr_gid = eatoi(av[1]); /* XXX overflow */ in rulespec_intok()
394 dr->dr_iacts |= DRA_MODE; in rulespec_intok()
398 dr->dr_mode = getmode(set, 0); in rulespec_intok()
403 dr->dr_iacts |= DRA_INCSET; in rulespec_intok()
404 dr->dr_incset = eatonum(av[1]); in rulespec_intok()
410 dr->dr_id = mkrid(rsnum, rnum); in rulespec_intok()
411 dr->dr_magic = DEVFS_MAGIC; in rulespec_intok()
420 rulespec_outfp(FILE *fp, struct devfs_rule *dr) in rulespec_outfp() argument
426 fprintf(fp, "%d", rid2rn(dr->dr_id)); in rulespec_outfp()
428 if (dr->dr_icond & DRC_DSWFLAGS) in rulespec_outfp()
430 if (dr->dr_dswflags & is->i) in rulespec_outfp()
432 if (dr->dr_icond & DRC_PATHPTRN) in rulespec_outfp()
433 fprintf(fp, " path %s", dr->dr_pathptrn); in rulespec_outfp()
435 if (dr->dr_iacts & DRA_BACTS) { in rulespec_outfp()
436 if (dr->dr_bacts & DRB_HIDE) in rulespec_outfp()
438 if (dr->dr_bacts & DRB_UNHIDE) in rulespec_outfp()
441 if (dr->dr_iacts & DRA_UID) { in rulespec_outfp()
442 pw = getpwuid(dr->dr_uid); in rulespec_outfp()
444 fprintf(fp, " user %d", dr->dr_uid); in rulespec_outfp()
448 if (dr->dr_iacts & DRA_GID) { in rulespec_outfp()
449 gr = getgrgid(dr->dr_gid); in rulespec_outfp()
451 fprintf(fp, " group %d", dr->dr_gid); in rulespec_outfp()
455 if (dr->dr_iacts & DRA_MODE) in rulespec_outfp()
456 fprintf(fp, " mode %o", dr->dr_mode); in rulespec_outfp()
457 if (dr->dr_iacts & DRA_INCSET) in rulespec_outfp()
458 fprintf(fp, " include %d", dr->dr_incset); in rulespec_outfp()