Annotation of researchv10dc/man/man4/mesgld.4, revision 1.1

1.1     ! root        1: .TH MESGLD 4
        !             2: .CT 2 comm_mach
        !             3: .SH NAME
        !             4: mesg_ld, rmesg_ld \- message line discipline modules
        !             5: .SH SYNOPSIS
        !             6: .B #include <sys/types.h>
        !             7: .br
        !             8: .B #include <sys/stream.h>
        !             9: .SH DESCRIPTION
        !            10: .I Mesg_ld
        !            11: and
        !            12: .I rmesg_ld
        !            13: turn internal stream messages
        !            14: into ordinary data and vice versa.
        !            15: They supply a way to splice a stream connection together
        !            16: through a process or across a network connection.
        !            17: The messages represent ordinary data
        !            18: and various control operations.
        !            19: .PP
        !            20: After
        !            21: .IR mesg_ld
        !            22: has been pushed on a stream,
        !            23: .IR read (2)
        !            24: on the stream returns encoded messages;
        !            25: .I write
        !            26: is expected to supply messages in the same coding.
        !            27: An encoded message consists of a header
        !            28: followed by zero or more bytes of associated data.
        !            29: The header,
        !            30: as defined in
        !            31: .BR <sys/stream.h> ,
        !            32: is of the form
        !            33: .IP
        !            34: .EX
        !            35: struct mesg {
        !            36:        char    type;
        !            37:        unsigned char   magic;
        !            38:        unsigned char   losize, hisize;
        !            39: };
        !            40: #define        MSGMAGIC        0345
        !            41: #define        MSGHLEN 4       /* true length of struct mesg in bytes */
        !            42: .EE
        !            43: .LP
        !            44: The header is
        !            45: .B MSGHLEN
        !            46: bytes long;
        !            47: beware that this is not always the same as
        !            48: .LR "sizeof(struct mesg)" .
        !            49: The
        !            50: .B magic
        !            51: field contains the constant
        !            52: .BR MSGMAGIC ,
        !            53: to help prevent interpreting bad data as a message header.
        !            54: There are
        !            55: .B "losize+(hisize<<8)"
        !            56: bytes of associated data.
        !            57: .PP
        !            58: Messages may be written in pieces,
        !            59: or several messages may be written at once.
        !            60: At most one message will be read at a time.
        !            61: If an impossible message is written,
        !            62: the stream may be shut down.
        !            63: .PP
        !            64: .IR Rmesg_ld
        !            65: is exactly the opposite of
        !            66: .IR mesg_ld .
        !            67: It is intended for use with devices
        !            68: that generate data containing encoded messages.
        !            69: Here is a list of message types,
        !            70: defined in
        !            71: .BR <sys/stream.h> :
        !            72: .TF M_HANGUP
        !            73: .TP
        !            74: .B M_DATA
        !            75: (0)
        !            76: Ordinary data.
        !            77: .TP
        !            78: .B M_BREAK
        !            79: (01)
        !            80: A line break on an RS232-style asynchronous connection.
        !            81: No associated data.
        !            82: .TP
        !            83: .B M_HANGUP
        !            84: (02)
        !            85: When received, indicates that the other side has gone away.
        !            86: Thereafter the stream is useless.
        !            87: No associated data.
        !            88: .TP
        !            89: .B M_DELIM
        !            90: (03)
        !            91: A delimiter that introduces a record boundary in the data.
        !            92: No associated data.
        !            93: .TP
        !            94: .B M_IOCTL
        !            95: (06)
        !            96: An
        !            97: .IR ioctl (2)
        !            98: request.
        !            99: The associated data is a four-byte integer
        !           100: containing the
        !           101: function code,
        !           102: least significant byte first,
        !           103: followed by some amount of associated data.
        !           104: An
        !           105: .B M_IOCACK
        !           106: or
        !           107: .BR M_IOCNAK 
        !           108: reply is expected.
        !           109: .TP
        !           110: .B M_DELAY
        !           111: (07)
        !           112: A real-time delay.
        !           113: One byte of data, giving the number of clock ticks of
        !           114: delay time.
        !           115: .TP
        !           116: .B M_CTL
        !           117: (010)
        !           118: Device-specific control message.
        !           119: .TP
        !           120: .B M_SIGNAL
        !           121: (0101)
        !           122: Generate signal number given in the one-byte message.
        !           123: .TP
        !           124: .B M_FLUSH
        !           125: (0102)
        !           126: Flush input and output queue if possible.
        !           127: .TP
        !           128: .B M_STOP
        !           129: (0103)
        !           130: Stop transmission immediately.
        !           131: .TP
        !           132: .B M_START
        !           133: (0104)
        !           134: Restart transmission after
        !           135: .BR M_STOP .
        !           136: .TP
        !           137: .B M_IOCACK
        !           138: (0105)
        !           139: Successful reply to
        !           140: .BR M_IOCTL .
        !           141: Associated data is to be written back to the caller.
        !           142: .TP
        !           143: .B M_IOCNAK
        !           144: (0106)
        !           145: Failed reply to
        !           146: .BR M_IOCTL .
        !           147: A single-byte message,
        !           148: if present,
        !           149: will be returned in
        !           150: .CW errno
        !           151: by the failing
        !           152: .IR ioctl .
        !           153: .TP
        !           154: .B M_PRICTL
        !           155: (0107)
        !           156: High-priority
        !           157: device-specific control message.
        !           158: .PD
        !           159: .PP
        !           160: .SH SEE ALSO
        !           161: .IR stream (4)
        !           162: .SH BUGS
        !           163: The format of arguments to
        !           164: .B M_IOCTL
        !           165: is machine dependent.
        !           166: .br
        !           167: The amount of associated data
        !           168: is limited, but large (>4K).

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.