|
|
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.