Lines Matching refs:dr
51 static void rulespec_instr(struct devfs_rule *dr, const char *str,
53 static void rulespec_intok(struct devfs_rule *dr, int ac, char **av,
55 static void rulespec_outfp(FILE *fp, struct devfs_rule *dr);
111 struct devfs_rule dr; in rule_add() local
119 rulespec_intok(&dr, ac - 1, av + 1, in_rsnum); in rule_add()
120 rv = ioctl(mpfd, DEVFSIO_RADD, &dr); in rule_add()
130 struct devfs_rule dr; in rule_apply() local
141 rulespec_intok(&dr, ac - 1, av + 1, in_rsnum); in rule_apply()
142 rv = ioctl(mpfd, DEVFSIO_RAPPLY, &dr); in rule_apply()
186 struct devfs_rule dr; in rule_delset() local
191 memset(&dr, '\0', sizeof(dr)); in rule_delset()
192 dr.dr_magic = DEVFS_MAGIC; in rule_delset()
193 dr.dr_id = mkrid(in_rsnum, 0); in rule_delset()
194 while (ioctl(mpfd, DEVFSIO_RGETNEXT, &dr) != -1) { in rule_delset()
195 rv = ioctl(mpfd, DEVFSIO_RDEL, &dr.dr_id); in rule_delset()
207 struct devfs_rule dr; in rule_show() local
211 memset(&dr, '\0', sizeof(dr)); in rule_show()
212 dr.dr_magic = DEVFS_MAGIC; in rule_show()
215 dr.dr_id = mkrid(in_rsnum, rnum - 1); in rule_show()
216 rv = ioctl(mpfd, DEVFSIO_RGETNEXT, &dr); in rule_show()
219 if (rid2rn(dr.dr_id) == rnum) in rule_show()
220 rulespec_outfp(stdout, &dr); in rule_show()
222 dr.dr_id = mkrid(in_rsnum, 0); in rule_show()
223 while (ioctl(mpfd, DEVFSIO_RGETNEXT, &dr) != -1) in rule_show()
224 rulespec_outfp(stdout, &dr); in rule_show()
273 struct devfs_rule dr; in rulespec_infp() local
279 rulespec_instr(&dr, line, rsnum); in rulespec_infp()
280 rv = ioctl(mpfd, request, &dr); in rulespec_infp()
293 rulespec_instr(struct devfs_rule *dr, const char *str, devfs_rsnum rsnum) in rulespec_instr() argument
301 rulespec_intok(dr, ac, av, rsnum); in rulespec_instr()
310 rulespec_intok(struct devfs_rule *dr, int ac __unused, char **av, in rulespec_intok() argument
319 memset(dr, '\0', sizeof(*dr)); in rulespec_intok()
345 dr->dr_dswflags |= is->i; in rulespec_intok()
350 dr->dr_icond |= DRC_DSWFLAGS; in rulespec_intok()
355 if (strlcpy(dr->dr_pathptrn, av[1], DEVFS_MAXPTRNLEN) in rulespec_intok()
358 dr->dr_icond |= DRC_PATHPTRN; in rulespec_intok()
365 dr->dr_iacts |= DRA_BACTS; in rulespec_intok()
366 dr->dr_bacts |= DRB_HIDE; in rulespec_intok()
369 dr->dr_iacts |= DRA_BACTS; in rulespec_intok()
370 dr->dr_bacts |= DRB_UNHIDE; in rulespec_intok()
375 dr->dr_iacts |= DRA_UID; in rulespec_intok()
378 dr->dr_uid = pw->pw_uid; in rulespec_intok()
380 dr->dr_uid = eatoi(av[1]); /* XXX overflow */ in rulespec_intok()
385 dr->dr_iacts |= DRA_GID; in rulespec_intok()
388 dr->dr_gid = gr->gr_gid; in rulespec_intok()
390 dr->dr_gid = eatoi(av[1]); /* XXX overflow */ in rulespec_intok()
395 dr->dr_iacts |= DRA_MODE; in rulespec_intok()
399 dr->dr_mode = getmode(set, 0); in rulespec_intok()
404 dr->dr_iacts |= DRA_INCSET; in rulespec_intok()
405 dr->dr_incset = eatonum(av[1]); in rulespec_intok()
411 dr->dr_id = mkrid(rsnum, rnum); in rulespec_intok()
412 dr->dr_magic = DEVFS_MAGIC; in rulespec_intok()
421 rulespec_outfp(FILE *fp, struct devfs_rule *dr) in rulespec_outfp() argument
427 fprintf(fp, "%d", rid2rn(dr->dr_id)); in rulespec_outfp()
429 if (dr->dr_icond & DRC_DSWFLAGS) in rulespec_outfp()
431 if (dr->dr_dswflags & is->i) in rulespec_outfp()
433 if (dr->dr_icond & DRC_PATHPTRN) in rulespec_outfp()
434 fprintf(fp, " path %s", dr->dr_pathptrn); in rulespec_outfp()
436 if (dr->dr_iacts & DRA_BACTS) { in rulespec_outfp()
437 if (dr->dr_bacts & DRB_HIDE) in rulespec_outfp()
439 if (dr->dr_bacts & DRB_UNHIDE) in rulespec_outfp()
442 if (dr->dr_iacts & DRA_UID) { in rulespec_outfp()
443 pw = getpwuid(dr->dr_uid); in rulespec_outfp()
445 fprintf(fp, " user %d", dr->dr_uid); in rulespec_outfp()
449 if (dr->dr_iacts & DRA_GID) { in rulespec_outfp()
450 gr = getgrgid(dr->dr_gid); in rulespec_outfp()
452 fprintf(fp, " group %d", dr->dr_gid); in rulespec_outfp()
456 if (dr->dr_iacts & DRA_MODE) in rulespec_outfp()
457 fprintf(fp, " mode %o", dr->dr_mode); in rulespec_outfp()
458 if (dr->dr_iacts & DRA_INCSET) in rulespec_outfp()
459 fprintf(fp, " include %d", dr->dr_incset); in rulespec_outfp()