27 #ifndef __RTNET_SOCKET_H_
28 #define __RTNET_SOCKET_H_
30 #include <asm/atomic.h>
31 #include <linux/list.h>
36 #include <stack_mgr.h>
42 unsigned short protocol;
44 struct rtskb_pool skb_pool;
45 unsigned int pool_size;
46 struct mutex pool_nrt_lock;
48 struct rtskb_queue incoming;
52 unsigned int priority;
55 rtdm_sem_t pending_sem;
57 void (*callback_func)(
struct rtdm_fd *,
void *arg);
77 struct rtpacket_type packet_type;
84 static inline struct rtdm_fd *rt_socket_fd(
struct rtsocket *sock)
89 #define rt_socket_reference(sock) \
90 rtdm_fd_lock(rt_socket_fd(sock))
91 #define rt_socket_dereference(sock) \
92 rtdm_fd_unlock(rt_socket_fd(sock))
94 int rt_socket_init(
struct rtdm_fd *fd,
unsigned short protocol);
95 void rt_socket_cleanup(
struct rtdm_fd *fd);
96 int rt_socket_common_ioctl(
struct rtdm_fd *fd,
int request,
void *arg);
97 int rt_socket_if_ioctl(
struct rtdm_fd *fd,
int request,
void *arg);
98 int rt_socket_select_bind(
struct rtdm_fd *fd,
99 rtdm_selector_t *selector,
103 int rt_bare_socket_init(
struct rtdm_fd *fd,
unsigned short protocol,
104 unsigned int priority,
unsigned int pool_size);
106 static inline void rt_bare_socket_cleanup(
struct rtsocket *sock)
108 rtskb_pool_release(&sock->skb_pool);
ipipe_spinlock_t rtdm_lock_t
Lock variable.
Definition: driver.h:528
int64_t nanosecs_rel_t
RTDM type for representing relative intervals.
Definition: rtdm.h:49
Real-Time Driver Model for Xenomai, driver API header.
rtdm_selecttype
Definition: driver.h:108
static struct rtdm_fd * rtdm_private_to_fd(void *dev_private)
Locate a device file descriptor structure from its driver private area.
Definition: driver.h:171