This is an automated email from the ASF dual-hosted git repository. xiaoxiang pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/nuttx.git
commit ce832c6377594c94c40a7547ed340d47c474eefa Author: wangyongrong <wangyongr...@xiaomi.com> AuthorDate: Fri Dec 22 16:09:24 2023 +0800 rptun_ping: Strip rptun_ping out of rptun and rename to rpmsg_ping It should be possible to use ping without rptun being enabled, so striped rptun_ping out of rptun and rename to rpmsg_ping. Signed-off-by: wangyongrong <wangyongr...@xiaomi.com> --- drivers/rpmsg/CMakeLists.txt | 4 + drivers/rpmsg/Kconfig | 11 +++ drivers/rpmsg/Make.defs | 4 + drivers/rpmsg/rpmsg.c | 34 +++++++- drivers/{rptun/rptun_ping.c => rpmsg/rpmsg_ping.c} | 95 +++++++++++----------- drivers/{rptun/rptun_ping.h => rpmsg/rpmsg_ping.h} | 23 +++--- drivers/rptun/CMakeLists.txt | 4 - drivers/rptun/Kconfig | 7 -- drivers/rptun/Make.defs | 4 - drivers/rptun/rptun.c | 35 +++----- drivers/rptun/rptun.h | 3 - include/nuttx/fs/ioctl.h | 8 +- include/nuttx/rpmsg/rpmsg.h | 16 ++++ .../{rptun/rptun_ping.h => rpmsg/rpmsg_ping.h} | 14 ++-- include/nuttx/rptun/rptun.h | 14 ++-- 15 files changed, 155 insertions(+), 121 deletions(-) diff --git a/drivers/rpmsg/CMakeLists.txt b/drivers/rpmsg/CMakeLists.txt index fd6ec42d4b..02d54ca413 100644 --- a/drivers/rpmsg/CMakeLists.txt +++ b/drivers/rpmsg/CMakeLists.txt @@ -23,5 +23,9 @@ if(CONFIG_RPMSG) list(APPEND SRCS rpmsg.c) + if(CONFIG_RPMSG_PING) + list(APPEND SRCS rpmsg_ping.c) + endif() + target_sources(drivers PRIVATE ${SRCS}) endif() diff --git a/drivers/rpmsg/Kconfig b/drivers/rpmsg/Kconfig index 1a7a073c8e..11021524e7 100644 --- a/drivers/rpmsg/Kconfig +++ b/drivers/rpmsg/Kconfig @@ -7,3 +7,14 @@ config RPMSG bool default n select OPENAMP + +if RPMSG + +config RPMSG_PING + bool "rpmsg ping support" + default n + ---help--- + This is for debugging & profiling, create ping rpmsg + channel, user can use it to get send/recv speed & latency. + +endif # RPMSG diff --git a/drivers/rpmsg/Make.defs b/drivers/rpmsg/Make.defs index 1c9a7ae4a0..1d5a52e874 100644 --- a/drivers/rpmsg/Make.defs +++ b/drivers/rpmsg/Make.defs @@ -24,6 +24,10 @@ ifeq ($(CONFIG_RPMSG),y) CSRCS += rpmsg.c +ifeq ($(CONFIG_RPMSG_PING),y) +CSRCS += rpmsg_ping.c +endif + DEPPATH += --dep-path rpmsg VPATH += :rpmsg diff --git a/drivers/rpmsg/rpmsg.c b/drivers/rpmsg/rpmsg.c index 083ce38db5..8f8008e23a 100644 --- a/drivers/rpmsg/rpmsg.c +++ b/drivers/rpmsg/rpmsg.c @@ -29,6 +29,8 @@ #include <nuttx/semaphore.h> #include <nuttx/rpmsg/rpmsg.h> +#include "rpmsg_ping.h" + /**************************************************************************** * Private Types ****************************************************************************/ @@ -91,12 +93,32 @@ rpmsg_get_by_rdev(FAR struct rpmsg_device *rdev) return metal_container_of(rdev, struct rpmsg_s, rdev); } +static int rpmsg_dev_ioctl_(FAR struct rpmsg_s *rpmsg, int cmd, + unsigned long arg) +{ + int ret; + + switch (cmd) + { +#ifdef CONFIG_RPMSG_PING + case RPMSGIOC_PING: + ret = rpmsg_ping(&rpmsg->ping, (FAR const struct rpmsg_ping_s *)arg); + break; +#endif + default: + ret = rpmsg->ops->ioctl(rpmsg, cmd, arg); + break; + } + + return ret; +} + static int rpmsg_dev_ioctl(FAR struct file *filep, int cmd, unsigned long arg) { FAR struct rpmsg_s *rpmsg = filep->f_inode->i_private; - return rpmsg->ops->ioctl(rpmsg, cmd, arg); + return rpmsg_dev_ioctl_(rpmsg, cmd, arg); } /**************************************************************************** @@ -379,6 +401,10 @@ void rpmsg_device_created(FAR struct rpmsg_s *rpmsg) } nxrmutex_unlock(&g_rpmsg_lock); + +#ifdef CONFIG_RPMSG_PING + rpmsg_ping_init(rpmsg->rdev, &rpmsg->ping); +#endif } void rpmsg_device_destory(FAR struct rpmsg_s *rpmsg) @@ -387,6 +413,10 @@ void rpmsg_device_destory(FAR struct rpmsg_s *rpmsg) FAR struct metal_list *node; FAR struct metal_list *tmp; +#ifdef CONFIG_RPMSG_PING + rpmsg_ping_deinit(&rpmsg->ping); +#endif + nxrmutex_lock(&rpmsg->lock); metal_list_for_each_safe(&rpmsg->bind, node, tmp) @@ -466,7 +496,7 @@ int rpmsg_ioctl(FAR const char *cpuname, int cmd, unsigned long arg) if (!cpuname || !strcmp(rpmsg_get_cpuname(rpmsg->rdev), cpuname)) { - ret = rpmsg->ops->ioctl(rpmsg, cmd, arg); + ret = rpmsg_dev_ioctl_(rpmsg, cmd, arg); if (ret < 0) { break; diff --git a/drivers/rptun/rptun_ping.c b/drivers/rpmsg/rpmsg_ping.c similarity index 67% rename from drivers/rptun/rptun_ping.c rename to drivers/rpmsg/rpmsg_ping.c index 5534e2957f..4b434a8b5b 100644 --- a/drivers/rptun/rptun_ping.c +++ b/drivers/rpmsg/rpmsg_ping.c @@ -1,5 +1,5 @@ /**************************************************************************** - * drivers/rptun/rptun_ping.c + * drivers/rpmsg/rpmsg_ping.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with @@ -24,30 +24,32 @@ #include <nuttx/config.h> #include <nuttx/arch.h> +#include <nuttx/signal.h> #include <inttypes.h> #include <string.h> #include <sys/param.h> #include <time.h> -#include <nuttx/signal.h> +#include <syslog.h> + +#include "rpmsg_ping.h" -#include "rptun_ping.h" /**************************************************************************** * Pre-processor definitions ****************************************************************************/ -#define RPTUN_PING_EPT_NAME "rpmsg-ping" -#define RPTUN_PING_SEND 1 -#define RPTUN_PING_SEND_CHECK 2 -#define RPTUN_PING_SEND_NOACK 3 -#define RPTUN_PING_ACK 4 -#define RPTUN_PING_CHECK_DATA 0xee +#define RPMSG_PING_EPT_NAME "rpmsg-ping" +#define RPMSG_PING_SEND 1 +#define RPMSG_PING_SEND_CHECK 2 +#define RPMSG_PING_SEND_NOACK 3 +#define RPMSG_PING_ACK 4 +#define RPMSG_PING_CHECK_DATA 0xee /**************************************************************************** * Private Types ****************************************************************************/ -begin_packed_struct struct rptun_ping_msg_s +begin_packed_struct struct rpmsg_ping_msg_s { uint32_t cmd; uint32_t len; @@ -59,27 +61,27 @@ begin_packed_struct struct rptun_ping_msg_s * Private Functions ****************************************************************************/ -static int rptun_ping_ept_cb(FAR struct rpmsg_endpoint *ept, +static int rpmsg_ping_ept_cb(FAR struct rpmsg_endpoint *ept, FAR void *data, size_t len, uint32_t src, FAR void *priv) { - FAR struct rptun_ping_msg_s *msg = data; + FAR struct rpmsg_ping_msg_s *msg = data; FAR sem_t *sem = (FAR sem_t *)(uintptr_t)msg->cookie; - if (msg->cmd == RPTUN_PING_SEND) + if (msg->cmd == RPMSG_PING_SEND) { - msg->cmd = RPTUN_PING_ACK; + msg->cmd = RPMSG_PING_ACK; rpmsg_send(ept, msg, len); } - else if (msg->cmd == RPTUN_PING_SEND_CHECK) + else if (msg->cmd == RPMSG_PING_SEND_CHECK) { size_t data_len; size_t i; - data_len = msg->len - sizeof(struct rptun_ping_msg_s) + 1; + data_len = msg->len - sizeof(struct rpmsg_ping_msg_s) + 1; for (i = 0; i < data_len; i++) { - if (msg->data[i] != RPTUN_PING_CHECK_DATA) + if (msg->data[i] != RPMSG_PING_CHECK_DATA) { syslog(LOG_ERR, "rptun ping remote receive data error!\n"); break; @@ -88,10 +90,10 @@ static int rptun_ping_ept_cb(FAR struct rpmsg_endpoint *ept, msg->data[i] = 0; } - msg->cmd = RPTUN_PING_ACK; + msg->cmd = RPMSG_PING_ACK; rpmsg_send(ept, msg, len); } - else if (msg->cmd == RPTUN_PING_ACK) + else if (msg->cmd == RPMSG_PING_ACK) { nxsem_post(sem); } @@ -99,21 +101,20 @@ static int rptun_ping_ept_cb(FAR struct rpmsg_endpoint *ept, return 0; } -static int rptun_ping_once(FAR struct rpmsg_endpoint *ept, - int len, int ack) +static int rpmsg_ping_once(FAR struct rpmsg_endpoint *ept, + int len, int ack, uint32_t *buf_len) { - FAR struct rptun_ping_msg_s *msg; - uint32_t space; + FAR struct rpmsg_ping_msg_s *msg; int ret; - msg = rpmsg_get_tx_payload_buffer(ept, &space, true); + msg = rpmsg_get_tx_payload_buffer(ept, buf_len, true); if (!msg) { return -ENOMEM; } - len = MAX(len, sizeof(struct rptun_ping_msg_s)); - len = MIN(len, space); + len = MAX(len, sizeof(struct rpmsg_ping_msg_s)); + len = MIN(len, *buf_len); memset(msg, 0, len); @@ -121,14 +122,14 @@ static int rptun_ping_once(FAR struct rpmsg_endpoint *ept, { sem_t sem; - msg->cmd = (ack == 1)? RPTUN_PING_SEND : RPTUN_PING_SEND_CHECK; + msg->cmd = (ack == 1)? RPMSG_PING_SEND : RPMSG_PING_SEND_CHECK; msg->len = len; msg->cookie = (uintptr_t)&sem; - if (msg->cmd == RPTUN_PING_SEND_CHECK) + if (msg->cmd == RPMSG_PING_SEND_CHECK) { - memset(msg->data, RPTUN_PING_CHECK_DATA, - len - sizeof(struct rptun_ping_msg_s) + 1); + memset(msg->data, RPMSG_PING_CHECK_DATA, + len - sizeof(struct rpmsg_ping_msg_s) + 1); } nxsem_init(&sem, 0, 0); @@ -143,7 +144,7 @@ static int rptun_ping_once(FAR struct rpmsg_endpoint *ept, } else { - msg->cmd = RPTUN_PING_SEND_NOACK; + msg->cmd = RPMSG_PING_SEND_NOACK; msg->len = len; ret = rpmsg_send_nocopy(ept, msg, len); } @@ -151,7 +152,7 @@ static int rptun_ping_once(FAR struct rpmsg_endpoint *ept, return ret; } -static void rptun_ping_logout(FAR const char *s, clock_t value) +static void rpmsg_ping_logout(FAR const char *s, clock_t value) { struct timespec ts; @@ -164,7 +165,7 @@ static void rptun_ping_logout(FAR const char *s, clock_t value) #endif } -static void rptun_ping_logout_rate(uint64_t len, clock_t avg) +static void rpmsg_ping_logout_rate(uint64_t len, clock_t avg) { struct timespec ts; size_t ratebits; @@ -184,12 +185,14 @@ static void rptun_ping_logout_rate(uint64_t len, clock_t avg) * Public Functions ****************************************************************************/ -int rptun_ping(FAR struct rpmsg_endpoint *ept, - FAR const struct rptun_ping_s *ping) +int rpmsg_ping(FAR struct rpmsg_endpoint *ept, + FAR const struct rpmsg_ping_s *ping) { clock_t min = ULONG_MAX; clock_t max = 0; uint64_t total = 0; + uint32_t buf_len = 0; + int send_len; int i; if (!ept || !ping || ping->times <= 0) @@ -201,10 +204,10 @@ int rptun_ping(FAR struct rpmsg_endpoint *ept, { clock_t tm = perf_gettime(); - int ret = rptun_ping_once(ept, ping->len, ping->ack); - if (ret < 0) + send_len = rpmsg_ping_once(ept, ping->len, ping->ack, &buf_len); + if (send_len < 0) { - return ret; + return send_len; } tm = perf_gettime() - tm; @@ -217,23 +220,23 @@ int rptun_ping(FAR struct rpmsg_endpoint *ept, syslog(LOG_INFO, "ping times: %d\n", ping->times); - rptun_ping_logout("avg", total / ping->times); - rptun_ping_logout("min", min); - rptun_ping_logout("max", max); - rptun_ping_logout_rate(ping->len, total / ping->times); + rpmsg_ping_logout("avg", total / ping->times); + rpmsg_ping_logout("min", min); + rpmsg_ping_logout("max", max); + rpmsg_ping_logout_rate(send_len, total / ping->times); return 0; } -int rptun_ping_init(FAR struct rpmsg_device *rdev, +int rpmsg_ping_init(FAR struct rpmsg_device *rdev, FAR struct rpmsg_endpoint *ept) { - return rpmsg_create_ept(ept, rdev, RPTUN_PING_EPT_NAME, + return rpmsg_create_ept(ept, rdev, RPMSG_PING_EPT_NAME, RPMSG_ADDR_ANY, RPMSG_ADDR_ANY, - rptun_ping_ept_cb, NULL); + rpmsg_ping_ept_cb, NULL); } -void rptun_ping_deinit(FAR struct rpmsg_endpoint *ept) +void rpmsg_ping_deinit(FAR struct rpmsg_endpoint *ept) { rpmsg_destroy_ept(ept); } diff --git a/drivers/rptun/rptun_ping.h b/drivers/rpmsg/rpmsg_ping.h similarity index 74% rename from drivers/rptun/rptun_ping.h rename to drivers/rpmsg/rpmsg_ping.h index 9e17ee3dd3..dc85939142 100644 --- a/drivers/rptun/rptun_ping.h +++ b/drivers/rpmsg/rpmsg_ping.h @@ -1,5 +1,5 @@ /**************************************************************************** - * drivers/rptun/rptun_ping.h + * drivers/rpmsg/rpmsg_ping.h * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with @@ -18,27 +18,26 @@ * ****************************************************************************/ -#ifndef __DRIVERS_RPTUN_RPTUN_PING_H -#define __DRIVERS_RPTUN_RPTUN_PING_H +#ifndef __DRIVERS_RPMSG_RPMSG_PING_H +#define __DRIVERS_RPMSG_RPMSG_PING_H /**************************************************************************** * Included Files ****************************************************************************/ -#include <nuttx/rptun/rptun_ping.h> -#include <openamp/open_amp.h> +#include <nuttx/rpmsg/rpmsg.h> -#ifdef CONFIG_RPTUN_PING +#ifdef CONFIG_RPMSG_PING /**************************************************************************** * Public Function Prototypes ****************************************************************************/ -int rptun_ping_init(FAR struct rpmsg_device *rvdev, +int rpmsg_ping_init(FAR struct rpmsg_device *rdev, FAR struct rpmsg_endpoint *ept); -void rptun_ping_deinit(FAR struct rpmsg_endpoint *ept); -int rptun_ping(FAR struct rpmsg_endpoint *ept, - FAR const struct rptun_ping_s *ping); +void rpmsg_ping_deinit(FAR struct rpmsg_endpoint *ept); +int rpmsg_ping(FAR struct rpmsg_endpoint *ept, + FAR const struct rpmsg_ping_s *ping); -#endif /* CONFIG_RPTUN_PING */ -#endif /* __DRIVERS_RPTUN_RPTUN_PING_H */ +#endif /* CONFIG_RPMSG_PING */ +#endif /* __DRIVERS_RPMSG_RPMSG_PING_H */ diff --git a/drivers/rptun/CMakeLists.txt b/drivers/rptun/CMakeLists.txt index e4b81d83f9..bab4f294bf 100644 --- a/drivers/rptun/CMakeLists.txt +++ b/drivers/rptun/CMakeLists.txt @@ -22,10 +22,6 @@ if(CONFIG_RPTUN) list(APPEND SRCS rptun.c rptun_dump.c) - if(CONFIG_RPTUN_PING) - list(APPEND SRCS rptun_ping.c) - endif() - target_include_directories(drivers PRIVATE ${NUTTX_DIR}/openamp/open-amp/lib) target_sources(drivers PRIVATE ${SRCS}) endif() diff --git a/drivers/rptun/Kconfig b/drivers/rptun/Kconfig index 9e289de049..db2cf2cbea 100644 --- a/drivers/rptun/Kconfig +++ b/drivers/rptun/Kconfig @@ -10,13 +10,6 @@ menuconfig RPTUN ---help--- RPTUN driver is used for multi-cores' communication. -config RPTUN_PING - bool "rptun ping support" - default n - ---help--- - This is for debugging & profiling, create ping rpmsg - channel, user can use it to get send/recv speed & latency. - if RPTUN config RPTUN_PRIORITY diff --git a/drivers/rptun/Make.defs b/drivers/rptun/Make.defs index a3fcfdbb2f..e78aab215a 100644 --- a/drivers/rptun/Make.defs +++ b/drivers/rptun/Make.defs @@ -24,10 +24,6 @@ ifeq ($(CONFIG_RPTUN),y) CSRCS += rptun.c rptun_dump.c -ifeq ($(CONFIG_RPTUN_PING),y) -CSRCS += rptun_ping.c -endif - DEPPATH += --dep-path rptun VPATH += :rptun CFLAGS += ${INCDIR_PREFIX}$(TOPDIR)$(DELIM)drivers$(DELIM)rptun diff --git a/drivers/rptun/rptun.c b/drivers/rptun/rptun.c index dabe5b5934..16664df123 100644 --- a/drivers/rptun/rptun.c +++ b/drivers/rptun/rptun.c @@ -71,9 +71,6 @@ struct rptun_priv_s #ifdef CONFIG_RPTUN_PM bool stay; #endif -#ifdef CONFIG_RPTUN_PING - struct rpmsg_endpoint ping; -#endif }; struct rptun_store_s @@ -461,7 +458,7 @@ static int rptun_ioctl(FAR struct rpmsg_s *rpmsg, int cmd, unsigned long arg) switch (cmd) { - case RPTUNIOC_START: + case RPMSGIOC_START: if (priv->rproc.state == RPROC_OFFLINE) { ret = rptun_dev_start(&priv->rproc); @@ -475,26 +472,21 @@ static int rptun_ioctl(FAR struct rpmsg_s *rpmsg, int cmd, unsigned long arg) } } break; - case RPTUNIOC_STOP: + case RPMSGIOC_STOP: ret = rptun_dev_stop(&priv->rproc, true); break; - case RPTUNIOC_RESET: + case RPMSGIOC_RESET: RPTUN_RESET(priv->dev, arg); break; - case RPTUNIOC_PANIC: + case RPMSGIOC_PANIC: RPTUN_PANIC(priv->dev); break; - case RPTUNIOC_DUMP: + case RPMSGIOC_DUMP: rptun_dump(&priv->rvdev); #ifdef CONFIG_RPTUN_PM metal_log(METAL_LOG_EMERGENCY, "rptun headrx %d\n", priv->headrx); #endif break; -#ifdef CONFIG_RPTUN_PING - case RPTUNIOC_PING: - rptun_ping(&priv->ping, (FAR const struct rptun_ping_s *)arg); - break; -#endif default: ret = -ENOTTY; break; @@ -696,9 +688,6 @@ static int rptun_dev_start(FAR struct remoteproc *rproc) virtqueue_enable_cb(priv->rvdev.svq); -#ifdef CONFIG_RPTUN_PING - rptun_ping_init(&priv->rvdev.rdev, &priv->ping); -#endif return 0; } @@ -719,10 +708,6 @@ static int rptun_dev_stop(FAR struct remoteproc *rproc, bool stop_ns) rdev->support_ns = stop_ns; -#ifdef CONFIG_RPTUN_PING - rptun_ping_deinit(&priv->ping); -#endif - /* Unregister callback from mbox */ RPTUN_UNREGISTER_CALLBACK(priv->dev); @@ -932,22 +917,22 @@ err_mem: int rptun_boot(FAR const char *cpuname) { - return rpmsg_ioctl(cpuname, RPTUNIOC_START, 0); + return rpmsg_ioctl(cpuname, RPMSGIOC_START, 0); } int rptun_poweroff(FAR const char *cpuname) { - return rpmsg_ioctl(cpuname, RPTUNIOC_STOP, 0); + return rpmsg_ioctl(cpuname, RPMSGIOC_STOP, 0); } int rptun_reset(FAR const char *cpuname, int value) { - return rpmsg_ioctl(cpuname, RPTUNIOC_RESET, value); + return rpmsg_ioctl(cpuname, RPMSGIOC_RESET, value); } int rptun_panic(FAR const char *cpuname) { - return rpmsg_ioctl(cpuname, RPTUNIOC_PANIC, 0); + return rpmsg_ioctl(cpuname, RPMSGIOC_PANIC, 0); } int rptun_buffer_nused(FAR struct rpmsg_virtio_device *rvdev, bool rx) @@ -967,5 +952,5 @@ int rptun_buffer_nused(FAR struct rpmsg_virtio_device *rvdev, bool rx) void rptun_dump_all(void) { - rpmsg_ioctl(NULL, RPTUNIOC_DUMP, 0); + rpmsg_ioctl(NULL, RPMSGIOC_DUMP, 0); } diff --git a/drivers/rptun/rptun.h b/drivers/rptun/rptun.h index c19ddb4c3e..25227d1902 100644 --- a/drivers/rptun/rptun.h +++ b/drivers/rptun/rptun.h @@ -26,9 +26,6 @@ ****************************************************************************/ #include <nuttx/rptun/rptun.h> -#include <nuttx/rpmsg/rpmsg.h> - -#include "rptun_ping.h" /**************************************************************************** * Public Function Prototypes diff --git a/include/nuttx/fs/ioctl.h b/include/nuttx/fs/ioctl.h index b4aaca0b26..48c1ea1a98 100644 --- a/include/nuttx/fs/ioctl.h +++ b/include/nuttx/fs/ioctl.h @@ -81,7 +81,7 @@ #define _FBIOCBASE (0x2800) /* Frame buffer character driver ioctl commands */ #define _NXTERMBASE (0x2900) /* NxTerm character driver ioctl commands */ #define _RFIOCBASE (0x2a00) /* RF devices ioctl commands */ -#define _RPTUNBASE (0x2b00) /* Remote processor tunnel ioctl commands */ +#define _RPMSGBASE (0x2b00) /* Remote processor tunnel ioctl commands */ #define _NOTECTLBASE (0x2c00) /* Note filter control ioctl commands*/ #define _NOTERAMBASE (0x2d00) /* Noteram device ioctl commands*/ #define _RCIOCBASE (0x2e00) /* Remote Control device ioctl commands */ @@ -578,10 +578,10 @@ #define _RFIOCVALID(c) (_IOC_TYPE(c)==_RFIOCBASE) #define _RFIOC(nr) _IOC(_RFIOCBASE,nr) -/* Rptun drivers ************************************************************/ +/* Rpmsg drivers ************************************************************/ -#define _RPTUNIOCVALID(c) (_IOC_TYPE(c)==_RPTUNBASE) -#define _RPTUNIOC(nr) _IOC(_RPTUNBASE,nr) +#define _RPMSGIOCVALID(c) (_IOC_TYPE(c)==_RPMSGBASE) +#define _RPMSGIOC(nr) _IOC(_RPMSGBASE,nr) /* Notectl drivers **********************************************************/ diff --git a/include/nuttx/rpmsg/rpmsg.h b/include/nuttx/rpmsg/rpmsg.h index f434e95e52..54c5e031bc 100644 --- a/include/nuttx/rpmsg/rpmsg.h +++ b/include/nuttx/rpmsg/rpmsg.h @@ -29,8 +29,21 @@ #ifdef CONFIG_RPMSG +#include <nuttx/fs/ioctl.h> +#include <nuttx/rpmsg/rpmsg_ping.h> #include <openamp/rpmsg.h> +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + +#define RPMSGIOC_START _RPMSGIOC(1) +#define RPMSGIOC_STOP _RPMSGIOC(2) +#define RPMSGIOC_RESET _RPMSGIOC(3) +#define RPMSGIOC_PANIC _RPMSGIOC(4) +#define RPMSGIOC_DUMP _RPMSGIOC(5) +#define RPMSGIOC_PING _RPMSGIOC(6) + /**************************************************************************** * Public Types ****************************************************************************/ @@ -41,6 +54,9 @@ struct rpmsg_s rmutex_t lock; struct metal_list node; FAR const struct rpmsg_ops_s *ops; +#ifdef CONFIG_RPMSG_PING + struct rpmsg_endpoint ping; +#endif struct rpmsg_device rdev[0]; }; diff --git a/include/nuttx/rptun/rptun_ping.h b/include/nuttx/rpmsg/rpmsg_ping.h similarity index 85% rename from include/nuttx/rptun/rptun_ping.h rename to include/nuttx/rpmsg/rpmsg_ping.h index a47440bde3..68ac56c0e7 100644 --- a/include/nuttx/rptun/rptun_ping.h +++ b/include/nuttx/rpmsg/rpmsg_ping.h @@ -1,5 +1,5 @@ /**************************************************************************** - * include/nuttx/rptun/rptun_ping.h + * include/nuttx/rpmsg/rpmsg_ping.h * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with @@ -18,8 +18,8 @@ * ****************************************************************************/ -#ifndef __INCLUDE_NUTTX_RPTUN_RPTUN_PING_H -#define __INCLUDE_NUTTX_RPTUN_RPTUN_PING_H +#ifndef __INCLUDE_NUTTX_RPMSG_RPMSG_PING_H +#define __INCLUDE_NUTTX_RPMSG_RPMSG_PING_H /**************************************************************************** * Included Files @@ -27,7 +27,7 @@ #include <nuttx/config.h> -#ifdef CONFIG_RPTUN_PING +#ifdef CONFIG_RPMSG_PING /**************************************************************************** * Public Function Prototypes @@ -35,7 +35,7 @@ /* used for ioctl RPTUNIOC_PING */ -struct rptun_ping_s +struct rpmsg_ping_s { int times; int len; @@ -43,5 +43,5 @@ struct rptun_ping_s int sleep; /* unit: ms */ }; -#endif /* CONFIG_RPTUN_PING */ -#endif /* __INCLUDE_NUTTX_RPTUN_RPTUN_PING_H */ +#endif /* CONFIG_RPMSG_PING */ +#endif /* __INCLUDE_NUTTX_RPMSG_RPMSG_PING_H */ diff --git a/include/nuttx/rptun/rptun.h b/include/nuttx/rptun/rptun.h index 972b78350d..2193ee19cd 100644 --- a/include/nuttx/rptun/rptun.h +++ b/include/nuttx/rptun/rptun.h @@ -30,7 +30,7 @@ #ifdef CONFIG_RPTUN #include <nuttx/fs/ioctl.h> -#include <nuttx/rptun/rptun_ping.h> +#include <nuttx/rpmsg/rpmsg.h> #include <openamp/remoteproc.h> #include <openamp/rpmsg_virtio.h> @@ -38,12 +38,12 @@ * Pre-processor Definitions ****************************************************************************/ -#define RPTUNIOC_START _RPTUNIOC(1) -#define RPTUNIOC_STOP _RPTUNIOC(2) -#define RPTUNIOC_RESET _RPTUNIOC(3) -#define RPTUNIOC_PANIC _RPTUNIOC(4) -#define RPTUNIOC_DUMP _RPTUNIOC(5) -#define RPTUNIOC_PING _RPTUNIOC(6) +#define RPTUNIOC_START _RPMSGIOC(1) +#define RPTUNIOC_STOP _RPMSGIOC(2) +#define RPTUNIOC_RESET _RPMSGIOC(3) +#define RPTUNIOC_PANIC _RPMSGIOC(4) +#define RPTUNIOC_DUMP _RPMSGIOC(5) +#define RPTUNIOC_PING _RPMSGIOC(6) #define RPTUN_NOTIFY_ALL (UINT32_MAX - 0)