0 | module System.UV.Data.DNS
2 | import Derive.Prelude
4 | %language ElabReflection
12 | data SockFamily : Type where
14 | AF_UNSPEC : SockFamily
17 | AF_UNIX : SockFamily
20 | AF_INET : SockFamily
23 | AF_INET6 : SockFamily
25 | %runElab derive "SockFamily" [Show,Eq]
29 | data SockType : Type where
42 | %runElab derive "SockType" [Show,Eq]
45 | data Protocol : Type where
46 | IPPROTO_IP : Protocol
47 | IPPROTO_IPV6 : Protocol
48 | IPPROTO_ICMP : Protocol
49 | IPPROTO_RAW : Protocol
50 | IPPROTO_TCP : Protocol
51 | IPPROTO_UDP : Protocol
53 | %runElab derive "Protocol" [Show,Eq]
56 | familyCode : SockFamily -> Bits32
57 | familyCode AF_INET = 2
58 | familyCode AF_INET6 = 10
59 | familyCode AF_UNIX = 1
60 | familyCode AF_UNSPEC = 0
63 | sockCode : SockType -> Bits32
65 | sockCode Datagram = 2
70 | protocolCode : Protocol -> Bits32
71 | protocolCode IPPROTO_IP = 0
72 | protocolCode IPPROTO_IPV6 = 41
73 | protocolCode IPPROTO_ICMP = 1
74 | protocolCode IPPROTO_RAW = 255
75 | protocolCode IPPROTO_TCP = 6
76 | protocolCode IPPROTO_UDP = 17