Lines Matching refs:set

84  * bits) followed by a '+' (set bits).
89 const BITCMD *set;
92 set = (const BITCMD *)bbox;
94 for (value = 0;; set++)
95 switch(set->cmd) {
112 common: if (set->cmd2 & CMD2_CLR) {
114 (set->cmd2 & CMD2_SET) ? S_IRWXO : value;
115 if (set->cmd2 & CMD2_UBITS)
116 newmode &= ~((clrval<<6) & set->bits);
117 if (set->cmd2 & CMD2_GBITS)
118 newmode &= ~((clrval<<3) & set->bits);
119 if (set->cmd2 & CMD2_OBITS)
120 newmode &= ~(clrval & set->bits);
122 if (set->cmd2 & CMD2_SET) {
123 if (set->cmd2 & CMD2_UBITS)
124 newmode |= (value<<6) & set->bits;
125 if (set->cmd2 & CMD2_GBITS)
126 newmode |= (value<<3) & set->bits;
127 if (set->cmd2 & CMD2_OBITS)
128 newmode |= value & set->bits;
133 newmode |= set->bits;
137 newmode &= ~set->bits;
142 newmode |= set->bits;
155 if (set >= endset) { \
161 set = newset + (set - saveset); \
165 set = addcmd(set, (mode_t)(a), (mode_t)(b), (mode_t)(c), (d))
174 BITCMD *set, *saveset, *endset;
187 * Flip the bits, we want what's not set.
193 if ((set = malloc(setlen * sizeof(BITCMD))) == NULL)
195 saveset = set;
196 endset = set + (setlen - 2);
217 set->cmd = 0;
222 * Build list of structures to set/clear/copy bits as described by
261 /* If only "other" bits ignore set-id. */
327 set->cmd = 0;
356 * security.bsd.unprivileged_proc_debug is set to 0.
375 addcmd(BITCMD *set, mode_t op, mode_t who, mode_t oparg, mode_t mask)
379 set->cmd = '-';
380 set->bits = who ? who : STANDARD_BITS;
381 set++;
388 set->cmd = op;
389 set->bits = (who ? who : mask) & oparg;
395 set->cmd = op;
397 set->cmd2 = ((who & S_IRUSR) ? CMD2_UBITS : 0) |
400 set->bits = (mode_t)~0;
402 set->cmd2 = CMD2_UBITS | CMD2_GBITS | CMD2_OBITS;
403 set->bits = mask;
407 set->cmd2 |= CMD2_SET;
409 set->cmd2 |= CMD2_CLR;
411 set->cmd2 |= CMD2_SET|CMD2_CLR;
414 return (set + 1);
419 dumpmode(BITCMD *set)
421 for (; set->cmd; ++set)
423 set->cmd, set->bits, set->cmd2 ? " cmd2:" : "",
424 set->cmd2 & CMD2_CLR ? " CLR" : "",
425 set->cmd2 & CMD2_SET ? " SET" : "",
426 set->cmd2 & CMD2_UBITS ? " UBITS" : "",
427 set->cmd2 & CMD2_GBITS ? " GBITS" : "",
428 set->cmd2 & CMD2_OBITS ? " OBITS" : "");
439 compress_mode(BITCMD *set)
444 for (nset = set;;) {
447 *set++ = *nset++;
467 set->cmd = '-';
468 set->cmd2 = 0;
469 set->bits = clrbits;
470 set++;
473 set->cmd = '+';
474 set->cmd2 = 0;
475 set->bits = setbits;
476 set++;
479 set->cmd = 'X';
480 set->cmd2 = 0;
481 set->bits = Xbits;
482 set++;