|  | #pragma once | 
|  |  | 
|  | #ifndef ROS_KERN_LINUX_COMPAT_H | 
|  | #error "Do not include compat_todo.h directly" | 
|  | #endif | 
|  |  | 
|  | /* These should be moved eventually */ | 
|  |  | 
|  | /* Plan 9 could use this as a helper */ | 
|  | static inline bool is_multicast_ether_addr(uint8_t *mac) | 
|  | { | 
|  | return mac[0] & 1; | 
|  | } | 
|  |  | 
|  | /* We have this in devether, probably should expose it */ | 
|  | static inline int eaddrcmp(uint8_t *x, uint8_t *y) | 
|  | { | 
|  | uint16_t *a = (uint16_t *)x; | 
|  | uint16_t *b = (uint16_t *)y; | 
|  |  | 
|  | return (a[0] ^ b[0]) | (a[1] ^ b[1]) | (a[2] ^ b[2]); | 
|  | } | 
|  |  | 
|  |  | 
|  |  | 
|  | struct mdio_if_info {		// need to interface with mii stuff? | 
|  | }; | 
|  | struct sk_buff {		// block | 
|  | }; | 
|  | struct skb_shared_info { | 
|  | }; | 
|  | struct napi_struct {	// rewrite stuff | 
|  | }; | 
|  | struct napi_gro_cb { | 
|  | }; | 
|  | struct ifla_vf_info { | 
|  | }; | 
|  | struct ifreq { | 
|  | }; | 
|  | struct netdev_phys_item_id { | 
|  | }; | 
|  |  | 
|  | typedef int16_t __sum16; | 
|  | typedef uint16_t __le; | 
|  | typedef uint8_t __u8; | 
|  | typedef int select_queue_fallback_t; | 
|  | enum pkt_hash_types { | 
|  | Two, | 
|  | }; |