20 #ifndef __RTNET_PORT_H_ 21 #define __RTNET_PORT_H_ 25 #include <linux/bitops.h> 26 #include <linux/moduleparam.h> 27 #include <linux/list.h> 28 #include <linux/netdevice.h> 29 #include <linux/vmalloc.h> 30 #include <linux/bitops.h> 33 #include <rtdev_mgr.h> 35 #include <stack_mgr.h> 36 #include <ethernet/eth.h> 38 static inline void rtnetif_start_queue(
struct rtnet_device *rtdev)
40 clear_bit(__RTNET_LINK_STATE_XOFF, &rtdev->link_state);
43 static inline void rtnetif_wake_queue(
struct rtnet_device *rtdev)
45 if (test_and_clear_bit(__RTNET_LINK_STATE_XOFF, &rtdev->link_state))
49 static inline void rtnetif_stop_queue(
struct rtnet_device *rtdev)
51 set_bit(__RTNET_LINK_STATE_XOFF, &rtdev->link_state);
54 static inline int rtnetif_queue_stopped(
struct rtnet_device *rtdev)
56 return test_bit(__RTNET_LINK_STATE_XOFF, &rtdev->link_state);
59 static inline int rtnetif_running(
struct rtnet_device *rtdev)
61 return test_bit(__RTNET_LINK_STATE_START, &rtdev->link_state);
64 static inline int rtnetif_device_present(
struct rtnet_device *rtdev)
66 return test_bit(__RTNET_LINK_STATE_PRESENT, &rtdev->link_state);
69 static inline void rtnetif_device_detach(
struct rtnet_device *rtdev)
71 if (test_and_clear_bit(__RTNET_LINK_STATE_PRESENT,
72 &rtdev->link_state) &&
73 rtnetif_running(rtdev)) {
74 rtnetif_stop_queue(rtdev);
78 static inline void rtnetif_device_attach(
struct rtnet_device *rtdev)
80 if (!test_and_set_bit(__RTNET_LINK_STATE_PRESENT, &rtdev->link_state) &&
81 rtnetif_running(rtdev)) {
82 rtnetif_wake_queue(rtdev);
87 static inline void rtnetif_carrier_on(
struct rtnet_device *rtdev)
89 clear_bit(__RTNET_LINK_STATE_NOCARRIER, &rtdev->link_state);
96 static inline void rtnetif_carrier_off(
struct rtnet_device *rtdev)
98 set_bit(__RTNET_LINK_STATE_NOCARRIER, &rtdev->link_state);
101 static inline int rtnetif_carrier_ok(
struct rtnet_device *rtdev)
103 return !test_bit(__RTNET_LINK_STATE_NOCARRIER, &rtdev->link_state);
106 #define NIPQUAD(addr) \ 107 ((unsigned char *)&addr)[0], ((unsigned char *)&addr)[1], \ 108 ((unsigned char *)&addr)[2], ((unsigned char *)&addr)[3] 109 #define NIPQUAD_FMT "%u.%u.%u.%u" Real-Time Driver Model for Xenomai, driver API header.