Lines Matching refs:dr

53 static void rulespec_instr(struct devfs_rule *dr, const char *str,
55 static void rulespec_intok(struct devfs_rule *dr, int ac, char **av,
57 static void rulespec_outfp(FILE *fp, struct devfs_rule *dr);
113 struct devfs_rule dr; in rule_add() local
121 rulespec_intok(&dr, ac - 1, av + 1, in_rsnum); in rule_add()
122 rv = ioctl(mpfd, DEVFSIO_RADD, &dr); in rule_add()
132 struct devfs_rule dr; in rule_apply() local
143 rulespec_intok(&dr, ac - 1, av + 1, in_rsnum); in rule_apply()
144 rv = ioctl(mpfd, DEVFSIO_RAPPLY, &dr); in rule_apply()
188 struct devfs_rule dr; in rule_delset() local
193 memset(&dr, '\0', sizeof(dr)); in rule_delset()
194 dr.dr_magic = DEVFS_MAGIC; in rule_delset()
195 dr.dr_id = mkrid(in_rsnum, 0); in rule_delset()
196 while (ioctl(mpfd, DEVFSIO_RGETNEXT, &dr) != -1) { in rule_delset()
197 rv = ioctl(mpfd, DEVFSIO_RDEL, &dr.dr_id); in rule_delset()
209 struct devfs_rule dr; in rule_show() local
213 memset(&dr, '\0', sizeof(dr)); in rule_show()
214 dr.dr_magic = DEVFS_MAGIC; in rule_show()
217 dr.dr_id = mkrid(in_rsnum, rnum - 1); in rule_show()
218 rv = ioctl(mpfd, DEVFSIO_RGETNEXT, &dr); in rule_show()
221 if (rid2rn(dr.dr_id) == rnum) in rule_show()
222 rulespec_outfp(stdout, &dr); in rule_show()
224 dr.dr_id = mkrid(in_rsnum, 0); in rule_show()
225 while (ioctl(mpfd, DEVFSIO_RGETNEXT, &dr) != -1) in rule_show()
226 rulespec_outfp(stdout, &dr); in rule_show()
275 struct devfs_rule dr; in rulespec_infp() local
281 rulespec_instr(&dr, line, rsnum); in rulespec_infp()
282 rv = ioctl(mpfd, request, &dr); in rulespec_infp()
295 rulespec_instr(struct devfs_rule *dr, const char *str, devfs_rsnum rsnum) in rulespec_instr() argument
303 rulespec_intok(dr, ac, av, rsnum); in rulespec_instr()
312 rulespec_intok(struct devfs_rule *dr, int ac __unused, char **av, in rulespec_intok() argument
321 memset(dr, '\0', sizeof(*dr)); in rulespec_intok()
347 dr->dr_dswflags |= is->i; in rulespec_intok()
352 dr->dr_icond |= DRC_DSWFLAGS; in rulespec_intok()
357 if (strlcpy(dr->dr_pathptrn, av[1], DEVFS_MAXPTRNLEN) in rulespec_intok()
360 dr->dr_icond |= DRC_PATHPTRN; in rulespec_intok()
367 dr->dr_iacts |= DRA_BACTS; in rulespec_intok()
368 dr->dr_bacts |= DRB_HIDE; in rulespec_intok()
371 dr->dr_iacts |= DRA_BACTS; in rulespec_intok()
372 dr->dr_bacts |= DRB_UNHIDE; in rulespec_intok()
377 dr->dr_iacts |= DRA_UID; in rulespec_intok()
380 dr->dr_uid = pw->pw_uid; in rulespec_intok()
382 dr->dr_uid = eatoi(av[1]); /* XXX overflow */ in rulespec_intok()
387 dr->dr_iacts |= DRA_GID; in rulespec_intok()
390 dr->dr_gid = gr->gr_gid; in rulespec_intok()
392 dr->dr_gid = eatoi(av[1]); /* XXX overflow */ in rulespec_intok()
397 dr->dr_iacts |= DRA_MODE; in rulespec_intok()
401 dr->dr_mode = getmode(set, 0); in rulespec_intok()
406 dr->dr_iacts |= DRA_INCSET; in rulespec_intok()
407 dr->dr_incset = eatonum(av[1]); in rulespec_intok()
413 dr->dr_id = mkrid(rsnum, rnum); in rulespec_intok()
414 dr->dr_magic = DEVFS_MAGIC; in rulespec_intok()
423 rulespec_outfp(FILE *fp, struct devfs_rule *dr) in rulespec_outfp() argument
429 fprintf(fp, "%d", rid2rn(dr->dr_id)); in rulespec_outfp()
431 if (dr->dr_icond & DRC_DSWFLAGS) in rulespec_outfp()
433 if (dr->dr_dswflags & is->i) in rulespec_outfp()
435 if (dr->dr_icond & DRC_PATHPTRN) in rulespec_outfp()
436 fprintf(fp, " path %s", dr->dr_pathptrn); in rulespec_outfp()
438 if (dr->dr_iacts & DRA_BACTS) { in rulespec_outfp()
439 if (dr->dr_bacts & DRB_HIDE) in rulespec_outfp()
441 if (dr->dr_bacts & DRB_UNHIDE) in rulespec_outfp()
444 if (dr->dr_iacts & DRA_UID) { in rulespec_outfp()
445 pw = getpwuid(dr->dr_uid); in rulespec_outfp()
447 fprintf(fp, " user %d", dr->dr_uid); in rulespec_outfp()
451 if (dr->dr_iacts & DRA_GID) { in rulespec_outfp()
452 gr = getgrgid(dr->dr_gid); in rulespec_outfp()
454 fprintf(fp, " group %d", dr->dr_gid); in rulespec_outfp()
458 if (dr->dr_iacts & DRA_MODE) in rulespec_outfp()
459 fprintf(fp, " mode %o", dr->dr_mode); in rulespec_outfp()
460 if (dr->dr_iacts & DRA_INCSET) in rulespec_outfp()
461 fprintf(fp, " include %d", dr->dr_incset); in rulespec_outfp()