aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--doc/protocol33
1 files changed, 33 insertions, 0 deletions
diff --git a/doc/protocol b/doc/protocol
new file mode 100644
index 0000000..bdff6ac
--- /dev/null
+++ b/doc/protocol
@@ -0,0 +1,33 @@
+init:
+ Select a filename.
+
+ Create XSI semaphore array {S = 0, W = 0, X = 1 and Q = 0}
+ with random key. Store the semaphore array's key in
+ decimal form on the first line in the selected file.
+
+ Create XSI shared memory, with an allocation of 2048 bytes,
+ with a random key. Store the shared memory's key in
+ decimal form on the second line in the selected file.
+
+
+broadcast:
+ with P(X):
+ Z(W)
+ Write NUL-terminate message to shared memory
+ Q := 0
+ Z(S)
+
+
+listen:
+ V(S) with undo on exit
+ forever:
+ V(Q)
+ Z(Q)
+ Read NUL-terminated message from shared memory
+ if breaking:
+ P(S) with undo on exit
+ break
+ with V(W):
+ with P(S):
+ Z(S)
+