Annotation of researchv9/jtools/man/man3/request.3, revision 1.1

1.1     ! root        1: .TH REQUEST 3
        !             2: .CT 2 comm_term time_man proc_man
        !             3: .SH NAME
        !             4: request, own, wait, alarm, sleep, nap, kbdchar, rcvchar, realtime, sendchar, sendnchars, \- 5620 I/O requests
        !             5: .SH SYNOPSIS
        !             6: .B #include <jerq.h>
        !             7: .PP
        !             8: .B void request(r) int r;
        !             9: .PP
        !            10: .B int own(r) int r;
        !            11: .PP
        !            12: .B int wait(r) int r;
        !            13: .PP
        !            14: .B void alarm(t) unsigned t;
        !            15: .PP
        !            16: .B void sleep(t) unsigned t;
        !            17: .PP
        !            18: .B void nap(t) unsigned t;
        !            19: .PP
        !            20: .B long realtime();
        !            21: .PP
        !            22: .B int kbdchar();
        !            23: .PP
        !            24: .B int rcvchar();
        !            25: .PP
        !            26: .B void sendchar(c) int c;
        !            27: .PP
        !            28: .B "void sendnchars(n, cp) int n; char *cp;"
        !            29: .SH DESCRIPTION
        !            30: .I Request
        !            31: announces a program's intent to use I/O devices and resources,
        !            32: and must be called once early in a program, before
        !            33: .IR initdisplay .
        !            34: The bit vector
        !            35: .I r
        !            36: indicates which resources are to be used by
        !            37: OR'ing together one or more of the elements
        !            38: .B KBD
        !            39: (keyboard),
        !            40: .BR MOUSE ,
        !            41: .B RCV
        !            42: (characters received by terminal from Unix),
        !            43: .B SEND
        !            44: (characters sent from terminal to Unix)
        !            45: and
        !            46: .BR ALARM .
        !            47: For example,
        !            48: .B request(MOUSE|KBD)
        !            49: indicates that the process
        !            50: wants to use the mouse and keyboard.
        !            51: All resource except
        !            52: .B RCV
        !            53: are always implicitly requested.
        !            54: .PP
        !            55: .I Own
        !            56: returns a bit vector
        !            57: of which I/O resources have data available.
        !            58: For example,
        !            59: .BR own()&KBD
        !            60: indicates
        !            61: whether a character is available to be read by
        !            62: .I kbdchar
        !            63: (see below),
        !            64: .BR own()&RCV
        !            65: indicates
        !            66: whether a character is available to be read by
        !            67: .I rcvchar
        !            68: (see below) and,
        !            69: .B own()&ALARM
        !            70: indicates whether the alarm timer has fired.
        !            71: .PP
        !            72: .IR Wait 's
        !            73: argument
        !            74: .I r
        !            75: is a bit vector composed as for
        !            76: .IR request .
        !            77: .I Wait
        !            78: suspends the process,
        !            79: enabling others,
        !            80: until at least one of the requested resources is available.
        !            81: The return value is a bit vector indicating which of the requested resources
        !            82: are available \(em the same as
        !            83: .BR own()&r .
        !            84: .PP
        !            85: Processes wishing to poll for input may call
        !            86: .BR wait(CPU) ;
        !            87: it will return as soon as all available input has been queued.
        !            88: .B CPU
        !            89: is a fake resource which is always
        !            90: requested.
        !            91: The
        !            92: .B SEND
        !            93: pseudo-resource is unused;
        !            94: .B wait(SEND)
        !            95: always succeeds.
        !            96: .PP
        !            97: .I Alarm
        !            98: starts a timer which will fire
        !            99: .I t
        !           100: ticks (60ths of a second) into the future.
        !           101: A pseudo-resource
        !           102: .B ALARM
        !           103: can be used to check the status of the timer with
        !           104: .I own
        !           105: or
        !           106: .IR wait .
        !           107: .PP
        !           108: .I Nap
        !           109: is equivalent to
        !           110: .B wait(MOUSE)
        !           111: in the emulator library.
        !           112: It blocks the process until a new window event is received.
        !           113: .PP
        !           114: .I Sleep
        !           115: delays the process for
        !           116: .I t
        !           117: ticks of a 60Hz clock.
        !           118: .I Sleep
        !           119: does not interfere with
        !           120: .IR alarm ,
        !           121: and vice versa.
        !           122: .PP
        !           123: .I Realtime
        !           124: returns the number of 60Hz clock ticks since 1970 mod 32.
        !           125: .PP
        !           126: .I Kbdchar
        !           127: returns the next keyboard character typed to the process.
        !           128: If no characters have been typed, or
        !           129: .B KBD
        !           130: has not been
        !           131: .IR request ed,
        !           132: .I kbdchar
        !           133: returns
        !           134: \-1.
        !           135: .PP
        !           136: .I Rcvchar
        !           137: returns the next character received from the host,
        !           138: typically written on the standard output of the
        !           139: companion
        !           140: .I host
        !           141: process.
        !           142: If there are no characters available, or
        !           143: .B RCV
        !           144: has not been
        !           145: .IR request ed,
        !           146: .I rcvchar
        !           147: returns
        !           148: \-1.
        !           149: .PP
        !           150: .I Sendchar
        !           151: sends a single byte to the
        !           152: .I host
        !           153: process.
        !           154: .I Sendnchars
        !           155: sends to the
        !           156: .I host
        !           157: process
        !           158: .I n
        !           159: characters pointed to by
        !           160: .IR p .
        !           161: .SH EXAMPLES
        !           162: .EX
        !           163: request(KBD|RCV);
        !           164: for(;;){
        !           165:        r=wait(KBD|RCV);
        !           166:        if(r&KBD)
        !           167:                keyboard(kbdchar());
        !           168:        if(r&RCV)
        !           169:                receive(rcvchar());
        !           170: }
        !           171: .EE
        !           172: .PD0
        !           173: .IP
        !           174: Take input from either the keyboard or the host.
        !           175: .PD
        !           176: .SH SEE ALSO
        !           177: .IR button (3)

unix.superglobalmegacorp.com

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