Home | History | Annotate | Download | only in gen

Lines Matching refs:set

90  * bits) followed by a '+' (set bits).
95 const BITCMD *set;
100 set = (const BITCMD *)bbox;
102 for (value = 0;; set++)
103 switch(set->cmd) {
120 common: if (set->cmd2 & CMD2_CLR) {
122 (set->cmd2 & CMD2_SET) ? S_IRWXO : value;
123 if (set->cmd2 & CMD2_UBITS)
124 newmode &= ~((clrval<<6) & set->bits);
125 if (set->cmd2 & CMD2_GBITS)
126 newmode &= ~((clrval<<3) & set->bits);
127 if (set->cmd2 & CMD2_OBITS)
128 newmode &= ~(clrval & set->bits);
130 if (set->cmd2 & CMD2_SET) {
131 if (set->cmd2 & CMD2_UBITS)
132 newmode |= (value<<6) & set->bits;
133 if (set->cmd2 & CMD2_GBITS)
134 newmode |= (value<<3) & set->bits;
135 if (set->cmd2 & CMD2_OBITS)
136 newmode |= value & set->bits;
141 newmode |= set->bits;
145 newmode &= ~set->bits;
150 newmode |= set->bits;
163 if (set >= endset) { \
170 set = newset + (set - saveset); \
174 set = addcmd(set, (mode_t)(a), (mode_t)(b), (mode_t)(c), (d)); \
184 BITCMD *set, *saveset, *endset;
198 * Flip the bits, we want what's not set. Since it's possible that
209 set = NULL;
210 errno = reallocarr(&set, setlen, sizeof(*set));
213 saveset = set;
214 endset = set + (setlen - 2);
235 set->cmd = 0;
240 * Build list of structures to set/clear/copy bits as described by
280 * only "other" bits ignore set-id.
288 * only "other" bits ignore set-id.
350 set->cmd = 0;
369 addcmd(BITCMD *set, mode_t op, mode_t who, mode_t oparg, mode_t mask)
372 _DIAGASSERT(set != NULL);
376 set->cmd = '-';
377 set->bits = who ? who : STANDARD_BITS;
378 set++;
385 set->cmd = op;
386 set->bits = (who ? who : mask) & oparg;
392 set->cmd = op;
394 set->cmd2 = ((who & S_IRUSR) ? CMD2_UBITS : 0) |
397 set->bits = (mode_t)~0;
399 set->cmd2 = CMD2_UBITS | CMD2_GBITS | CMD2_OBITS;
400 set->bits = mask;
404 set->cmd2 |= CMD2_SET;
406 set->cmd2 |= CMD2_CLR;
408 set->cmd2 |= CMD2_SET|CMD2_CLR;
411 return (set + 1);
416 dumpmode(BITCMD *set)
419 _DIAGASSERT(set != NULL);
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 _DIAGASSERT(set != NULL);
446 for (nset = set;;) {
449 *set++ = *nset++;
469 set->cmd = '-';
470 set->cmd2 = 0;
471 set->bits = clrbits;
472 set++;
475 set->cmd = '+';
476 set->cmd2 = 0;
477 set->bits = setbits;
478 set++;
481 set->cmd = 'X';
482 set->cmd2 = 0;
483 set->bits = Xbits;
484 set++;