C Header File Conversion
dominic.j.steinitz@britishairways.com
dominic.j.steinitz@britishairways.com
Sat, 4 May 2002 18:30:15 +0100
I need to use values that are kept in a C header file - see below for an
extract of the header file. What I'd like to be able to say is
import Word
import Bits
data ICMPType = EchoReply
| ICMPType1
| ICMPType2
| DestUnreach
| SourceQuench ...
deriving Enum
encode :: ICMPType -> Word8
encode x = fromIntegral (fromEnum x)
Is this a sensible approach? Are there any tools that could help?
C->Haskell and HaskellDirect look possibilities but I'd welcome advice
before I try and install them.
Many thanks, Dominic.
#define ICMP_ECHOREPLY 0 /* Echo Reply */
#define ICMP_DEST_UNREACH 3 /* Destination Unreachable */
#define ICMP_SOURCE_QUENCH 4 /* Source Quench */
#define ICMP_REDIRECT 5 /* Redirect (change route) */
#define ICMP_ECHO 8 /* Echo Request */
#define ICMP_TIME_EXCEEDED 11 /* Time Exceeded */
#define ICMP_PARAMETERPROB 12 /* Parameter Problem */
#define ICMP_TIMESTAMP 13 /* Timestamp Request */
#define ICMP_TIMESTAMPREPLY 14 /* Timestamp Reply */
#define ICMP_INFO_REQUEST 15 /* Information Request */
#define ICMP_INFO_REPLY 16 /* Information Reply */
#define ICMP_ADDRESS 17 /* Address Mask Request */
#define ICMP_ADDRESSREPLY 18 /* Address Mask Reply */
#define NR_ICMP_TYPES 18