Module: xenomai-2.6
Branch: wip/4.x-fixups
Commit: 54515995de2143734b16b16ba3419cdf016fc0dd
URL:    
http://git.xenomai.org/?p=xenomai-2.6.git;a=commit;h=54515995de2143734b16b16ba3419cdf016fc0dd

Author: Philippe Gerum <r...@xenomai.org>
Date:   Wed May 25 14:32:05 2016 +0200

ksrc, include: cope with introduction of user_msghdr

---

 include/rtdm/rtcan.h         |    2 +-
 include/rtdm/rtdm.h          |   15 +++++++++------
 include/rtdm/rtdm_driver.h   |    4 ++--
 include/rtdm/rtipc.h         |    4 ++--
 ksrc/drivers/can/rtcan_raw.c |    6 +++---
 ksrc/drivers/ipc/bufp.c      |    4 ++--
 ksrc/drivers/ipc/iddp.c      |    4 ++--
 ksrc/drivers/ipc/internal.h  |    4 ++--
 ksrc/drivers/ipc/rtipc.c     |    4 ++--
 ksrc/drivers/ipc/xddp.c      |    4 ++--
 ksrc/skins/rtdm/core.c       |   12 ++++++------
 ksrc/skins/rtdm/syscall.c    |    4 ++--
 12 files changed, 35 insertions(+), 32 deletions(-)

diff --git a/include/rtdm/rtcan.h b/include/rtdm/rtcan.h
index b8bd762..3ff7651 100644
--- a/include/rtdm/rtcan.h
+++ b/include/rtdm/rtcan.h
@@ -146,7 +146,7 @@
  * It is possible to receive a high precision timestamp with every CAN
  * message. The condition is a former instruction to the socket via
  * @ref RTCAN_RTIOC_TAKE_TIMESTAMP. The timestamp will be copied to the
- * @c msg_control buffer of <TT>struct msghdr</TT> if it points to a valid
+ * @c msg_control buffer of <TT>struct user_msghdr</TT> if it points to a valid
  * memory location with size of @ref nanosecs_abs_t. If this
  * is a NULL pointer the timestamp will be discarded silently. @n
  * @n
diff --git a/include/rtdm/rtdm.h b/include/rtdm/rtdm.h
index d907f08..64accfc 100644
--- a/include/rtdm/rtdm.h
+++ b/include/rtdm/rtdm.h
@@ -54,6 +54,7 @@
 #include <linux/ioctl.h>
 #include <linux/sched.h>
 #include <linux/socket.h>
+#include <asm/xenomai/wrappers.h>
 
 typedef u32 socklen_t;
 typedef struct task_struct rtdm_user_info_t;
@@ -247,9 +248,9 @@ ssize_t __rt_dev_read(rtdm_user_info_t *user_info, int fd, 
void *buf,
 ssize_t __rt_dev_write(rtdm_user_info_t *user_info, int fd, const void *buf,
                       size_t nbyte);
 ssize_t __rt_dev_recvmsg(rtdm_user_info_t *user_info, int fd,
-                        struct msghdr *msg, int flags);
+                        struct user_msghdr *msg, int flags);
 ssize_t __rt_dev_sendmsg(rtdm_user_info_t *user_info, int fd,
-                        const struct msghdr *msg, int flags);
+                        const struct user_msghdr *msg, int flags);
 #endif /* __KERNEL__ */
 
 /* Define RTDM_NO_DEFAULT_USER_API to switch off the default rt_dev_xxx
@@ -287,7 +288,7 @@ static inline ssize_t rt_dev_recvfrom(int fd, void *buf, 
size_t len, int flags,
                                      socklen_t *fromlen)
 {
        struct iovec iov;
-       struct msghdr msg;
+       struct user_msghdr msg;
        int ret;
 
        iov.iov_base = buf;
@@ -308,6 +309,8 @@ static inline ssize_t rt_dev_recvfrom(int fd, void *buf, 
size_t len, int flags,
 
 #else /* !__KERNEL__ */
 
+#define user_msghdr msghdr
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -318,8 +321,8 @@ int rt_dev_close(int fd);
 int rt_dev_ioctl(int fd, int request, ...);
 ssize_t rt_dev_read(int fd, void *buf, size_t nbyte);
 ssize_t rt_dev_write(int fd, const void *buf, size_t nbyte);
-ssize_t rt_dev_recvmsg(int fd, struct msghdr *msg, int flags);
-ssize_t rt_dev_sendmsg(int fd, const struct msghdr *msg, int flags);
+ssize_t rt_dev_recvmsg(int fd, struct user_msghdr *msg, int flags);
+ssize_t rt_dev_sendmsg(int fd, const struct user_msghdr *msg, int flags);
 
 ssize_t rt_dev_recvfrom(int fd, void *buf, size_t len, int flags,
                        struct sockaddr *from, socklen_t *fromlen);
@@ -344,7 +347,7 @@ static inline ssize_t rt_dev_sendto(int fd, const void 
*buf, size_t len,
                                    socklen_t tolen)
 {
        struct iovec iov;
-       struct msghdr msg;
+       struct user_msghdr msg;
 
        iov.iov_base = (void *)buf;
        iov.iov_len = len;
diff --git a/include/rtdm/rtdm_driver.h b/include/rtdm/rtdm_driver.h
index 15d61d3..f0f82b7 100644
--- a/include/rtdm/rtdm_driver.h
+++ b/include/rtdm/rtdm_driver.h
@@ -305,7 +305,7 @@ typedef ssize_t (*rtdm_write_handler_t)(struct 
rtdm_dev_context *context,
  * http://www.opengroup.org/onlinepubs/009695399 */
 typedef ssize_t (*rtdm_recvmsg_handler_t)(struct rtdm_dev_context *context,
                                          rtdm_user_info_t *user_info,
-                                         struct msghdr *msg, int flags);
+                                         struct user_msghdr *msg, int flags);
 
 /**
  * Transmit message handler
@@ -325,7 +325,7 @@ typedef ssize_t (*rtdm_recvmsg_handler_t)(struct 
rtdm_dev_context *context,
  * http://www.opengroup.org/onlinepubs/009695399 */
 typedef ssize_t (*rtdm_sendmsg_handler_t)(struct rtdm_dev_context *context,
                                          rtdm_user_info_t *user_info,
-                                         const struct msghdr *msg, int flags);
+                                         const struct user_msghdr *msg, int 
flags);
 /** @} Operation Handler Prototypes */
 
 typedef int (*rtdm_rt_handler_t)(struct rtdm_dev_context *context,
diff --git a/include/rtdm/rtipc.h b/include/rtdm/rtipc.h
index d69518d..fa00838 100644
--- a/include/rtdm/rtipc.h
+++ b/include/rtdm/rtipc.h
@@ -291,7 +291,7 @@ int getsockopt__AF_RTIPC(int sockfd, int level, int optname,
  * RT
  */
 #ifdef DOXYGEN_CPP
-ssize_t sendmsg__AF_RTIPC(int sockfd, const struct msghdr *msg, int flags);
+ssize_t sendmsg__AF_RTIPC(int sockfd, const struct user_msghdr *msg, int 
flags);
 #endif
 
 /**
@@ -321,7 +321,7 @@ ssize_t sendmsg__AF_RTIPC(int sockfd, const struct msghdr 
*msg, int flags);
  * RT
  */
 #ifdef DOXYGEN_CPP
-ssize_t recvmsg__AF_RTIPC(int sockfd, struct msghdr *msg, int flags);
+ssize_t recvmsg__AF_RTIPC(int sockfd, struct user_msghdr *msg, int flags);
 #endif
 
 /**
diff --git a/ksrc/drivers/can/rtcan_raw.c b/ksrc/drivers/can/rtcan_raw.c
index ded024e..7d9b5d0 100644
--- a/ksrc/drivers/can/rtcan_raw.c
+++ b/ksrc/drivers/can/rtcan_raw.c
@@ -541,7 +541,7 @@ int rtcan_raw_ioctl(struct rtdm_dev_context *context,
 
 ssize_t rtcan_raw_recvmsg(struct rtdm_dev_context *context,
                          rtdm_user_info_t *user_info,
-                         struct msghdr *msg, int flags)
+                         struct user_msghdr *msg, int flags)
 {
     struct rtcan_socket *sock =
        (struct rtcan_socket *)&context->dev_private;
@@ -568,7 +568,7 @@ ssize_t rtcan_raw_recvmsg(struct rtdm_dev_context *context,
        return -EINVAL;
 
 
-    /* Check if msghdr entries are sane */
+    /* Check if user_msghdr entries are sane */
 
     if (msg->msg_name != NULL) {
        if (msg->msg_namelen < sizeof(struct sockaddr_can))
@@ -784,7 +784,7 @@ ssize_t rtcan_raw_recvmsg(struct rtdm_dev_context *context,
 
 ssize_t rtcan_raw_sendmsg(struct rtdm_dev_context *context,
                          rtdm_user_info_t *user_info,
-                         const struct msghdr *msg, int flags)
+                         const struct user_msghdr *msg, int flags)
 {
     struct rtcan_socket *sock =
        (struct rtcan_socket *)&context->dev_private;
diff --git a/ksrc/drivers/ipc/bufp.c b/ksrc/drivers/ipc/bufp.c
index ef92b8c..c6b0e19 100644
--- a/ksrc/drivers/ipc/bufp.c
+++ b/ksrc/drivers/ipc/bufp.c
@@ -374,7 +374,7 @@ static ssize_t __bufp_recvmsg(struct rtipc_private *priv,
 
 static ssize_t bufp_recvmsg(struct rtipc_private *priv,
                            rtdm_user_info_t *user_info,
-                           struct msghdr *msg, int flags)
+                           struct user_msghdr *msg, int flags)
 {
        struct iovec iov[RTIPC_IOV_MAX];
        struct sockaddr_ipc saddr;
@@ -623,7 +623,7 @@ fail:
 
 static ssize_t bufp_sendmsg(struct rtipc_private *priv,
                            rtdm_user_info_t *user_info,
-                           const struct msghdr *msg, int flags)
+                           const struct user_msghdr *msg, int flags)
 {
        struct bufp_socket *sk = priv->state;
        struct iovec iov[RTIPC_IOV_MAX];
diff --git a/ksrc/drivers/ipc/iddp.c b/ksrc/drivers/ipc/iddp.c
index c532575..3ecfb2a 100644
--- a/ksrc/drivers/ipc/iddp.c
+++ b/ksrc/drivers/ipc/iddp.c
@@ -331,7 +331,7 @@ static ssize_t __iddp_recvmsg(struct rtipc_private *priv,
 
 static ssize_t iddp_recvmsg(struct rtipc_private *priv,
                            rtdm_user_info_t *user_info,
-                           struct msghdr *msg, int flags)
+                           struct user_msghdr *msg, int flags)
 {
        struct iovec iov[RTIPC_IOV_MAX];
        struct sockaddr_ipc saddr;
@@ -469,7 +469,7 @@ fail:
 
 static ssize_t iddp_sendmsg(struct rtipc_private *priv,
                            rtdm_user_info_t *user_info,
-                           const struct msghdr *msg, int flags)
+                           const struct user_msghdr *msg, int flags)
 {
        struct iddp_socket *sk = priv->state;
        struct iovec iov[RTIPC_IOV_MAX];
diff --git a/ksrc/drivers/ipc/internal.h b/ksrc/drivers/ipc/internal.h
index 302317d..f5a8e69 100644
--- a/ksrc/drivers/ipc/internal.h
+++ b/ksrc/drivers/ipc/internal.h
@@ -46,10 +46,10 @@ struct rtipc_protocol {
                             rtdm_user_info_t *user_info);
                ssize_t (*recvmsg)(struct rtipc_private *priv,
                                   rtdm_user_info_t *user_info,
-                                  struct msghdr *msg, int flags);
+                                  struct user_msghdr *msg, int flags);
                ssize_t (*sendmsg)(struct rtipc_private *priv,
                                   rtdm_user_info_t *user_info,
-                                  const struct msghdr *msg, int flags);
+                                  const struct user_msghdr *msg, int flags);
                ssize_t (*read)(struct rtipc_private *priv,
                                rtdm_user_info_t *user_info,
                                void *buf, size_t len);
diff --git a/ksrc/drivers/ipc/rtipc.c b/ksrc/drivers/ipc/rtipc.c
index fae7742..08f6437 100644
--- a/ksrc/drivers/ipc/rtipc.c
+++ b/ksrc/drivers/ipc/rtipc.c
@@ -178,7 +178,7 @@ static int rtipc_close(struct rtdm_dev_context *context,
 
 static ssize_t rtipc_recvmsg(struct rtdm_dev_context *context,
                             rtdm_user_info_t *user_info,
-                            struct msghdr *msg, int flags)
+                            struct user_msghdr *msg, int flags)
 {
        struct rtipc_private *p = rtdm_context_to_private(context);
        return p->proto->proto_ops.recvmsg(p, user_info, msg, flags);
@@ -186,7 +186,7 @@ static ssize_t rtipc_recvmsg(struct rtdm_dev_context 
*context,
 
 static ssize_t rtipc_sendmsg(struct rtdm_dev_context *context,
                             rtdm_user_info_t *user_info,
-                            const struct msghdr *msg, int flags)
+                            const struct user_msghdr *msg, int flags)
 {
        struct rtipc_private *p = rtdm_context_to_private(context);
        return p->proto->proto_ops.sendmsg(p, user_info, msg, flags);
diff --git a/ksrc/drivers/ipc/xddp.c b/ksrc/drivers/ipc/xddp.c
index d990e6a..b9b6473 100644
--- a/ksrc/drivers/ipc/xddp.c
+++ b/ksrc/drivers/ipc/xddp.c
@@ -332,7 +332,7 @@ out:
 
 static ssize_t xddp_recvmsg(struct rtipc_private *priv,
                            rtdm_user_info_t *user_info,
-                           struct msghdr *msg, int flags)
+                           struct user_msghdr *msg, int flags)
 {
        struct iovec iov[RTIPC_IOV_MAX];
        struct sockaddr_ipc saddr;
@@ -590,7 +590,7 @@ nostream:
 
 static ssize_t xddp_sendmsg(struct rtipc_private *priv,
                            rtdm_user_info_t *user_info,
-                           const struct msghdr *msg, int flags)
+                           const struct user_msghdr *msg, int flags)
 {
        struct xddp_socket *sk = priv->state;
        struct iovec iov[RTIPC_IOV_MAX];
diff --git a/ksrc/skins/rtdm/core.c b/ksrc/skins/rtdm/core.c
index edf8494..a9c2c53 100644
--- a/ksrc/skins/rtdm/core.c
+++ b/ksrc/skins/rtdm/core.c
@@ -564,7 +564,7 @@ ssize_t __rt_dev_write(rtdm_user_info_t *user_info, int fd, 
const void *buf,
 EXPORT_SYMBOL_GPL(__rt_dev_write);
 
 ssize_t __rt_dev_recvmsg(rtdm_user_info_t *user_info, int fd,
-                        struct msghdr *msg, int flags)
+                        struct user_msghdr *msg, int flags)
 {
        trace_mark(xn_rtdm, recvmsg, "user_info %p fd %d msg_name %p "
                   "msg_namelen %u msg_iov %p msg_iovlen %zu "
@@ -578,7 +578,7 @@ ssize_t __rt_dev_recvmsg(rtdm_user_info_t *user_info, int 
fd,
 EXPORT_SYMBOL_GPL(__rt_dev_recvmsg);
 
 ssize_t __rt_dev_sendmsg(rtdm_user_info_t *user_info, int fd,
-                        const struct msghdr *msg, int flags)
+                        const struct user_msghdr *msg, int flags)
 {
        trace_mark(xn_rtdm, sendmsg, "user_info %p fd %d msg_name %p "
                   "msg_namelen %u msg_iov %p msg_iovlen %zu "
@@ -806,7 +806,7 @@ ssize_t rtdm_write(int fd, const void *buf, size_t nbyte);
  *
  * Rescheduling: possible.
  */
-ssize_t rtdm_recvmsg(int fd, struct msghdr *msg, int flags);
+ssize_t rtdm_recvmsg(int fd, struct user_msghdr *msg, int flags);
 
 /**
  * @brief Receive message from socket
@@ -846,7 +846,7 @@ ssize_t rtdm_recv(int fd, void *buf, size_t len, int flags);
  *
  * Rescheduling: possible.
  */
-ssize_t rtdm_sendmsg(int fd, const struct msghdr *msg, int flags);
+ssize_t rtdm_sendmsg(int fd, const struct user_msghdr *msg, int flags);
 
 /**
  * @brief Transmit message to socket
@@ -1144,7 +1144,7 @@ ssize_t rt_dev_write(int fd, const void *buf, size_t 
nbyte);
  * @see @c recvmsg() in IEEE Std 1003.1,
  * http://www.opengroup.org/onlinepubs/009695399
  */
-ssize_t rt_dev_recvmsg(int fd, struct msghdr *msg, int flags);
+ssize_t rt_dev_recvmsg(int fd, struct user_msghdr *msg, int flags);
 
 /**
  * @brief Receive message from socket
@@ -1209,7 +1209,7 @@ ssize_t rt_dev_recv(int fd, void *buf, size_t len, int 
flags);
  * @see @c sendmsg() in IEEE Std 1003.1,
  * http://www.opengroup.org/onlinepubs/009695399
  */
-ssize_t rt_dev_sendmsg(int fd, const struct msghdr *msg, int flags);
+ssize_t rt_dev_sendmsg(int fd, const struct user_msghdr *msg, int flags);
 
 /**
  * @brief Transmit message to socket
diff --git a/ksrc/skins/rtdm/syscall.c b/ksrc/skins/rtdm/syscall.c
index 0ff5d40..dca0871 100644
--- a/ksrc/skins/rtdm/syscall.c
+++ b/ksrc/skins/rtdm/syscall.c
@@ -78,7 +78,7 @@ static int sys_rtdm_write(struct pt_regs *regs)
 static int sys_rtdm_recvmsg(struct pt_regs *regs)
 {
        struct task_struct *p = current;
-       struct msghdr krnl_msg;
+       struct user_msghdr krnl_msg;
        int ret;
 
        if (unlikely(!access_wok(__xn_reg_arg2(regs),
@@ -103,7 +103,7 @@ static int sys_rtdm_recvmsg(struct pt_regs *regs)
 static int sys_rtdm_sendmsg(struct pt_regs *regs)
 {
        struct task_struct *p = current;
-       struct msghdr krnl_msg;
+       struct user_msghdr krnl_msg;
 
        if (unlikely(!access_rok(__xn_reg_arg2(regs),
                                 sizeof(krnl_msg)) ||


_______________________________________________
Xenomai-git mailing list
Xenomai-git@xenomai.org
https://xenomai.org/mailman/listinfo/xenomai-git

Reply via email to