#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;
-};
-
-/* CEGW_CMD_INFO values */
-enum {
- CEGW_RULE_CAN_ETH,
- CEGW_RULE_ETH_CAN,
- CEGW_LISTEN,
- CEGW_FLUSH,
- __CEGW_CMD_MAX
-};
-#define CEGW_CMD_MAX (__CEGW_CMD_MAX - 1)
-
-/* rtnetlink attributes */
-enum {
- CEGW_TYPE,
- CEGW_CAN_IFINDEX,
- CEGW_ETH_IP,
- CEGW_ETH_PORT,
- CEGW_CMD_INFO,
- __CEGW_MAX
-};
-#define CEGW_MAX (__CEGW_MAX - 1)
-
-struct cegw_udp_dst
-{
- __u32 len;
- struct sockaddr addr;
-};
-
-struct cegw_udp_dst4
-{
- __u32 len;
- struct sockaddr_in addr;
-};
struct cegw_ioctl
{
__u32 can_sock;
- __u32 udp_sock;;
+ __u32 udp_sock;
__u32 udp_dstcnt;
__u32 udp_addrlen;
struct sockaddr_in udp_dst[0];
};
+#ifdef __KERNEL__
struct cegw_job
{
+ struct kref refcount;
struct socket* can_sock;
struct socket* udp_sock;
__u32 udp_dstcnt;
- struct sockaddr_in* udp_dst;
+ struct sockaddr_in udp_dst[0];
};
+#endif
#define CEGW_IOCTL_BASE 'c'
#define CEGW_IOCTL_START _IOW(CEGW_IOCTL_BASE, 0, struct cegw_ioctl)
-/* ToDo:
- * CEGW_HANDLED
- * CEGW_DROPPED
- * CEGW_ETH_PROTO
- */
-
#endif /* CANETHGW_H */