cstructversion
access C structures via a camlp4 extension
Cstruct is a library and syntax extension to make it easier to access C-like structures directly from OCaml. It supports both reading and writing to these structures, and they are accessed via the Bigarray module.
An example pcap description using PPX extension points is:
[%%cstruct
type pcap_header = {
magic_number: uint32_t; (* magic number *)
version_major: uint16_t; (* major version number *)
version_minor: uint16_t; (* minor version number *)
thiszone: uint32_t; (* GMT to local correction *)
sigfigs: uint32_t; (* accuracy of timestamps *)
snaplen: uint32_t; (* max length of captured packets, in octets *)
network: uint32_t; (* data link type *)
} [@@little_endian]]
An example pcap description using Camlp4 is:
cstruct pcap_header {
uint32_t magic_number; (* magic number *)
uint16_t version_major; (* major version number *)
uint16_t version_minor; (* minor version number *)
uint32_t thiszone; (* GMT to local correction *)
uint32_t sigfigs; (* accuracy of timestamps *)
uint32_t snaplen; (* max length of captured packets, in octets *)
uint32_t network (* data link type *)
} as little_endian
Tags | org:mirage org:xapi-project |
---|---|
Authors | Anil Madhavapeddy, Richard Mortier, Thomas Gazagnaire, Pierre Chambart, David Kaloper, Jeremy Yallop and Hannes Mehnert |
License | ISC |
Published | |
Homepage | https://github.com/mirage/ocaml-cstruct |
Issue Tracker | https://github.com/mirage/ocaml-cstruct/issues |
Maintainer | anil@recoil.org |
Dependencies |
|
Optional dependencies | |
Source [http] | https://github.com/mirage/ocaml-cstruct/archive/v1.9.0.tar.gz sha256=2d175bf1e2cdc5ca43cb30bd3fa507beee2f18b2cbecae801ab6ffaecde16c9c md5=59b512261058e1fe649d10d6ac268285 |
Edit | https://github.com/ocaml/opam-repository/tree/master/packages/cstruct/cstruct.1.9.0/opam |
Required by
- albatross<1.3.0
- angstrom<0.7.0
- arakoon>=1.8.6 & <1.8.12
- asn1-combinators>=0.1.2 & !=0.2.0-1 & <0.2.6
- awa-mirage<0.0.2
- balancer
- buffer-poolwith-test
- capnp-rpc-net>=1.1 & <1.2.1
- channel
- charrua-client<0.9
- charrua-core<0.8
- charrua-unix<0.3 | =0.6
- cohttp>=0.9.7 & <0.10.0
- conduit>=0.6.0 & <0.15.2
- conduit-async=3.0.0
- conduit-lwt=3.0.0
- conex<0.10.0
- conex-mirage-crypto
- conex-nocrypto
- cowabloga>=0.0.5
- crc
- crunchwith-test & >=2.0.0 & <3.0.0
- cstruct-lwt<3.0.0
- cstruct-unix<3.0.0
- datakit-ci>=0.10.0 & <0.12.4
- datakit-client<0.9.0
- datakit-server<0.9.0
- depyt
- dns>=0.15.0 & <0.19.0
- dream<1.0.0~alpha2
- duff<0.3
- eqaf>=0.8 & <0.10
- eqaf-cstruct
- fat-filesystem>=0.10.0 & <0.11.0
- frenetic<2.0.0 | >=3.2.0 & <5.0.5
- git>=1.4.3 & <1.6.0 | >=2.0.0 & <3.0.0
- git-http<1.11.0
- git-mirage=1.11.0
- github-hooks>=0.2.0
- gluten-mirage<0.3.0
- gpt
- h2-mirage
- hacl-starwith-test & >=0.7.0
- hex>=0.2.0
- hkdf<1.0.3
- httpun-mirage
- httpun-ws-mirage
- hvsock<1.0.0
- io-page<2.0.0
- io-page-unix<2.0.0
- io-page-xen<2.0.0
- ipaddr-cstruct<5.2.0
- irmin>=0.9.0 & <2.0.0
- irmin-git>=2.3.0
- irmin-indexeddb>=0.3
- iso-filesystem
- key-parsers>=0.5.0 & <1.2.1
- launchd
- letsencrypt=0.2.5
- letsencrypt-app<0.4.0
- macaddr-cstruct<5.2.0
- mbr-format<1.0.0
- metrics-mirage
- mirage>=0.7.2 & <0.9.1 | >=0.10.0 & <2.4.0
- mirage-block<1.0.0
- mirage-block-ccm<1.1.0
- mirage-block-ramdisk
- mirage-block-solo5<0.6.2
- mirage-block-unix<2.8.3
- mirage-block-xen<2.1.1
- mirage-btrees
- mirage-channel-lwt
- mirage-clock-unix<1.0.0
- mirage-clock-xen<1.0.0
- mirage-conduit=2.3.1
- mirage-console-lwt
- mirage-console-solo5>=0.2.0
- mirage-console-unix<2.3.2
- mirage-console-xen=4.0.0
- mirage-console-xen-backend>=2.3.2 & <2.3.4 | =4.0.0
- mirage-console-xen-cli
- mirage-dns<2.6.0
- mirage-entropy<0.5.0
- mirage-entropy-unix
- mirage-entropy-xen
- mirage-flow<1.2.0
- mirage-flow-rawlink>=1.1.0
- mirage-fs>=0.4.0 & <1.0.0
- mirage-fs-lwt
- mirage-fs-mem
- mirage-fs-unix<1.4.1
- mirage-kv-lwt
- mirage-nat<2.2.4
- mirage-net=0.5.2
- mirage-net-fd<0.2.1
- mirage-net-lwt
- mirage-net-macosx
- mirage-net-solo5
- mirage-net-unix!=2.4.1
- mirage-net-xen<1.7.0
- mirage-profile<0.8.0
- mirage-protocols-lwt
- mirage-qubes<0.8.0
- mirage-qubes-ipv4<0.9.3
- mirage-random<2.0.0
- mirage-random-stdlib
- mirage-random-test
- mirage-solo5
- mirage-stack-lwt<1.1.0
- mirage-tc
- mirage-tcpip-unix
- mirage-tcpip-xen
- mirage-types-lwt<3.4.0
- mirage-unix<3.0.8
- mirage-vnetif<0.4.0
- mirage-www<0.4.0 | >=1.1.0
- mirage-xen<2.0.0 | >=2.3.2
- monorobot
- mrt-format
- mstruct<1.3.4
- nbd>=0.9.2 & <4.0.3
- nocrypto<0.5.4
- noise
- openflow
- otr<0.3.9
- ox<1.1.1
- packet
- pbkdf<0.3.0 | =1.1.0
- pcap-format>=0.3.3
- pcf-format
- ppx_cstruct<3.0.1
- protocol-9p<0.11.2
- protocol-9p-tool=0.12.0 | >=2.0.0 & <2.0.2
- protocol-9p-unix<0.11.2
- qcow<0.11.0
- qcow-format
- qcow-tool
- randomconv<0.2.0
- rawlink<0.6
- resp-mirage=0.10.0
- rfc6287>=1.0.2 & <1.0.4
- salsa20<1.1.0
- salsa20-core<1.0.0
- scrypt-kdf<1.1.0
- sendmail>=0.4.1 & <0.5.0
- shared-block-ring<2.3.0
- shared-memory-ring<2.0.0
- slack
- ssh-agent
- tar<2.0.0
- tar-format>=0.2.0
- tar-mirage<3.0.0
- tar-unix<2.0.0
- tcpip<3.0.0
- tftp
- tls<0.9.0
- u2f=0.1.1
- vchan!=3.0.0 & <6.0.1
- vchan-unix>=4.0.0
- vchan-xen>=4.0.0
- vhd-format
- vhd-format-lwt
- vhd-tool
- vmnet
- websocket=2.2
- x509<0.6.3
- xapi-rrd-transport
- xe
- xe-unikernel-upload
- xen-api-client>=0.9.6
- xen-block-driver>=0.2.5
- xen-gnt
- xenstore>=1.2.0 & <1.3.0
- xentropyd
Optionally used by
- eqaf>=0.6 & <0.8
- frenetic>=2.0.0 & <3.2.0
- logs-syslog
- mirage-types>=1.1.0 & <3.0.0
- stog>=0.13.0 & <0.15.0