|
|
1.1 ! root 1: .\" Copyright (c) 1986 Regents of the University of California. ! 2: .\" All rights reserved. The Berkeley software License Agreement ! 3: .\" specifies the terms and conditions for redistribution. ! 4: .\" ! 5: .\" @(#)gen.t 1.5 (Berkeley) 4/10/86 ! 6: .\" ! 7: .NH ! 8: General changes in the kernel ! 9: .PP ! 10: This section details some of the changes that affect multiple sections ! 11: of the kernel. ! 12: .NH 2 ! 13: Header files ! 14: .PP ! 15: The kernel is now compiled with an include path that specifies the ! 16: standard location of the common header files, generally \fB/sys/h\fP ! 17: or \fB../h\fP, and all kernel sources have had pathname prefixes ! 18: removed from the \fB#include\fP directives for files in \fB../h\fP or the source ! 19: directory. ! 20: This makes it possible to substitute replacements for individual header ! 21: files by placing them in the system compilation directory or in another ! 22: directory in the include path. ! 23: .NH 2 ! 24: Types ! 25: .PP ! 26: There have been relatively few changes in the types defined and used ! 27: by the system. ! 28: One significant exception is that new typedefs have been added ! 29: for user ID's and group ID's in the kernel and common data structures. ! 30: These typedefs, \fIuid_t\fP and \fIgid_t\fP, are both of type \fIu_short\fP. ! 31: This change from the previous usage (explicit \fIshort\fP ints) ! 32: allows user and group ID's greater than 32767 to work reasonably. ! 33: .NH 2 ! 34: Inline ! 35: .PP ! 36: The inline expansion of calls to various trivial ! 37: or hardware-dependent operations ! 38: has been a useful technique in the kernel. ! 39: In prior releases this substitution was done ! 40: by editing the assembly language output of the compiler with the ! 41: sed script \fIasm.sed\fP. ! 42: This technique has been refined in 4.3BSD by using a new program, ! 43: \fIinline\fP, to perform the in-line code expansion and also optimize ! 44: the code used to push the subroutine's operands; where possible, ! 45: \fIinline\fP will merge stack pushes and pops into direct register loads. ! 46: Also, this program performs the in-line code expansion significantly ! 47: faster than the general-purpose stream editor it replaces. ! 48: .NH 2 ! 49: Processor priorities ! 50: .PP ! 51: Functions to set the processor interrupt priority to block classes ! 52: of interrupts have been used in ! 53: .UX ! 54: on all processors, but the names of these routines have always been ! 55: derived from the priority levels of the PDP11 and the UNIBUS. ! 56: In order to clarify both the intent of elevated processor priority ! 57: and the assumptions about their dependencies, all of the functions \fIsplN\fP, ! 58: where \fIN\fP is a small nonzero integer, have been renamed. ! 59: In each case, the new name indicates the group of devices that are to be ! 60: blocked from interrupts. The following table indicates the old and new names ! 61: of these functions. ! 62: .TS ! 63: center box; ! 64: l | l | l | l ! 65: l | l | l | c. ! 66: new name devices blocked old name VAX IPL ! 67: _ ! 68: spl0 none spl0 0 ! 69: splsoftclock software clock interrupts none 0x08 ! 70: splnet software network interrupts splnet 0x0c ! 71: spltty terminal multiplexors spl5 0x15 ! 72: splbio disk and tape controllers spl5 0x15 ! 73: splimp all network interfaces splimp 0x16 ! 74: splclock interval timer spl6 0x18 ! 75: splhigh all devices and state transitions spl7 0x31 ! 76: .TE ! 77: For use in device drivers only, UNIBUS priorities BR4 through BR7 may be set ! 78: using the functions spl4, spl5, spl6 and spl7. ! 79: Note that the latter two now correspond ! 80: to VAX priorities 0x16 and 0x17 respectively, ! 81: rather than the previous 0x18 and 0x1f priorities.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.