diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/protocol | 33 |
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) + |