Lines Matching +full:wait +full:- +full:on +full:- +full:write
1 .\" Copyright (C) Caldera International Inc. 2001-2002. All rights reserved.
32 .\" BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
37 .EH 'PSD:3-%''The UNIX I/O System'
38 .OH 'The UNIX I/O System''PSD:3-%'
61 in the paper ``The UNIX Time-sharing System.''
79 which work, or can work, with addressible 512-byte blocks.
91 Character-type devices have a much
102 in the low-order 8 bits and the major device number
103 in the next-higher 8 bits;
134 which is stored in the system's per-process
145 .I write,
146 or other operation on the open file.
152 which is a per-system data base.
160 This table is per-system because the same instance
173 There is also a 32-bit file offset
175 or write will take place.
180 which contains a copy of the file's i-node.
208 is a special file containing a currently-mounted
214 corresponding i-node as stored on the disk;
220 and the device and i-number
224 the 3-byte, compressed format used on the disk to full
236 required (rewinding a tape, turning on
237 the data-terminal-ready lead of a modem, etc.).
243 that is, when the i-node table entry
246 for a device to maintain, or depend on,
249 implement an exclusive-use device which cannot
255 .I write
267 of the I/O target area, the byte-count for the transfer,
270 a character-type special file, the appropriate read
271 or write routine is called; it is responsible
279 to a physical block number; a block-type
286 read or write the appropriate device.
295 open, close, read, write, and special-function
300 If a call on the routine
304 on non-exclusive devices that require no setup)
311 .I write
312 on read-only devices)
327 non-zero only if the device is to be written upon.
338 the second is a flag which is non-zero
344 .I write
347 The per-user variable
362 .I on,
369 .I write
382 Successive calls on it return
393 Write routines which want to transfer
409 (which is 0) in the write case.
412 the count is not too large and is non-zero.
424 .I write,
427 is guaranteed to be non-zero.
440 .I write;
445 The ``special-functions'' routine
475 Finally, each device should have appropriate interrupt-time
477 When an interrupt occurs, it is turned into a C-compatible call
479 The interrupt-catching mechanism makes
480 the low-order four bits of the ``new PS'' word in the
494 between their ``top half'' (read/write)
496 For relatively low data-rate devices, the best mechanism
510 A character is placed on the end of a queue by
519 The first character on the queue may be retrieved
522 which returns either the (non-negative) character
530 especially write routines, must take
534 to device handlers is the sleep-wakeup mechanism.
537 causes the process to wait (allowing other processes to run)
541 at that time, the process is marked ready-to-run
555 by the sleeper and the waker-up.
560 Processes sleeping on an event should not assume
566 a higher numerical value indicates a less-favored
576 priority less than PZERO on an event which might never occur.
592 wishes to wait for some event for which it is inconvenient
595 (for example, a device going on-line, which does not
610 If a device needs to know about real-time intervals,
623 to provide real-time delays after function characters
624 like new-line and tab in typewriter output,
633 can be going on at once.
636 is called at clock-interrupt time, so it should
640 The Block-device Interface
644 the images of blocks of data on the various devices.
651 keeping in-core copies of blocks that are being
658 which maintain a doubly-linked list
663 which generally maintain a doubly-linked list of blocks
705 are obliged to wait until it becomes free.
716 routine is used to implement read-ahead.
720 a block (on the same device) to be read asynchronously
731 There are three subtly-different write routines,
734 use by others and place it on the free list.
737 buffer on the appropriate device queue,
738 waits for the write to be done,
741 places the buffer on the device's queue, but does not wait
757 it is used, for example, when updating i-nodes.
760 (because no wait is required for I/O to finish)
762 write is really required.
764 is used when there is doubt that the write is
769 .I write
771 block, on the assumption that
773 .I write
774 will be given soon which will re-use the same block.
787 use of the caller, and make others wait,
810 which indicates read or write.
814 routine and is turned on when the operation completes,
827 if it is non-zero.
834 whereby a more detailed error-reporting
837 This bit indicates that the buffer header is not on
848 block with this bit on, it sleeps until the bit
852 need to allocate the Unibus map on an 11/70.
854 This bit is set on buffers that have the Unibus map allocated,
873 is on.
877 every time a buffer is freed on the chance that someone
880 This bit may be set on buffers just before releasing them; if it
881 is on,
891 write has been finished, usually at interrupt time.
901 should be called for the buffer on completion.
925 called respectively on each open and on the final close
927 Instead of separate read and write routines,
933 a read/write flag, the core address,
952 is capable, under error-free operation,
954 the device's word-count register should be placed
977 no extraneous bits get turned on in the
990 except for the buffer-chain pointers.
998 in the simplest case it may be maintained as a first-in
999 first-out list.
1027 It may be called only in the non-interrupt
1032 Raw Block-device I/O
1039 The method involves setting up a character-type special file
1044 .I write
1046 non-shared buffer header with the appropriate information
1053 A special-function routine might come in handy, especially for
1070 and a read-write flag