APID-based virtual switch for SpaceOS inter-guest routing
at main 21 lines 533 B view raw
1type apid_range = { lo : int; hi : int } 2 3let apid_range lo hi = { lo; hi } 4let in_range { lo; hi } apid = apid >= lo && apid <= hi 5 6type tenant = { 7 name : string; 8 apids : apid_range; 9 can_send_to : apid_range list; 10} 11 12type t = { tenants : tenant list; socket_dir : string } 13 14let system_range = { lo = 0x001; hi = 0x00F } 15let idle_apid = 0x7FF 16 17let pp fmt t = 18 Fmt.pf fmt "Config(%d tenants, %s)" (List.length t.tenants) t.socket_dir 19 20let socket_path config tenant = 21 Filename.concat config.socket_dir (tenant.name ^ ".sock")