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;
86 static inline struct rtdm_fd *rt_socket_fd(
struct rtsocket *sock)
91 #define rt_socket_reference(sock) \ 92 rtdm_fd_lock(rt_socket_fd(sock)) 93 #define rt_socket_dereference(sock) \ 94 rtdm_fd_unlock(rt_socket_fd(sock)) 96 int __rt_socket_init(
struct rtdm_fd *fd,
unsigned short protocol,
97 struct module *module);
98 #define rt_socket_init(fd, proto) \ 99 __rt_socket_init(fd, proto, THIS_MODULE) 101 void rt_socket_cleanup(
struct rtdm_fd *fd);
102 int rt_socket_common_ioctl(
struct rtdm_fd *fd,
int request,
void *arg);
103 int rt_socket_if_ioctl(
struct rtdm_fd *fd,
int request,
void *arg);
104 int rt_socket_select_bind(
struct rtdm_fd *fd,
105 rtdm_selector_t *selector,
109 int __rt_bare_socket_init(
struct rtdm_fd *fd,
unsigned short protocol,
110 unsigned int priority,
unsigned int pool_size,
111 struct module *module);
112 #define rt_bare_socket_init(fd, proto, prio, pool_sz) \ 113 __rt_bare_socket_init(fd, proto, prio, pool_sz, THIS_MODULE) 115 static inline void rt_bare_socket_cleanup(
struct rtsocket *sock)
117 rtskb_pool_release(&sock->skb_pool);
118 module_put(sock->owner);
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