27#ifndef __RTNET_SOCKET_H_
28#define __RTNET_SOCKET_H_
30#include <asm/atomic.h>
31#include <linux/list.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;
80static inline struct rtdm_fd *rt_socket_fd(
struct rtsocket *sock)
85void *rtnet_get_arg(
struct rtdm_fd *fd,
void *tmp,
const void *src,
size_t len);
87int 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))
92int rt_socket_init(
struct rtdm_fd *fd,
unsigned short protocol);
94void rt_socket_cleanup(
struct rtdm_fd *fd);
95int rt_socket_common_ioctl(
struct rtdm_fd *fd,
int request,
void __user *arg);
96int rt_socket_if_ioctl(
struct rtdm_fd *fd,
int request,
void __user *arg);
97int rt_socket_select_bind(
struct rtdm_fd *fd, rtdm_selector_t *selector,
100int rt_bare_socket_init(
struct rtdm_fd *fd,
unsigned short protocol,
101 unsigned int priority,
unsigned int pool_size);
103static inline void rt_bare_socket_cleanup(
struct rtsocket *sock)
105 rtskb_pool_release(&sock->skb_pool);
Real-Time Driver Model for Xenomai, driver API header.
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:176
pipeline_spinlock_t rtdm_lock_t
Lock variable.
Definition driver.h:552
rtdm_selecttype
Definition driver.h:113
int64_t nanosecs_rel_t
RTDM type for representing relative intervals.
Definition rtdm.h:49