mirror of
https://github.com/apache/nuttx.git
synced 2026-05-23 23:05:39 +08:00
rpmsg/rpmsg_virtio_lite: rename rpmsg_virtio to rpmsg_virtio_lite
Because rpmsg_virtio_lite is a better name to inform user that the rpmsg virtio (original name) is a lite implementation of rpmsg virtio. Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
This commit is contained in:
committed by
Alan C. Assis
parent
db1ebe0095
commit
f0a3c43a54
@@ -254,7 +254,7 @@ ifeq ($(CONFIG_SIM_LIBUSB),y)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_RPMSG_VIRTIO),y)
|
||||
ifeq ($(CONFIG_RPMSG_VIRTIO_LITE),y)
|
||||
CSRCS += sim_rpmsg_virtio.c
|
||||
endif
|
||||
|
||||
|
||||
@@ -119,7 +119,7 @@ if(CONFIG_LIBM_TOOLCHAIN)
|
||||
list(APPEND STDLIBS m)
|
||||
endif()
|
||||
|
||||
if(CONFIG_RPMSG_VIRTIO)
|
||||
if(CONFIG_RPMSG_VIRTIO_LITE)
|
||||
list(APPEND SRCS sim_rpmsg_vritio.c)
|
||||
endif()
|
||||
|
||||
|
||||
@@ -415,7 +415,7 @@ int sim_rptun_init(const char *shmemname, const char *cpuname, int master);
|
||||
|
||||
/* sim_rpmsg_virtio.c *******************************************************/
|
||||
|
||||
#ifdef CONFIG_RPMSG_VIRTIO
|
||||
#ifdef CONFIG_RPMSG_VIRTIO_LITE
|
||||
int sim_rpmsg_virtio_init(const char *shmemname, const char *cpuname,
|
||||
bool master);
|
||||
#endif
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
#include <nuttx/drivers/addrenv.h>
|
||||
#include <nuttx/kmalloc.h>
|
||||
#include <nuttx/nuttx.h>
|
||||
#include <nuttx/rpmsg/rpmsg_virtio.h>
|
||||
#include <nuttx/rpmsg/rpmsg_virtio_lite.h>
|
||||
#include <nuttx/wdog.h>
|
||||
|
||||
#include "sim_internal.h"
|
||||
@@ -46,18 +46,18 @@
|
||||
|
||||
struct sim_rpmsg_virtio_shmem_s
|
||||
{
|
||||
volatile uintptr_t base;
|
||||
volatile unsigned int seqs;
|
||||
volatile unsigned int seqm;
|
||||
volatile unsigned int boots;
|
||||
volatile unsigned int bootm;
|
||||
struct rpmsg_virtio_rsc_s rsc;
|
||||
char buf[0x10000];
|
||||
volatile uintptr_t base;
|
||||
volatile unsigned int seqs;
|
||||
volatile unsigned int seqm;
|
||||
volatile unsigned int boots;
|
||||
volatile unsigned int bootm;
|
||||
struct rpmsg_virtio_lite_rsc_s rsc;
|
||||
char buf[0x10000];
|
||||
};
|
||||
|
||||
struct sim_rpmsg_virtio_dev_s
|
||||
{
|
||||
struct rpmsg_virtio_s dev;
|
||||
struct rpmsg_virtio_lite_s dev;
|
||||
rpmsg_virtio_callback_t callback;
|
||||
void *arg;
|
||||
int master;
|
||||
@@ -76,7 +76,8 @@ struct sim_rpmsg_virtio_dev_s
|
||||
* Private Functions
|
||||
****************************************************************************/
|
||||
|
||||
static const char *sim_rpmsg_virtio_get_cpuname(struct rpmsg_virtio_s *dev)
|
||||
static const char *
|
||||
sim_rpmsg_virtio_get_cpuname(struct rpmsg_virtio_lite_s *dev)
|
||||
{
|
||||
struct sim_rpmsg_virtio_dev_s *priv =
|
||||
container_of(dev, struct sim_rpmsg_virtio_dev_s, dev);
|
||||
@@ -84,13 +85,13 @@ static const char *sim_rpmsg_virtio_get_cpuname(struct rpmsg_virtio_s *dev)
|
||||
return priv->cpuname;
|
||||
}
|
||||
|
||||
static struct rpmsg_virtio_rsc_s *
|
||||
sim_rpmsg_virtio_get_resource(struct rpmsg_virtio_s *dev)
|
||||
static struct rpmsg_virtio_lite_rsc_s *
|
||||
sim_rpmsg_virtio_get_resource(struct rpmsg_virtio_lite_s *dev)
|
||||
{
|
||||
struct sim_rpmsg_virtio_dev_s *priv =
|
||||
container_of(dev, struct sim_rpmsg_virtio_dev_s, dev);
|
||||
struct rpmsg_virtio_rsc_s *rsc;
|
||||
struct rpmsg_virtio_cmd_s *cmd;
|
||||
struct rpmsg_virtio_lite_rsc_s *rsc;
|
||||
struct rpmsg_virtio_lite_cmd_s *cmd;
|
||||
|
||||
priv->shmem = host_allocshmem(priv->shmemname, sizeof(*priv->shmem));
|
||||
if (!priv->shmem)
|
||||
@@ -141,7 +142,7 @@ sim_rpmsg_virtio_get_resource(struct rpmsg_virtio_s *dev)
|
||||
return rsc;
|
||||
}
|
||||
|
||||
static int sim_rpmsg_virtio_is_master(struct rpmsg_virtio_s *dev)
|
||||
static int sim_rpmsg_virtio_is_master(struct rpmsg_virtio_lite_s *dev)
|
||||
{
|
||||
struct sim_rpmsg_virtio_dev_s *priv =
|
||||
container_of(dev, struct sim_rpmsg_virtio_dev_s, dev);
|
||||
@@ -150,7 +151,7 @@ static int sim_rpmsg_virtio_is_master(struct rpmsg_virtio_s *dev)
|
||||
}
|
||||
|
||||
static int
|
||||
sim_rpmsg_virtio_register_callback(struct rpmsg_virtio_s *dev,
|
||||
sim_rpmsg_virtio_register_callback(struct rpmsg_virtio_lite_s *dev,
|
||||
rpmsg_virtio_callback_t callback,
|
||||
void *arg)
|
||||
{
|
||||
@@ -184,7 +185,7 @@ static void sim_rpmsg_virtio_work(wdparm_t arg)
|
||||
|
||||
if (should_notify && dev->callback != NULL)
|
||||
{
|
||||
dev->callback(dev->arg, RPMSG_VIRTIO_NOTIFY_ALL);
|
||||
dev->callback(dev->arg, RPMSG_VIRTIO_LITE_NOTIFY_ALL);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -192,7 +193,8 @@ static void sim_rpmsg_virtio_work(wdparm_t arg)
|
||||
sim_rpmsg_virtio_work, (wdparm_t)dev);
|
||||
}
|
||||
|
||||
static int sim_rpmsg_virtio_notify(struct rpmsg_virtio_s *dev, uint32_t vqid)
|
||||
static int sim_rpmsg_virtio_notify(struct rpmsg_virtio_lite_s *dev,
|
||||
uint32_t vqid)
|
||||
{
|
||||
struct sim_rpmsg_virtio_dev_s *priv =
|
||||
container_of(dev, struct sim_rpmsg_virtio_dev_s, dev);
|
||||
@@ -213,7 +215,7 @@ static int sim_rpmsg_virtio_notify(struct rpmsg_virtio_s *dev, uint32_t vqid)
|
||||
* Private Data
|
||||
****************************************************************************/
|
||||
|
||||
static const struct rpmsg_virtio_ops_s g_sim_rpmsg_virtio_ops =
|
||||
static const struct rpmsg_virtio_lite_ops_s g_sim_rpmsg_virtio_ops =
|
||||
{
|
||||
.get_cpuname = sim_rpmsg_virtio_get_cpuname,
|
||||
.get_resource = sim_rpmsg_virtio_get_resource,
|
||||
@@ -243,7 +245,7 @@ int sim_rpmsg_virtio_init(const char *shmemname, const char *cpuname,
|
||||
strlcpy(priv->cpuname, cpuname, RPMSG_NAME_SIZE);
|
||||
strlcpy(priv->shmemname, shmemname, RPMSG_NAME_SIZE);
|
||||
|
||||
ret = rpmsg_virtio_initialize(&priv->dev);
|
||||
ret = rpmsg_virtio_lite_initialize(&priv->dev);
|
||||
if (ret < 0)
|
||||
{
|
||||
kmm_free(priv);
|
||||
|
||||
@@ -485,7 +485,7 @@ int sim_bringup(void)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_RPMSG_VIRTIO
|
||||
#ifdef CONFIG_RPMSG_VIRTIO_LITE
|
||||
# ifdef CONFIG_SIM_RPMSG_MASTER
|
||||
sim_rpmsg_virtio_init("server-proxy", "proxy", true);
|
||||
# else
|
||||
|
||||
@@ -47,8 +47,8 @@ if(CONFIG_RPMSG)
|
||||
list(APPEND SRCS rpmsg_port_uart.c)
|
||||
endif()
|
||||
|
||||
if(CONFIG_RPMSG_VIRTIO)
|
||||
list(APPEND SRCS rpmsg_virtio.c)
|
||||
if(CONFIG_RPMSG_VIRTIO_LITE)
|
||||
list(APPEND SRCS rpmsg_virtio_lite.c)
|
||||
endif()
|
||||
|
||||
if(CONFIG_RPMSG_VIRTIO_IVSHMEM)
|
||||
|
||||
+28
-10
@@ -107,32 +107,50 @@ config RPMSG_PORT_UART_DEBUG
|
||||
|
||||
endif # RPMSG_PORT_UART
|
||||
|
||||
config RPMSG_VIRTIO
|
||||
config RPMSG_VIRTIO_LITE
|
||||
bool "rpmsg virtio transport support"
|
||||
default n
|
||||
select RPMSG
|
||||
|
||||
if RPMSG_VIRTIO
|
||||
if RPMSG_VIRTIO_LITE
|
||||
|
||||
config RPMSG_VIRTIO_PRIORITY
|
||||
int "rpmsg virtio rx thread priority"
|
||||
config RPMSG_VIRTIO_LITE_PRIORITY
|
||||
int "rpmsg virtio lite rx thread priority"
|
||||
default 224
|
||||
|
||||
config RPMSG_VIRTIO_STACKSIZE
|
||||
int "rpmsg virtio rx thread stack size"
|
||||
config RPMSG_VIRTIO_LITE_STACKSIZE
|
||||
int "rpmsg virtio lite rx thread stack size"
|
||||
default DEFAULT_TASK_STACKSIZE
|
||||
|
||||
config RPMSG_VIRTIO_IVSHMEM
|
||||
bool "rpmsg virtio ivshmem support"
|
||||
bool "rpmsg virtio lite ivshmem support"
|
||||
default n
|
||||
depends on PCI_IVSHMEM
|
||||
---help---
|
||||
This is rpmsg virtio driver based on pci ivshmem.
|
||||
|
||||
config RPMSG_VIRTIO_LITE_PM
|
||||
bool "rpmsg virtio lite power management"
|
||||
depends on PM
|
||||
default n
|
||||
---help---
|
||||
If TX/RX buffer is supplied and powered by each CPU.
|
||||
And when one CPU in DEEP sleep, then it's buffer will
|
||||
goto RAM-retention mode, can't access from another CPU.
|
||||
So, we provide this method to resolve this.
|
||||
|
||||
config RPMSG_VIRTIO_LITE_PM_AUTORELAX
|
||||
bool "rpmsg virtio lite pm autorelax"
|
||||
depends on RPMSG_VIRTIO_LITE_PM
|
||||
default y
|
||||
---help---
|
||||
use wd_timer to auto relax pm
|
||||
|
||||
|
||||
if RPMSG_VIRTIO_IVSHMEM
|
||||
|
||||
config RPMSG_VIRTIO_IVSHMEM_NAME
|
||||
string "rpmsg virtio ivshmem name"
|
||||
string "rpmsg virtio lite ivshmem name"
|
||||
---help---
|
||||
Using this config to custom the rpmsg virtio ivshmem id, cpuname and role,
|
||||
using ";" to split the names.
|
||||
@@ -141,14 +159,14 @@ config RPMSG_VIRTIO_IVSHMEM_NAME
|
||||
with remote cpu ids: "0","1", names: "cpu1", "cpu2", and roles: "master", "slave"
|
||||
|
||||
config RPMSG_VIRTIO_IVSHMEM_BUFFSIZE
|
||||
int "rpmsg virtio ivshmem rpmsg buffer size"
|
||||
int "rpmsg virtio lite ivshmem rpmsg buffer size"
|
||||
default 2048
|
||||
---help---
|
||||
The rpmsg buffer size in share memory, the RX and TX buffer size
|
||||
are same for now.
|
||||
|
||||
config RPMSG_VIRTIO_IVSHMEM_BUFFNUM
|
||||
int "rpmsg virtio ivshmem rpmsg buffer number"
|
||||
int "rpmsg virtio lite ivshmem rpmsg buffer number"
|
||||
default 8
|
||||
---help---
|
||||
The rpmsg virtio buffer number in share memory, the RX and TX buffer number
|
||||
|
||||
@@ -51,8 +51,8 @@ ifeq ($(CONFIG_RPMSG_PORT_UART),y)
|
||||
CSRCS += rpmsg_port_uart.c
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_RPMSG_VIRTIO),y)
|
||||
CSRCS += rpmsg_virtio.c
|
||||
ifeq ($(CONFIG_RPMSG_VIRTIO_LITE),y)
|
||||
CSRCS += rpmsg_virtio_lite.c
|
||||
CFLAGS += ${INCDIR_PREFIX}$(TOPDIR)$(DELIM)openamp$(DELIM)open-amp$(DELIM)lib
|
||||
endif
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -32,8 +32,8 @@
|
||||
|
||||
#include <nuttx/drivers/addrenv.h>
|
||||
#include <nuttx/pci/pci_ivshmem.h>
|
||||
#include <nuttx/rpmsg/rpmsg_virtio.h>
|
||||
#include <nuttx/rpmsg/rpmsg_virtio_ivshmem.h>
|
||||
#include <nuttx/rpmsg/rpmsg_virtio_lite.h>
|
||||
#include <nuttx/wdog.h>
|
||||
|
||||
/****************************************************************************
|
||||
@@ -53,15 +53,15 @@
|
||||
|
||||
struct rpmsg_virtio_ivshmem_mem_s
|
||||
{
|
||||
volatile uint64_t basem;
|
||||
volatile uint32_t seqs;
|
||||
volatile uint32_t seqm;
|
||||
struct rpmsg_virtio_rsc_s rsc;
|
||||
volatile uint64_t basem;
|
||||
volatile uint32_t seqs;
|
||||
volatile uint32_t seqm;
|
||||
struct rpmsg_virtio_lite_rsc_s rsc;
|
||||
};
|
||||
|
||||
struct rpmsg_virtio_ivshmem_dev_s
|
||||
{
|
||||
struct rpmsg_virtio_s dev;
|
||||
struct rpmsg_virtio_lite_s dev;
|
||||
struct ivshmem_driver_s drv;
|
||||
FAR struct ivshmem_device_s *ivdev;
|
||||
rpmsg_virtio_callback_t callback;
|
||||
@@ -84,15 +84,15 @@ struct rpmsg_virtio_ivshmem_dev_s
|
||||
****************************************************************************/
|
||||
|
||||
static const FAR char *
|
||||
rpmsg_virtio_ivshmem_get_cpuname(FAR struct rpmsg_virtio_s *dev);
|
||||
static FAR struct rpmsg_virtio_rsc_s *
|
||||
rpmsg_virtio_ivshmem_get_resource(FAR struct rpmsg_virtio_s *dev);
|
||||
rpmsg_virtio_ivshmem_get_cpuname(FAR struct rpmsg_virtio_lite_s *dev);
|
||||
static FAR struct rpmsg_virtio_lite_rsc_s *
|
||||
rpmsg_virtio_ivshmem_get_resource(FAR struct rpmsg_virtio_lite_s *dev);
|
||||
static int
|
||||
rpmsg_virtio_ivshmem_is_master(FAR struct rpmsg_virtio_s *dev);
|
||||
static int rpmsg_virtio_ivshmem_notify(FAR struct rpmsg_virtio_s *dev,
|
||||
rpmsg_virtio_ivshmem_is_master(FAR struct rpmsg_virtio_lite_s *dev);
|
||||
static int rpmsg_virtio_ivshmem_notify(FAR struct rpmsg_virtio_lite_s *dev,
|
||||
uint32_t notifyid);
|
||||
static int
|
||||
rpmsg_virtio_ivshmem_register_callback(FAR struct rpmsg_virtio_s *dev,
|
||||
rpmsg_virtio_ivshmem_register_callback(FAR struct rpmsg_virtio_lite_s *dev,
|
||||
rpmsg_virtio_callback_t callback,
|
||||
FAR void *arg);
|
||||
static int rpmsg_virtio_ivshmem_probe(FAR struct ivshmem_device_s *ivdev);
|
||||
@@ -102,7 +102,7 @@ static void rpmsg_virtio_ivshmem_remove(FAR struct ivshmem_device_s *ivdev);
|
||||
* Private Data
|
||||
****************************************************************************/
|
||||
|
||||
static const struct rpmsg_virtio_ops_s g_rpmsg_virtio_ivshmem_ops =
|
||||
static const struct rpmsg_virtio_lite_ops_s g_rpmsg_virtio_ivshmem_ops =
|
||||
{
|
||||
.get_cpuname = rpmsg_virtio_ivshmem_get_cpuname,
|
||||
.get_resource = rpmsg_virtio_ivshmem_get_resource,
|
||||
@@ -116,23 +116,23 @@ static const struct rpmsg_virtio_ops_s g_rpmsg_virtio_ivshmem_ops =
|
||||
****************************************************************************/
|
||||
|
||||
static const FAR char *
|
||||
rpmsg_virtio_ivshmem_get_cpuname(FAR struct rpmsg_virtio_s *dev)
|
||||
rpmsg_virtio_ivshmem_get_cpuname(FAR struct rpmsg_virtio_lite_s *dev)
|
||||
{
|
||||
FAR struct rpmsg_virtio_ivshmem_dev_s *priv =
|
||||
(FAR struct rpmsg_virtio_ivshmem_dev_s *)dev;
|
||||
return priv->cpuname;
|
||||
}
|
||||
|
||||
static FAR struct rpmsg_virtio_rsc_s *
|
||||
rpmsg_virtio_ivshmem_get_resource(FAR struct rpmsg_virtio_s *dev)
|
||||
static FAR struct rpmsg_virtio_lite_rsc_s *
|
||||
rpmsg_virtio_ivshmem_get_resource(FAR struct rpmsg_virtio_lite_s *dev)
|
||||
{
|
||||
FAR struct rpmsg_virtio_ivshmem_dev_s *priv =
|
||||
(FAR struct rpmsg_virtio_ivshmem_dev_s *)dev;
|
||||
FAR struct rpmsg_virtio_rsc_s *rsc;
|
||||
FAR struct rpmsg_virtio_cmd_s *cmd;
|
||||
FAR struct rpmsg_virtio_lite_rsc_s *rsc;
|
||||
FAR struct rpmsg_virtio_lite_cmd_s *cmd;
|
||||
|
||||
rsc = &priv->shmem->rsc;
|
||||
cmd = RPMSG_VIRTIO_RSC2CMD(rsc);
|
||||
cmd = RPMSG_VIRTIO_LITE_RSC2CMD(rsc);
|
||||
|
||||
if (priv->master)
|
||||
{
|
||||
@@ -178,14 +178,15 @@ rpmsg_virtio_ivshmem_get_resource(FAR struct rpmsg_virtio_s *dev)
|
||||
return rsc;
|
||||
}
|
||||
|
||||
static int rpmsg_virtio_ivshmem_is_master(FAR struct rpmsg_virtio_s *dev)
|
||||
static int
|
||||
rpmsg_virtio_ivshmem_is_master(FAR struct rpmsg_virtio_lite_s *dev)
|
||||
{
|
||||
FAR struct rpmsg_virtio_ivshmem_dev_s *priv =
|
||||
(FAR struct rpmsg_virtio_ivshmem_dev_s *)dev;
|
||||
return priv->master;
|
||||
}
|
||||
|
||||
static int rpmsg_virtio_ivshmem_notify(FAR struct rpmsg_virtio_s *dev,
|
||||
static int rpmsg_virtio_ivshmem_notify(FAR struct rpmsg_virtio_lite_s *dev,
|
||||
uint32_t vqid)
|
||||
{
|
||||
FAR struct rpmsg_virtio_ivshmem_dev_s *priv =
|
||||
@@ -208,7 +209,7 @@ static int rpmsg_virtio_ivshmem_notify(FAR struct rpmsg_virtio_s *dev,
|
||||
}
|
||||
|
||||
static int
|
||||
rpmsg_virtio_ivshmem_register_callback(FAR struct rpmsg_virtio_s *dev,
|
||||
rpmsg_virtio_ivshmem_register_callback(FAR struct rpmsg_virtio_lite_s *dev,
|
||||
rpmsg_virtio_callback_t callback,
|
||||
FAR void *arg)
|
||||
{
|
||||
@@ -231,7 +232,7 @@ static int rpmsg_virtio_ivshmem_interrupt(int irq, FAR void *context,
|
||||
|
||||
if (priv->callback != NULL)
|
||||
{
|
||||
priv->callback(priv->arg, RPMSG_VIRTIO_NOTIFY_ALL);
|
||||
priv->callback(priv->arg, RPMSG_VIRTIO_LITE_NOTIFY_ALL);
|
||||
}
|
||||
|
||||
return 0;
|
||||
@@ -260,7 +261,7 @@ static void rpmsg_virtio_ivshmem_wdog(wdparm_t arg)
|
||||
|
||||
if (should_notify && priv->callback != NULL)
|
||||
{
|
||||
priv->callback(priv->arg, RPMSG_VIRTIO_NOTIFY_ALL);
|
||||
priv->callback(priv->arg, RPMSG_VIRTIO_LITE_NOTIFY_ALL);
|
||||
}
|
||||
|
||||
wd_start(&priv->wdog, RPMSG_VIRTIO_IVSHMEM_WDOG_DELAY,
|
||||
@@ -288,7 +289,7 @@ static int rpmsg_virtio_ivshmem_probe(FAR struct ivshmem_device_s *ivdev)
|
||||
|
||||
/* Do rpmsg virtio initialize */
|
||||
|
||||
ret = rpmsg_virtio_initialize(&priv->dev);
|
||||
ret = rpmsg_virtio_lite_initialize(&priv->dev);
|
||||
if (ret < 0)
|
||||
{
|
||||
rpmsgerr("Rpmsg virtio initialize failed, ret=%d\n", ret);
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,5 @@
|
||||
/****************************************************************************
|
||||
* include/nuttx/rpmsg/rpmsg_virtio.h
|
||||
* include/nuttx/rpmsg/rpmsg_virtio_lite.h
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
@@ -20,8 +20,8 @@
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef __INCLUDE_NUTTX_RPMSG_RPMSG_VIRTIO_H
|
||||
#define __INCLUDE_NUTTX_RPMSG_RPMSG_VIRTIO_H
|
||||
#ifndef __INCLUDE_NUTTX_RPMSG_RPMSG_VIRTIO_LITE_H
|
||||
#define __INCLUDE_NUTTX_RPMSG_RPMSG_VIRTIO_LITE_H
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
@@ -29,7 +29,7 @@
|
||||
|
||||
#include <nuttx/config.h>
|
||||
|
||||
#ifdef CONFIG_RPMSG_VIRTIO
|
||||
#ifdef CONFIG_RPMSG_VIRTIO_LITE
|
||||
|
||||
#include <nuttx/rpmsg/rpmsg.h>
|
||||
#include <openamp/rpmsg_virtio.h>
|
||||
@@ -39,24 +39,24 @@
|
||||
* Pre-processor Definitions
|
||||
****************************************************************************/
|
||||
|
||||
#define RPMSG_VIRTIO_NOTIFY_ALL UINT32_MAX
|
||||
#define RPMSG_VIRTIO_LITE_NOTIFY_ALL UINT32_MAX
|
||||
|
||||
#define RPMSG_VIRTIO_CMD_PANIC 0x1
|
||||
#define RPMSG_VIRTIO_CMD_MASK 0xffff
|
||||
#define RPMSG_VIRTIO_CMD_SHIFT 16
|
||||
#define RPMSG_VIRTIO_LITE_CMD_PANIC 0x1
|
||||
#define RPMSG_VIRTIO_LITE_CMD_MASK 0xffff
|
||||
#define RPMSG_VIRTIO_LITE_CMD_SHIFT 16
|
||||
|
||||
#define RPMSG_VIRTIO_CMD(c,v) (((c) << RPMSG_VIRTIO_CMD_SHIFT) | \
|
||||
((v) & RPMSG_VIRTIO_CMD_MASK))
|
||||
#define RPMSG_VIRTIO_GET_CMD(c) ((c) >> RPMSG_VIRTIO_CMD_SHIFT)
|
||||
#define RPMSG_VIRTIO_LITE_CMD(c,v) (((c) << RPMSG_VIRTIO_LITE_CMD_SHIFT) | \
|
||||
((v) & RPMSG_VIRTIO_LITE_CMD_MASK))
|
||||
#define RPMSG_VIRTIO_LITE_GET_CMD(c) ((c) >> RPMSG_VIRTIO_LITE_CMD_SHIFT)
|
||||
|
||||
#define RPMSG_VIRTIO_RSC2CMD(r) \
|
||||
((FAR struct rpmsg_virtio_cmd_s *) \
|
||||
&((FAR struct resource_table *)(r))->reserved[0])
|
||||
#define RPMSG_VIRTIO_LITE_RSC2CMD(r) \
|
||||
((FAR struct rpmsg_virtio_lite_cmd_s *) \
|
||||
&((FAR struct resource_table *)(r))->reserved[0])
|
||||
|
||||
/* Access macros ************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: RPMSG_VIRTIO_GET_LOCAL_CPUNAME
|
||||
* Name: RPMSG_VIRTIO_LITE_GET_LOCAL_CPUNAME
|
||||
*
|
||||
* Description:
|
||||
* Get remote cpu name
|
||||
@@ -69,11 +69,11 @@
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#define RPMSG_VIRTIO_GET_LOCAL_CPUNAME(d) \
|
||||
#define RPMSG_VIRTIO_LITE_GET_LOCAL_CPUNAME(d) \
|
||||
((d)->ops->get_local_cpuname ? (d)->ops->get_local_cpuname(d) : "")
|
||||
|
||||
/****************************************************************************
|
||||
* Name: RPMSG_VIRTIO_GET_CPUNAME
|
||||
* Name: RPMSG_VIRTIO_LITE_GET_CPUNAME
|
||||
*
|
||||
* Description:
|
||||
* Get remote cpu name
|
||||
@@ -86,11 +86,11 @@
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#define RPMSG_VIRTIO_GET_CPUNAME(d) \
|
||||
#define RPMSG_VIRTIO_LITE_GET_CPUNAME(d) \
|
||||
((d)->ops->get_cpuname ? (d)->ops->get_cpuname(d) : "")
|
||||
|
||||
/****************************************************************************
|
||||
* Name: RPMSG_VIRTIO_GET_RESOURCE
|
||||
* Name: RPMSG_VIRTIO_LITE_GET_RESOURCE
|
||||
*
|
||||
* Description:
|
||||
* Get rpmsg virtio resource
|
||||
@@ -103,11 +103,11 @@
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#define RPMSG_VIRTIO_GET_RESOURCE(d) \
|
||||
#define RPMSG_VIRTIO_LITE_GET_RESOURCE(d) \
|
||||
((d)->ops->get_resource ? (d)->ops->get_resource(d) : NULL)
|
||||
|
||||
/****************************************************************************
|
||||
* Name: RPMSG_VIRTIO_IS_MASTER
|
||||
* Name: RPMSG_VIRTIO_LITE_IS_MASTER
|
||||
*
|
||||
* Description:
|
||||
* Is master or not
|
||||
@@ -120,11 +120,11 @@
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#define RPMSG_VIRTIO_IS_MASTER(d) \
|
||||
#define RPMSG_VIRTIO_LITE_IS_MASTER(d) \
|
||||
((d)->ops->is_master ? (d)->ops->is_master(d) : false)
|
||||
|
||||
/****************************************************************************
|
||||
* Name: RPMSG_VIRTIO_REGISTER_CALLBACK
|
||||
* Name: RPMSG_VIRTIO_LITE_REGISTER_CALLBACK
|
||||
*
|
||||
* Description:
|
||||
* Attach to receive a callback when something is received on RPTUN
|
||||
@@ -139,11 +139,11 @@
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#define RPMSG_VIRTIO_REGISTER_CALLBACK(d,c,a) \
|
||||
#define RPMSG_VIRTIO_LITE_REGISTER_CALLBACK(d,c,a) \
|
||||
((d)->ops->register_callback ? (d)->ops->register_callback(d,c,a) : -ENOSYS)
|
||||
|
||||
/****************************************************************************
|
||||
* Name: RPMSG_VIRTIO_NOTIFY
|
||||
* Name: RPMSG_VIRTIO_LITE_NOTIFY
|
||||
*
|
||||
* Description:
|
||||
* Notify remote core there is a message to get.
|
||||
@@ -157,7 +157,7 @@
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#define RPMSG_VIRTIO_NOTIFY(d,v) \
|
||||
#define RPMSG_VIRTIO_LITE_NOTIFY(d,v) \
|
||||
((d)->ops->notify ? (d)->ops->notify(d,v) : -ENOSYS)
|
||||
|
||||
/****************************************************************************
|
||||
@@ -166,13 +166,13 @@
|
||||
|
||||
typedef CODE int (*rpmsg_virtio_callback_t)(FAR void *arg, uint32_t vqid);
|
||||
|
||||
begin_packed_struct struct rpmsg_virtio_cmd_s
|
||||
begin_packed_struct struct rpmsg_virtio_lite_cmd_s
|
||||
{
|
||||
uint32_t cmd_master;
|
||||
uint32_t cmd_slave;
|
||||
} end_packed_struct;
|
||||
|
||||
struct aligned_data(8) rpmsg_virtio_rsc_s
|
||||
struct aligned_data(8) rpmsg_virtio_lite_rsc_s
|
||||
{
|
||||
struct resource_table rsc_tbl_hdr;
|
||||
uint32_t offset[2];
|
||||
@@ -183,23 +183,24 @@ struct aligned_data(8) rpmsg_virtio_rsc_s
|
||||
struct fw_rsc_config config;
|
||||
};
|
||||
|
||||
struct rpmsg_virtio_s;
|
||||
struct rpmsg_virtio_ops_s
|
||||
struct rpmsg_virtio_lite_s;
|
||||
struct rpmsg_virtio_lite_ops_s
|
||||
{
|
||||
CODE FAR const char *(*get_local_cpuname)(FAR struct rpmsg_virtio_s *dev);
|
||||
CODE FAR const char *(*get_cpuname)(FAR struct rpmsg_virtio_s *dev);
|
||||
CODE FAR struct rpmsg_virtio_rsc_s *
|
||||
(*get_resource)(FAR struct rpmsg_virtio_s *dev);
|
||||
CODE int (*is_master)(FAR struct rpmsg_virtio_s *dev);
|
||||
CODE int (*notify)(FAR struct rpmsg_virtio_s *dev, uint32_t vqid);
|
||||
CODE int (*register_callback)(FAR struct rpmsg_virtio_s *dev,
|
||||
CODE FAR const char *
|
||||
(*get_local_cpuname)(FAR struct rpmsg_virtio_lite_s *dev);
|
||||
CODE FAR const char *(*get_cpuname)(FAR struct rpmsg_virtio_lite_s *dev);
|
||||
CODE FAR struct rpmsg_virtio_lite_rsc_s *
|
||||
(*get_resource)(FAR struct rpmsg_virtio_lite_s *dev);
|
||||
CODE int (*is_master)(FAR struct rpmsg_virtio_lite_s *dev);
|
||||
CODE int (*notify)(FAR struct rpmsg_virtio_lite_s *dev, uint32_t vqid);
|
||||
CODE int (*register_callback)(FAR struct rpmsg_virtio_lite_s *dev,
|
||||
rpmsg_virtio_callback_t callback,
|
||||
FAR void *arg);
|
||||
};
|
||||
|
||||
struct rpmsg_virtio_s
|
||||
struct rpmsg_virtio_lite_s
|
||||
{
|
||||
FAR const struct rpmsg_virtio_ops_s *ops;
|
||||
FAR const struct rpmsg_virtio_lite_ops_s *ops;
|
||||
};
|
||||
|
||||
/****************************************************************************
|
||||
@@ -214,12 +215,12 @@ extern "C"
|
||||
#define EXTERN extern
|
||||
#endif
|
||||
|
||||
int rpmsg_virtio_initialize(FAR struct rpmsg_virtio_s *dev);
|
||||
int rpmsg_virtio_lite_initialize(FAR struct rpmsg_virtio_lite_s *dev);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* CONFIG_RPTUN */
|
||||
#endif /* CONFIG_RPMSG_VIRTIO_LITE */
|
||||
|
||||
#endif /* __INCLUDE_NUTTX_RPMSG_RPMSG_VIRTIO_H */
|
||||
#endif /* __INCLUDE_NUTTX_RPMSG_RPMSG_VIRTIO_LITE_H */
|
||||
Reference in New Issue
Block a user