BSD 4_3 development
authorCSRG <csrg@ucbvax.Berkeley.EDU>
Thu, 28 Jul 1983 17:19:34 +0000 (09:19 -0800)
committerCSRG <csrg@ucbvax.Berkeley.EDU>
Thu, 28 Jul 1983 17:19:34 +0000 (09:19 -0800)
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 [new file with mode: 0644]

diff --git a/usr/doc/misc/kchanges.4.2/1.t b/usr/doc/misc/kchanges.4.2/1.t
new file mode 100644 (file)
index 0000000..2946c0f
--- /dev/null
@@ -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.