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> 39 unsigned short protocol;
41 struct rtskb_pool skb_pool;
42 unsigned int pool_size;
43 struct mutex pool_nrt_lock;
45 struct rtskb_queue incoming;
49 unsigned int priority;
52 rtdm_sem_t pending_sem;
54 void (*callback_func)(
struct rtdm_fd *,
void *arg);
74 struct rtpacket_type packet_type;
80 static inline struct rtdm_fd *rt_socket_fd(
struct rtsocket *sock)
85 void *rtnet_get_arg(
struct rtdm_fd *fd,
void *tmp,
const void *src,
size_t len);
87 int rtnet_put_arg(
struct rtdm_fd *fd,
void *dst,
const void *src,
size_t len);
89 #define rt_socket_reference(sock) rtdm_fd_lock(rt_socket_fd(sock)) 90 #define rt_socket_dereference(sock) rtdm_fd_unlock(rt_socket_fd(sock)) 92 int rt_socket_init(
struct rtdm_fd *fd,
unsigned short protocol);
94 void rt_socket_cleanup(
struct rtdm_fd *fd);
95 int rt_socket_common_ioctl(
struct rtdm_fd *fd,
int request,
void __user *arg);
96 int rt_socket_if_ioctl(
struct rtdm_fd *fd,
int request,
void __user *arg);
97 int rt_socket_select_bind(
struct rtdm_fd *fd, rtdm_selector_t *selector,
100 int rt_bare_socket_init(
struct rtdm_fd *fd,
unsigned short protocol,
101 unsigned int priority,
unsigned int pool_size);
103 static inline void rt_bare_socket_cleanup(
struct rtsocket *sock)
105 rtskb_pool_release(&sock->skb_pool);
ipipe_spinlock_t rtdm_lock_t
Lock variable.
Definition: driver.h:551
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:111
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:174