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 <wangyongrong@xiaomi.com>
This commit is contained in:
parent
727adcd499
commit
ce832c6377
@ -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()
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
}
|
@ -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 */
|
@ -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()
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -26,9 +26,6 @@
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/rptun/rptun.h>
|
||||
#include <nuttx/rpmsg/rpmsg.h>
|
||||
|
||||
#include "rptun_ping.h"
|
||||
|
||||
/****************************************************************************
|
||||
* Public Function Prototypes
|
||||
|
@ -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 **********************************************************/
|
||||
|
||||
|
@ -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];
|
||||
};
|
||||
|
||||
|
@ -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 */
|
@ -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)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user