-static int gw_udp_recv( void* data );
-static void gw_udp_send( struct can_frame* cf, struct in_addr ipaddr, u16 port );
-static int gw_can_recv( void* data );
-static void gw_can_send( struct can_frame* cf, int ifidx );
+#ifndef CANETHGW_H
+#define CANETHGW_H
+
+#include <linux/types.h>
+#include <linux/can.h>
+
+/* these are from gw.h */
+struct rtcanmsg {
+ __u8 can_family;
+ __u8 gwtype;
+ __u16 flags;
+};
+
+enum {
+ CGW_TYPE_UNSPEC,
+ CGW_TYPE_CAN_CAN, /* CAN->CAN routing */
+ CGW_TYPE_CAN_ETH_UDP, /* CAN->ETH udp */
+ CGW_TYPE_ETH_CAN_UDP, /* ETH->CAN udp */
+ CGW_TYPE_CAN_ETH_TCP,
+ CGW_TYPE_CONFIG,
+ __CGW_TYPE_MAX
+};
+
+#define CGW_TYPE_MAX (__CGW_TYPE_MAX - 1)
+
+enum {
+ CGW_UNSPEC,
+ CGW_MOD_AND, /* CAN frame modification binary AND */
+ CGW_MOD_OR, /* CAN frame modification binary OR */
+ CGW_MOD_XOR, /* CAN frame modification binary XOR */
+ CGW_MOD_SET, /* CAN frame modification set alternate values */
+ CGW_CS_XOR, /* set data[] XOR checksum into data[index] */
+ CGW_CS_CRC8, /* set data[] CRC8 checksum into data[index] */
+ CGW_HANDLED, /* number of handled CAN frames */
+ CGW_DROPPED, /* number of dropped CAN frames */
+ CGW_CAN_IF, /* ifindex of source network interface */
+ CGW_LISTEN_IP,
+ CGW_LISTEN_PORT,
+ CGW_ETH_IP,
+ CGW_ETH_PORT,
+ CGW_ETH_PROTO, /* ifindex of destination network interface */
+ CGW_FILTER, /* specify struct can_filter on source CAN device */
+ __CGW_MAX
+};
+
+#define CGW_MAX (__CGW_MAX - 1)
+#endif /* CANETHGW_H */
+