17 lines
433 B
OCaml
17 lines
433 B
OCaml
open Functoria.DSL
|
|
|
|
type arpv4 = Arpv4
|
|
|
|
let arpv4 = typ Arpv4
|
|
|
|
let arp_conf =
|
|
let packages =
|
|
[ package ~min:"4.0.0" ~max:"5.0.0" ~sublibs:[ "mirage" ] "arp" ]
|
|
in
|
|
let connect _ modname = function
|
|
| [ eth ] -> code ~pos:__POS__ "%s.connect %s" modname eth
|
|
| _ -> Misc.connect_err "arp" 1
|
|
in
|
|
impl ~packages ~connect "Arp.Make" (Ethernet.ethernet @-> arpv4)
|
|
|
|
let arp (eth : Ethernet.ethernet impl) = arp_conf $ eth
|