SF
{ SF(SQ_EXCL), "Exclusive access to inner perimeter" },
{ SF(SQ_BLOCKED), "qprocsoff in progress" },
{ SF(SQ_FROZEN), "freezestr in progress" },
{ SF(SQ_WRITER), "qwriter(OUTER) pending or running" },
{ SF(SQ_MESSAGES), "There are messages on syncq" },
{ SF(SQ_WANTWAKEUP) "Thread waiting on sq_wait" },
{ SF(SQ_WANTEXWAKEUP), "Thread waiting on sq_exwait" },
{ SF(SQ_EVENTS), "There are events on syncq" },
{ SF(SQ_CIPUT), "Concurrent inner put procedure" },
{ SF(SQ_CISVC), "Concurrent inner svc procedure" },
{ SF(SQ_CIOC), "Concurrent inner open/close" },
{ SF(SQ_CICB), "Concurrent inner callback" },
{ SF(SQ_COPUT), "Concurrent outer put procedure" },
{ SF(SQ_COSVC), "Concurrent outer svc procedure" },
{ SF(SQ_COOC), "Concurrent outer open/close" },
{ SF(SQ_COCB), "Concurrent outer callback" },
{ SF(IOCWAIT), "someone is doing an ioctl" },
{ SF(RSLEEP), "someone wants to read/recv msg" },
{ SF(WSLEEP), "someone wants to write" },
{ SF(STRPRI), "an M_PCPROTO is at stream head" },
{ SF(STRHUP), "device has vanished" },
{ SF(STWOPEN), "waiting for 1st open" },
{ SF(STPLEX), "stream is being multiplexed" },
{ SF(STRISTTY), "stream is a terminal" },
{ SF(STRGETINPROG), "(k)strgetmsg is running" },
{ SF(IOCWAITNE), "STR_NOERROR ioctl running" },
{ SF(STRDERR), "fatal read error from M_ERROR" },
{ SF(STWRERR), "fatal write error from M_ERROR" },
{ SF(STRDERRNONPERSIST), "nonpersistent read errors" },
{ SF(STWRERRNONPERSIST), "nonpersistent write errors" },
{ SF(STRCLOSE), "wait for a close to complete" },
{ SF(SNDMREAD), "used for read notification" },
{ SF(OLDNDELAY), "use old NDELAY TTY semantics" },
{ SF(STRXPG4TTY), "Use XPG4 TTY semantics" },
{ SF(0x00040000), "unused" },
{ SF(STRTOSTOP), "block background writes" },
{ SF(STRCMDWAIT), "someone is doing an _I_CMD" },
{ SF(0x00200000), "unused" },
{ SF(STRMOUNT), "stream is mounted" },
{ SF(STRNOTATMARK), "Not at mark (when empty read q)" },
{ SF(STRDELIM), "generate delimited messages" },
{ SF(STRATMARK), "at mark (due to MSGMARKNEXT)" },
{ SF(STZCNOTIFY), "wait for zerocopy mblk to be acked" },
{ SF(STRPLUMB), "stream plumbing changes in progress" },
{ SF(STREOF), "End-of-file indication" },
{ SF(STREOPENFAIL), "re-open has failed" },
{ SF(STRMATE), "this stream is a mate" },
{ SF(STRHASLINKS), "there are I_LINKs under this stream" },
{ SF(MSGMARK), "last byte of message is marked" },
{ SF(MSGNOLOOP), "don't loop message to write side" },
{ SF(MSGDELIM), "message is delimited" },
{ SF(0x08), "unused" },
{ SF(MSGMARKNEXT), "Private: b_next's first byte marked" },
{ SF(MSGNOTMARKNEXT), "Private: ... not marked" },
{ SF(QENAB), "Queue is already enabled to run" },
{ SF(QWANTR), "Someone wants to read Q" },
{ SF(QWANTW), "Someone wants to write Q" },
{ SF(QFULL), "Q is considered full" },
{ SF(QREADR), "This is the reader (first) Q" },
{ SF(QUSE), "This queue in use (allocation)" },
{ SF(QNOENB), "Don't enable Q via putq" },
{ SF(QWANTRMQSYNC), "Want to remove sync stream Q" },
{ SF(QBACK), "queue has been back-enabled" },
{ SF(0x00000200), "unused (was QHLIST)" },
{ SF(0x00000400), "unused (was QUNSAFE)" },
{ SF(QPAIR), "per queue-pair syncq" },
{ SF(QPERQ), "per queue-instance syncq" },
{ SF(QPERMOD), "per module syncq" },
{ SF(QMTSAFE), "stream module is MT-safe" },
{ SF(QMTOUTPERIM), "Has outer perimeter" },
{ SF(QINSERVICE), "service routine executing" },
{ SF(QWCLOSE), "will not be enabled" },
{ SF(QEND), "last queue in stream" },
{ SF(QWANTWSYNC), "Streamhead wants to write Q" },
{ SF(QSYNCSTR), "Q supports Synchronous STREAMS" },
{ SF(QISDRV), "the Queue is attached to a driver" },
{ SF(0x00400000), "unused (was QHOT)" },
{ SF(0x00800000), "unused (was QNEXTHOT)" },
{ SF(0x01000000), "unused (was _QNEXTLESS)" },
{ SF(0x02000000), "unused" },
{ SF(_QINSERTING), "module is inserted with _I_INSERT" },
{ SF(_QREMOVING) "module is removed with _I_REMOVE" },
{ SF(_QASSOCIATED), "queue is associated with a device" },
str->s_type.SF.s_fd = fd;
str->s_type.SF.s_fd = -1;
if (str->s_type.SF.s_fd > -1) {
(void) close(str->s_type.SF.s_fd);
caddr_t origin = str->s_type.SF.s_release_origin;
str->s_type.SF.s_release_origin += release;
str->s_type.SF.s_release_origin = str->s_buffer;
if (cxwrite(str->s_type.SF.s_fd, NULL, 0) == 0)
(void) close(str->s_type.SF.s_fd);
if (cxwrite(str->s_type.SF.s_fd, "\n", 1) < 0)
if (cxwrite(str->s_type.SF.s_fd, NULL, 0) < 0)
if (cxwrite(str->s_type.SF.s_fd, line->l_data.sp,
stream_simple_file_t *SF = &(str->s_type.SF);
SF->s_fd = fileno(stdout);
if ((SF->s_fd = open(str->s_filename, O_CREAT | O_TRUNC |
if (wxwrite(str->s_type.SF.s_fd, w_crlf) < 0)
if (wxwrite(str->s_type.SF.s_fd, line->l_data.wp) >= 0) {
stream_simple_file_t SF; /* file accessed via mmap */
fprintf(tabout, ".de %d\n",SF);
fprintf(tabout, ".%d\n",SF);
*KR, *KS, *KU, *LL, *MA, *ND, *NL, *RC, *SC, *SE, *SF,
&LL, &MA, &ND, &NL, &_PC, &RC, &SC, &SE, &SF,
*LL, *MA, *ND, *NL, *RC, *SC, *SE, *SF, *SO, *SR, *TA, *TE,
return ((SF * apic_ticks * PIT_HZ) / ((uint64_t)pit_ticks * NANOSEC));
return (apic_freq * SF / NANOSEC);
#define APIC_TICKS_TO_NSECS(ticks) ((((int64_t)(ticks) * SF) + \
apic_ticks_per_SFnsecs + (SF/2)) / SF)