--- /dev/null
+Each CPU has its own cpu subdirectory
+
+ cpu-$name/
+
+In that should be
+
+cpu.h
+ Types and definitions specific to the processor
+
+rules.mk
+ Cross compiler options and settings
+
+image.mk
+ General rules to build the final binary image
+
+
+The following other per CPU files currently have leaked outside of the CPU
+directory and will eventually move
+
+lowlevel-$cpu.[sS]
+ Low level function implementations that are common across all
+platforms using that processor type
+
+usermem_std-$cpu.[sS]
+ Standard implementation of user/kernel memory access functions for
+this processor type (may be blank)
+
+kernel-$cpu.def
+ Assembler constants and the like used to access structure offsets
+shared between the C and assembler code.
+
+
+Other CPU specific files can be placed in the cpu directory and referenced
+as needed. The lowlevel code can also be C or assembler as best suits that
+platform.
+
+
+Types and definitions: cpu.h
+
+The following standard types should be provided, either directly from a
+compiler header or in cpu.h
+
+ uint32_t
+ int32_t
+ uint16_t
+ int16_t
+ uint8_t
+ int8_t
+ size_t
+
+The following additional types are used by FUZIX
+
+ arg_t - a syscall argument (signed)
+ uarg_t - a syscall argument (unsigned)
+ usize_t - size_t for a userspace pointer
+ susize_t - ditto, signed
+ uaddr_t - a userspace address
+ uptr_t - the size of a userspace pointer
+
+ irqflags_t - a suitable type to hold the IRQ status
+
+ clock_t - used for times()
+
+ time_t - holds unix time split into a high/low part
+ according to byte order. Not the same as
+ user space.
+
+ ticks_t - clock_t with a 16bit low/high split in
+ CPU byte order
+
+Althouh not tested the uptr_t type is there to support mixed pointer size
+kernel/user space. To allow for this ugetp and uputp should be defined to
+the correct uget/put size for a pointer (or provided)
+
+EMAGIC - 16bit platforms only (magic numbers)
+EMAGIC_2 - define as EMAGIC if only one
+
+
+staticfast - define as blank unless you have a CPU that
+ is much happier accessing memory from fixed
+ addresses. Intended to make the Z80 port
+ a bit tighter
+
+
+POINTER32 - set if pointers are 32bit
+
+used(x) - indicate to the compiler that x is used
+
+BIG_ENDIAN - set for big endian processor
+
+
+Some of the other defines currently present are obsolete including the
+banking ones and __fastcall__
+