Lines Matching full:is

25 .\" INTERNATIONAL, INC.  AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR
49 \(dgUNIX is a Trademark of Bell Laboratories.
54 and is oriented more toward describing the environment
59 It is assumed that the reader has a good knowledge
66 but is still more detailed.
67 It is most useful in
69 since it is basically an exegesis of that code.
77 The block interface is suitable for devices
87 The interface to block devices is very highly structured;
110 the device; the minor device number is not used
111 by the rest of the system but is passed to the
129 system calls is to set up entries in three separate
131 The first of these is the
134 which is stored in the system's per-process
137 This table is indexed by
142 and is accessed during
152 which is a per-system data base.
153 There is one entry in the
160 This table is per-system because the same instance
164 after the file is opened.
169 was open for reading or writing or is a pipe, and
170 a count which is used to decide when all processes
173 There is also a 32-bit file offset
174 which is used to indicate where in the file the next read
176 Finally, there is a pointer to the
186 there is a pointer to an associated multiplex channel table.
195 if the same file is opened several times,
199 there is at most one entry
205 table not only because it is open,
206 but also because it is the current directory
216 and the entry is augmented
241 routine is called only when the last
243 that is, when the i-node table entry
245 Thus it is not feasible
247 a count of its users, although it is quite
269 If the file referred to is
271 or write routine is called; it is responsible
275 Otherwise, the current location is used to calculate
277 If the file is an ordinary file the logical block
281 This mapping is performed by the
324 routine is called each time the file
326 The second argument is a flag which is
327 non-zero only if the device is to be written upon.
331 routine is called only when the file
333 that is when the very last process in
334 which the file is open closes it.
335 This means it is not possible for the driver to
337 The first argument is the device number;
338 the second is a flag which is non-zero
345 is called, it is supplied the device
397 which is faster when many characters must be moved.
409 (which is 0) in the write case.
411 the caller is responsible for making sure
412 the count is not too large and is non-zero.
423 routine is called under conditions similar to
437 before that time, 0 is returned.
463 the device is supposed to place up to 3 words of status information
477 When an interrupt occurs, it is turned into a C-compatible call
483 This is conventionally used by drivers
510 A character is placed on the end of a queue by
517 The routine returns \(mi1 if there is no space
523 or \(mi1 if the queue is empty.
525 Notice that the space for characters in queues is
534 to device handlers is the sleep-wakeup mechanism.
541 at that time, the process is marked ready-to-run
542 and the call will return when there is no
550 has happened, that is, causes processes sleeping
556 By convention, it is the address of some data area used
568 A distinction is made between processes sleeping
575 Thus it is a bad idea to sleep with
580 may never return if the process is terminated by
582 Incidentally, it is a gross error to call
585 which is running is almost certainly not the
592 wishes to wait for some event for which it is inconvenient
601 is an external cell whose address is awakened once every 4 seconds
628 if there is no response within a specified number
630 Notice that the number of sixtieths of a second is limited to 32767,
642 Handling of block devices is mediated by a collection
645 The most important purpose of these routines is to assure
649 A secondary but still important purpose is to increase
653 The main data base for this mechanism is the
664 which are ``free,'' that is,
672 There is a word count
673 which is the negative of the number of words
675 there is also an error byte and a residual word
678 Finally, there is a flag word
691 the difference is that
698 block only if it is already in core (whether it is
699 or not is indicated by the
703 device block, is made ``busy,''
708 when a block is about to be totally rewritten,
712 until the new data is placed into it.
716 routine is used to implement read-ahead.
717 it is logically similar to
721 after the specifically requested block is available.
728 It is called, for example, after
757 it is used, for example, when updating i-nodes.
759 is useful when more overlap is desired
760 (because no wait is required for I/O to finish)
761 but when it is reasonably certain that the
762 write is really required.
764 is used when there is doubt that the write is
776 as the end of a block is passed,
798 block I/O system, it is important to understand these flags.
802 This bit is set when the buffer is handed to the device strategy routine
806 is defined as 0 and does not define a flag; it is provided
812 This bit is set
813 to 0 when a block is handed to the device strategy
814 routine and is turned on when the operation completes,
816 It is also used as part of the return argument of
824 If it is set the
827 if it is non-zero.
830 is 0 the nature of the error is not specified.
833 the latter is provided for a future improvement
837 This bit indicates that the buffer header is not on
838 the free list, i.e. is
851 This bit is set for raw I/O transactions that
854 This bit is set on buffers that have the Unibus map allocated,
859 This flag is used in conjunction with the
866 Conversely, when the block is freed and the busy bit
877 every time a buffer is freed on the chance that someone
882 the buffer is placed at the head of the free list, rather than at the
884 It is a performance heuristic
887 This bit is set by
896 is that the former starts I/O, waits until it is done, and
903 This bit is set by
909 discovers the bit is 1 in a buffer it would otherwise grab,
930 routine which is called with a pointer to a buffer
939 When the transaction is complete the
946 bit is set,
958 This particular mechanism is really for the benefit
967 all that is actually required
992 device, and is used at a minimum to
993 indicate that the device is currently engaged in
995 The error count is useful for counting retries
997 The device queue is used to remember stacked requests;
1025 and arrange that any error indication found therein is
1045 routines which set up what is usually a private,
1052 routines may be provided but this is usually unnecessary.
1060 the worst part is to map relocated user addresses to physical addresses.
1061 Most of this work is done by
1072 whose value is either
1079 and that the core area affected is contiguous
1081 it delays until the buffer is not busy, and makes it
1082 busy while the operation is in progress;