aboutsummaryrefslogtreecommitdiff
path: root/PORTING
diff options
context:
space:
mode:
Diffstat (limited to 'PORTING')
-rw-r--r--PORTING17
1 files changed, 17 insertions, 0 deletions
diff --git a/PORTING b/PORTING
new file mode 100644
index 00000000..ddb94b99
--- /dev/null
+++ b/PORTING
@@ -0,0 +1,17 @@
+[Need to write better notes.]
+
+Look for files named *386* or *FreeBSD* and you'll see what
+you need to implement for your architecture of choice.
+
+The hardest thing is probably the assembly routines:
+src/lib9/tas-$SYSTYPE.s and src/libthread/asm-$SYSTYPE-$OBJTYPE.s.
+The former is a test and set used to implement shared-memory
+spin locks. The latter is a stripped down setjmp and longjmp
+used to implement stack switching in the thread library.
+Also, src/libthread/$OBJTYPE.c needs to know how to set up a stack
+frame for the given object type.
+
+If you're only interested in mk and sam, you don't need to
+write any assembly to do a port. Samterm requires everything
+though, since it uses libthread.
+