ref: 94e367e2c05a02e3c97986af595ff22a1dd1a329
parent: b00f9d006411591f447f505f842f1b681b7862b3
author: Ori Bernstein <[email protected]>
date: Mon Aug 11 18:16:16 EDT 2014
Implement waitstatus() for freebsd.
--- a/libstd/waitstatus-freebsd.myr
+++ b/libstd/waitstatus-freebsd.myr
@@ -1,0 +1,20 @@
+use "die.use"
+
+pkg std =
+ type waitstatus = union
+ `Waitexit int32
+ `Waitsig int32
+ `Waitstop int32
+ ;;
+
+ const waitstatus : (st : int32 -> waitstatus)
+;;
+
+const waitstatus = {st
+ match st & 0o177
+ | 0: -> `Waitexit (st >> 8)
+ | 0x7f:-> `Waitstop (st >> 8)
+ | sig: -> `Waitsig sig
+ ;;
+ die("unreachable")
+}