From 35264561b3107134800ba6bf852e64811de6e2f3 Mon Sep 17 00:00:00 2001 From: CSRG Date: Thu, 28 Jul 1983 09:19:34 -0800 Subject: [PATCH] BSD 4_3 development Work on file usr/doc/misc/kchanges.4.2/1.t Synthesized-from: CSRG/cd1/4.3 --- usr/doc/misc/kchanges.4.2/1.t | 58 +++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 usr/doc/misc/kchanges.4.2/1.t diff --git a/usr/doc/misc/kchanges.4.2/1.t b/usr/doc/misc/kchanges.4.2/1.t new file mode 100644 index 0000000000..2946c0f084 --- /dev/null +++ b/usr/doc/misc/kchanges.4.2/1.t @@ -0,0 +1,58 @@ +.NH +Carrying over local software +.PP +With the massive changes made to the system, both in organization +and in content, it may take some time to understand how to +carry over local software. The majority of this document is +devoted to describing the contents of each important source file +in the system. If you have local software other than device +drivers to incorporate in the system you should first read this +document completely, then study the source code to more fully +understand the changes as they affect you. +.PP +Locally written device drivers will need to be converted to +work in the new system. The changes required of device drivers are: +.IP 1) +The calling convention +for the driver \fIioctl\fP routine has changed. Any data +copied in or out of the system is now +done at the highest level inside \fIioctl\fP\|(). The third +parameter to the driver \fIioctl\fP routine +is a data buffer passed by reference. Values to be +returned by a driver must be copied into the associated buffer +from which the system then copies them into the user address space. +.IP 2) +The \fIread\fP, \fIwrite\fP, and \fIioctl\fP entry points in +device drivers must return 0 or an error code from <\fIerrno.h\fP>. +.IP 3) +The \fIread\fP and \fIwrite\fP entry points should no longer +reference global variables out of the user area. A new \fIuio\fP +parameter is passed to these routines which should, in turn, +be passed to the \fIphysio\fP\|() routine if the driver supports +raw i/o. +.IP 4) +Disk drivers which are to support swapping/paging must have +a new routine which returns the size, in sectors, of a disk +partition. This value is used in calculating the size of +swapping/paging areas at boot time. +.IP 5) +Code which previously used the \fIiomove\fP, \fIpassc\fP, or +\fIcpass\fP routines will have to be modified to use the +new \fIuiomove\fP, \fIureadc\fP, and \fIuwritec\fP routines. +The new routines all use a \fIuio\fP structure to communicate +the i/o base, offset, count, and segflag values previously +passed globally in the user area. +.IP 6) +Include files have been rearranged and new ones have +been created. Common machine-dependent +files such as \fImtpr.h\fP, \fIpte.h\fP, \fIreg.h\fP, +and \fIpsl.h\fP are no longer in +the ``h'' directory; see below under organizational changes. +.IP 7) +The handling of UNIBUS resets has changed. The reset routine +should no longer deallocate UNIBUS resources allocated to +pending i/o requests (this is done in the \fIubareset\fP routine). +For most drivers this means the reset routine simply needs to +invalidate any \fIub_info\fP values stored in local data +structures to insure new UNIBUS resources will be allocated +the next time the ``device start'' routine is entered. -- 2.20.1