Inter-Driver API
[Driver Development API]


Functions

rtdm_dev_contextrtdm_context_get (int fd)
 Resolve file descriptor to device context.
void rtdm_context_lock (struct rtdm_dev_context *context)
 Increment context reference counter.
void rtdm_context_unlock (struct rtdm_dev_context *context)
 Decrement context reference counter.
int rtdm_open (const char *path, int oflag,...)
 Open a device.
int rtdm_socket (int protocol_family, int socket_type, int protocol)
 Create a socket.
int rtdm_close (int fd)
 Close a device or socket.
int rtdm_ioctl (int fd, int request,...)
 Issue an IOCTL.
ssize_t rtdm_read (int fd, void *buf, size_t nbyte)
 Read from device.
ssize_t rtdm_write (int fd, const void *buf, size_t nbyte)
 Write to device.
ssize_t rtdm_recvmsg (int fd, struct msghdr *msg, int flags)
 Receive message from socket.
ssize_t rtdm_recvfrom (int fd, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlen)
 Receive message from socket.
ssize_t rtdm_recv (int fd, void *buf, size_t len, int flags)
 Receive message from socket.
ssize_t rtdm_sendmsg (int fd, const struct msghdr *msg, int flags)
 Transmit message to socket.
ssize_t rtdm_sendto (int fd, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen)
 Transmit message to socket.
ssize_t rtdm_send (int fd, const void *buf, size_t len, int flags)
 Transmit message to socket.
int rtdm_bind (int fd, const struct sockaddr *my_addr, socklen_t addrlen)
 Bind to local address.
int rtdm_connect (int fd, const struct sockaddr *serv_addr, socklen_t addrlen)
 Connect to remote address.
int rtdm_listen (int fd, int backlog)
 Listen for incomming connection requests.
int rtdm_accept (int fd, struct sockaddr *addr, socklen_t *addrlen)
 Accept a connection requests.
int rtdm_shutdown (int fd, int how)
 Shut down parts of a connection.
int rtdm_getsockopt (int fd, int level, int optname, void *optval, socklen_t *optlen)
 Get socket option.
int rtdm_setsockopt (int fd, int level, int optname, const void *optval, socklen_t optlen)
 Set socket option.
int rtdm_getsockname (int fd, struct sockaddr *name, socklen_t *namelen)
 Get local socket address.
int rtdm_getpeername (int fd, struct sockaddr *name, socklen_t *namelen)
 Get socket destination address.


Function Documentation

int rtdm_accept int  fd,
struct sockaddr *  addr,
socklen_t *  addrlen
 

Accept a connection requests.

Refer to rt_dev_accept() for parameters and return values

Environments:

Depends on driver implementation, see Device Profiles.

Rescheduling: possible.

int rtdm_bind int  fd,
const struct sockaddr *  my_addr,
socklen_t  addrlen
 

Bind to local address.

Refer to rt_dev_bind() for parameters and return values

Environments:

Depends on driver implementation, see Device Profiles.

Rescheduling: possible.

int rtdm_close int  fd  ) 
 

Close a device or socket.

Refer to rt_dev_close() for parameters and return values

Environments:

Depends on driver implementation, see Device Profiles.

Rescheduling: possible.

int rtdm_connect int  fd,
const struct sockaddr *  serv_addr,
socklen_t  addrlen
 

Connect to remote address.

Refer to rt_dev_connect() for parameters and return values

Environments:

Depends on driver implementation, see Device Profiles.

Rescheduling: possible.

struct rtdm_dev_context* rtdm_context_get int  fd  ) 
 

Resolve file descriptor to device context.

Parameters:
[in] fd File descriptor
Returns:
Pointer to associated device context, or NULL on error
Note:
The device context has to be unlocked using rtdm_context_unlock() when it is no longer referenced.
Environments:

This service can be called from:

  • Kernel module initialization/cleanup code
  • Interrupt service routine
  • Kernel-based task
  • User-space task (RT, non-RT)

Rescheduling: never.

void rtdm_context_lock struct rtdm_dev_context context  ) 
 

Increment context reference counter.

Parameters:
[in] context Device context
Note:
rtdm_context_get() automatically increments the lock counter. You only need to call this function in special scenrios.
Environments:

This service can be called from:

  • Kernel module initialization/cleanup code
  • Interrupt service routine
  • Kernel-based task
  • User-space task (RT, non-RT)

Rescheduling: never.

void rtdm_context_unlock struct rtdm_dev_context context  ) 
 

Decrement context reference counter.

Parameters:
[in] context Device context
Note:
Every successful call to rtdm_context_get() must be matched by a rtdm_context_unlock() invocation.
Environments:

This service can be called from:

  • Kernel module initialization/cleanup code
  • Interrupt service routine
  • Kernel-based task
  • User-space task (RT, non-RT)

Rescheduling: never.

int rtdm_getpeername int  fd,
struct sockaddr *  name,
socklen_t *  namelen
 

Get socket destination address.

Refer to rt_dev_getpeername() for parameters and return values

Environments:

Depends on driver implementation, see Device Profiles.

Rescheduling: possible.

int rtdm_getsockname int  fd,
struct sockaddr *  name,
socklen_t *  namelen
 

Get local socket address.

Refer to rt_dev_getsockname() for parameters and return values

Environments:

Depends on driver implementation, see Device Profiles.

Rescheduling: possible.

int rtdm_getsockopt int  fd,
int  level,
int  optname,
void *  optval,
socklen_t *  optlen
 

Get socket option.

Refer to rt_dev_getsockopt() for parameters and return values

Environments:

Depends on driver implementation, see Device Profiles.

Rescheduling: possible.

int rtdm_ioctl int  fd,
int  request,
  ...
 

Issue an IOCTL.

Refer to rt_dev_ioctl() for parameters and return values

Environments:

Depends on driver implementation, see Device Profiles.

Rescheduling: possible.

int rtdm_listen int  fd,
int  backlog
 

Listen for incomming connection requests.

Refer to rt_dev_listen() for parameters and return values

Environments:

Depends on driver implementation, see Device Profiles.

Rescheduling: possible.

int rtdm_open const char *  path,
int  oflag,
  ...
 

Open a device.

Refer to rt_dev_open() for parameters and return values

Environments:

Depends on driver implementation, see Device Profiles.

Rescheduling: possible.

ssize_t rtdm_read int  fd,
void *  buf,
size_t  nbyte
 

Read from device.

Refer to rt_dev_read() for parameters and return values

Environments:

Depends on driver implementation, see Device Profiles.

Rescheduling: possible.

ssize_t rtdm_recv int  fd,
void *  buf,
size_t  len,
int  flags
 

Receive message from socket.

Refer to rt_dev_recv() for parameters and return values

Environments:

Depends on driver implementation, see Device Profiles.

Rescheduling: possible.

ssize_t rtdm_recvfrom int  fd,
void *  buf,
size_t  len,
int  flags,
struct sockaddr *  from,
socklen_t *  fromlen
 

Receive message from socket.

Refer to rt_dev_recvfrom() for parameters and return values

Environments:

Depends on driver implementation, see Device Profiles.

Rescheduling: possible.

ssize_t rtdm_recvmsg int  fd,
struct msghdr *  msg,
int  flags
 

Receive message from socket.

Refer to rt_dev_recvmsg() for parameters and return values

Environments:

Depends on driver implementation, see Device Profiles.

Rescheduling: possible.

ssize_t rtdm_send int  fd,
const void *  buf,
size_t  len,
int  flags
 

Transmit message to socket.

Refer to rt_dev_send() for parameters and return values

Environments:

Depends on driver implementation, see Device Profiles.

Rescheduling: possible.

ssize_t rtdm_sendmsg int  fd,
const struct msghdr *  msg,
int  flags
 

Transmit message to socket.

Refer to rt_dev_sendmsg() for parameters and return values

Environments:

Depends on driver implementation, see Device Profiles.

Rescheduling: possible.

ssize_t rtdm_sendto int  fd,
const void *  buf,
size_t  len,
int  flags,
const struct sockaddr *  to,
socklen_t  tolen
 

Transmit message to socket.

Refer to rt_dev_sendto() for parameters and return values

Environments:

Depends on driver implementation, see Device Profiles.

Rescheduling: possible.

int rtdm_setsockopt int  fd,
int  level,
int  optname,
const void *  optval,
socklen_t  optlen
 

Set socket option.

Refer to rt_dev_setsockopt() for parameters and return values

Environments:

Depends on driver implementation, see Device Profiles.

Rescheduling: possible.

int rtdm_shutdown int  fd,
int  how
 

Shut down parts of a connection.

Refer to rt_dev_shutdown() for parameters and return values

Environments:

Depends on driver implementation, see Device Profiles.

Rescheduling: possible.

int rtdm_socket int  protocol_family,
int  socket_type,
int  protocol
 

Create a socket.

Refer to rt_dev_socket() for parameters and return values

Environments:

Depends on driver implementation, see Device Profiles.

Rescheduling: possible.

ssize_t rtdm_write int  fd,
const void *  buf,
size_t  nbyte
 

Write to device.

Refer to rt_dev_write() for parameters and return values

Environments:

Depends on driver implementation, see Device Profiles.

Rescheduling: possible.


Generated on Mon Dec 25 13:57:11 2006 for Xenomai API by  doxygen 1.4.6