





	KSOS-32 Source Files Designed to be Used by Non-Kernel Programs



K32baseTypes

	Defines simple variable types whose precise definition may be
	compiler- or machine-dependant, as well as a KSOS-biased
	"null" value for each type.

	No dependencies.

K32conf

	Contains configuration-dependent parameters such as the CPU
	type or the number of devices on the system, and arbitrary
	numbers that affect performance such as open files per process
	or the maximum number of concurrent processes on the system.

	Someday this file or a single different file should contain
	security-related parameters such as timeouts or range limits
	to mandatory access controls.

	No dependencies.

K32types

	Defines most of the complicated types used throughout the
	kernel, as well as a KSOS-biased "null" value for each type.

	Depends on K32baseTypes and K32conf.

K32except

	Defines the "exceptionType" variable type and the different
	values that may be assigned to it.  Used in returning
	exception messages from kernel calls.

	No dependencies.

K32calls

	Defines the name (i.e., chmk number) of each kernel call.

	No dependencies.

K32callp

	Defines the structure used for passing arguments to each
	kernel call.

	Depends on K32baseTypes, K32conf, and K32except.






IOform

	Defines things used by both IOEform and IOFform,
	below.

	Depends on K32baseTypes and K32callp.

IOEform

	Defines the on-disk structures that are a KSOS Extent.  Useful
	for NKSR programs.

	Depends on K32baseTypes and IOform.

IOFform

	Defines the on-disk structures that are a KSOS File System.
	Useful for NKSR programs.

	Depends on K32baseTypes, K32callp, and IOform.




		Other Modules That We Are Designing


PrivInstr

	Allows the programmer to use machine-specific instructions
	that are not otherwise available from the compiler.  These may
	be thought of as extensions to the Modula-2 language.  Note
	that these routines are all implemented as in-line code rather
	than actual subroutine calls.

MACHINE

	Direct interfaces to the hardware that do not belong in
	PrivInstr.
