package mirage-net
Network signatures for MirageOS
Install
dune-project
Dependency
Authors
Maintainers
Sources
mirage-net-v4.0.0.tbz
sha256=668effd187b81a0ab32450870c15dbb89ff911397ff338a8951807e250e194ce
sha512=52064dc704ebd0d305fd234b6d89fc313d5a80016d8875ef93212a1962ad8b1f332f7b0338244afbb2d2f207a28d476e7d7639be9dc607d95145afee7fccc483
doc/src/mirage-net/mirage_net.ml.html
Source file mirage_net.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
(* * Copyright (c) 2011-2015 Anil Madhavapeddy <anil@recoil.org> * Copyright (c) 2013-2015 Thomas Gazagnaire <thomas@gazagnaire.org> * Copyright (c) 2013 Citrix Systems Inc * Copyright (c) 2018 Hannes Mehnert <hannes@mehnert.org> * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) module Net = struct type error = [ `Invalid_length | `Disconnected ] let pp_error ppf = function | `Invalid_length -> Fmt.string ppf "invalid length (exceeds size)" | `Disconnected -> Fmt.string ppf "network device is disconnected" end type stats = { mutable rx_bytes: int64; mutable rx_pkts: int32; mutable tx_bytes: int64; mutable tx_pkts: int32; } module Stats = struct let create () = { rx_pkts=0l; rx_bytes=0L; tx_pkts=0l; tx_bytes=0L } let rx t size = t.rx_pkts <- Int32.succ t.rx_pkts; t.rx_bytes <- Int64.add t.rx_bytes size let tx t size = t.tx_pkts <- Int32.succ t.tx_pkts; t.tx_bytes <- Int64.add t.tx_bytes size let reset t = t.rx_bytes <- 0L; t.rx_pkts <- 0l; t.tx_bytes <- 0L; t.tx_pkts <- 0l end module type S = sig type error = private [> Net.error ] val pp_error: error Fmt.t type t val disconnect : t -> unit Lwt.t val write: t -> size:int -> (Cstruct.t -> int) -> (unit, error) result Lwt.t val listen: t -> header_size:int -> (Cstruct.t -> unit Lwt.t) -> (unit, error) result Lwt.t val mac: t -> Macaddr.t val mtu: t -> int val get_stats_counters: t -> stats val reset_stats_counters: t -> unit end
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>