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 8e799ff8236ee04ce50ee2e6ad3cb0882e8ed83e Author: wangyongrong <[email protected]> AuthorDate: Thu Jun 27 16:09:25 2024 +0800 rpmsg: upgrade API passing on parameters with the upgrade of OpenAMP All the rpmsg transport layer and rpmsg services sync the API with new OpenAMP Signed-off-by: wangyongrong <[email protected]> --- drivers/misc/rpmsgblk.c | 2 +- drivers/rpmsg/rpmsg.c | 12 -------- drivers/rpmsg/rpmsg_port.c | 59 ++++++++++++++++++++------------------- drivers/rpmsg/rpmsg_router_edge.c | 59 ++++++++++++++++++++------------------- drivers/rpmsg/rpmsg_router_hub.c | 8 +++--- drivers/rpmsg/rpmsg_virtio.c | 14 ---------- drivers/rptun/rptun.c | 14 ---------- fs/rpmsgfs/rpmsgfs_server.c | 4 +-- include/nuttx/rpmsg/rpmsg.h | 7 ----- 9 files changed, 68 insertions(+), 111 deletions(-) diff --git a/drivers/misc/rpmsgblk.c b/drivers/misc/rpmsgblk.c index 28e2638b09..70dc9a5ee9 100644 --- a/drivers/misc/rpmsgblk.c +++ b/drivers/misc/rpmsgblk.c @@ -614,7 +614,7 @@ static int rpmsgblk_mmc_multi_cmd_ioctl(FAR struct inode *inode, msglen = sizeof(*msg) + arglen - 1; rsplen += sizeof(*msg) - 1; - if (MAX(msglen, rsplen) > rpmsg_get_tx_buffer_size(priv->ept.rdev)) + if (MAX(msglen, rsplen) > rpmsg_get_tx_buffer_size(&priv->ept)) { int ret = 0; diff --git a/drivers/rpmsg/rpmsg.c b/drivers/rpmsg/rpmsg.c index 9af3cf6944..6db73ba676 100644 --- a/drivers/rpmsg/rpmsg.c +++ b/drivers/rpmsg/rpmsg.c @@ -207,18 +207,6 @@ FAR const char *rpmsg_get_cpuname(FAR struct rpmsg_device *rdev) return rpmsg ? rpmsg->ops->get_cpuname(rpmsg) : NULL; } -int rpmsg_get_tx_buffer_size(FAR struct rpmsg_device *rdev) -{ - FAR struct rpmsg_s *rpmsg = rpmsg_get_by_rdev(rdev); - return rpmsg ? rpmsg->ops->get_tx_buffer_size(rpmsg) : -EINVAL; -} - -int rpmsg_get_rx_buffer_size(FAR struct rpmsg_device *rdev) -{ - FAR struct rpmsg_s *rpmsg = rpmsg_get_by_rdev(rdev); - return rpmsg ? rpmsg->ops->get_rx_buffer_size(rpmsg) : -EINVAL; -} - int rpmsg_register_callback(FAR void *priv, rpmsg_dev_cb_t device_created, rpmsg_dev_cb_t device_destroy, diff --git a/drivers/rpmsg/rpmsg_port.c b/drivers/rpmsg/rpmsg_port.c index b0deb58458..0e9233fbed 100644 --- a/drivers/rpmsg/rpmsg_port.c +++ b/drivers/rpmsg/rpmsg_port.c @@ -48,8 +48,6 @@ static FAR const char * rpmsg_port_get_local_cpuname(FAR struct rpmsg_s *rpmsg); static FAR const char *rpmsg_port_get_cpuname(FAR struct rpmsg_s *rpmsg); -static int rpmsg_port_get_tx_buffer_size(FAR struct rpmsg_s *rpmsg); -static int rpmsg_port_get_rx_buffer_size(FAR struct rpmsg_s *rpmsg); static void rpmsg_port_dump(FAR struct rpmsg_s *rpmsg); /**************************************************************************** @@ -65,8 +63,6 @@ static const struct rpmsg_ops_s g_rpmsg_port_ops = rpmsg_port_dump, rpmsg_port_get_local_cpuname, rpmsg_port_get_cpuname, - rpmsg_port_get_tx_buffer_size, - rpmsg_port_get_rx_buffer_size, }; /**************************************************************************** @@ -372,6 +368,32 @@ static int rpmsg_port_release_tx_buffer(FAR struct rpmsg_device *rdev, return RPMSG_SUCCESS; } +/**************************************************************************** + * Name: rpmsg_port_get_tx_buffer_size + ****************************************************************************/ + +static int rpmsg_port_get_tx_buffer_size(FAR struct rpmsg_device *rdev) +{ + FAR struct rpmsg_port_s *port = + metal_container_of(rdev, struct rpmsg_port_s, rdev); + + return port->txq.len - sizeof(struct rpmsg_port_header_s) - + sizeof(struct rpmsg_hdr); +} + +/**************************************************************************** + * Name: rpmsg_port_get_rx_buffer_size + ****************************************************************************/ + +static int rpmsg_port_get_rx_buffer_size(FAR struct rpmsg_device *rdev) +{ + FAR struct rpmsg_port_s *port = + metal_container_of(rdev, struct rpmsg_port_s, rdev); + + return port->rxq.len - sizeof(struct rpmsg_port_header_s) - + sizeof(struct rpmsg_hdr); +} + /**************************************************************************** * Name: rpmsg_port_rx_callback ****************************************************************************/ @@ -540,30 +562,6 @@ static FAR const char *rpmsg_port_get_cpuname(FAR struct rpmsg_s *rpmsg) return port->cpuname; } -/**************************************************************************** - * Name: rpmsg_port_get_tx_buffer_size - ****************************************************************************/ - -static int rpmsg_port_get_tx_buffer_size(FAR struct rpmsg_s *rpmsg) -{ - FAR struct rpmsg_port_s *port = (FAR struct rpmsg_port_s *)rpmsg; - - return port->txq.len - sizeof(struct rpmsg_port_header_s) - - sizeof(struct rpmsg_hdr); -} - -/**************************************************************************** - * Name: rpmsg_port_get_rx_buffer_size - ****************************************************************************/ - -static int rpmsg_port_get_rx_buffer_size(FAR struct rpmsg_s *rpmsg) -{ - FAR struct rpmsg_port_s *port = (FAR struct rpmsg_port_s *)rpmsg; - - return port->rxq.len - sizeof(struct rpmsg_port_header_s) - - sizeof(struct rpmsg_hdr); -} - /**************************************************************************** * Public Functions ****************************************************************************/ @@ -604,6 +602,8 @@ int rpmsg_port_initialize(FAR struct rpmsg_port_s *port, rdev->ops.get_tx_payload_buffer = rpmsg_port_get_tx_payload_buffer; rdev->ops.send_offchannel_nocopy = rpmsg_port_send_offchannel_nocopy; rdev->ops.release_tx_buffer = rpmsg_port_release_tx_buffer; + rdev->ops.get_rx_buffer_size = rpmsg_port_get_rx_buffer_size; + rdev->ops.get_tx_buffer_size = rpmsg_port_get_tx_buffer_size; metal_list_init(&rdev->endpoints); @@ -611,7 +611,8 @@ int rpmsg_port_initialize(FAR struct rpmsg_port_s *port, rdev->support_ns = true; rpmsg_register_endpoint(rdev, &rdev->ns_ept, "NS", RPMSG_NS_EPT_ADDR, - RPMSG_NS_EPT_ADDR, rpmsg_port_ns_callback, NULL); + RPMSG_NS_EPT_ADDR, rpmsg_port_ns_callback, NULL, + port); port->ops->register_callback(port, rpmsg_port_rx_callback); return 0; diff --git a/drivers/rpmsg/rpmsg_router_edge.c b/drivers/rpmsg/rpmsg_router_edge.c index 9874e8c9a3..fccdb68904 100644 --- a/drivers/rpmsg/rpmsg_router_edge.c +++ b/drivers/rpmsg/rpmsg_router_edge.c @@ -85,8 +85,11 @@ static FAR const char * rpmsg_router_edge_get_local_cpuname(FAR struct rpmsg_s *rpmsg); static FAR const char * rpmsg_router_edge_get_cpuname(FAR struct rpmsg_s *rpmsg); -static int rpmsg_router_edge_get_tx_buffer_size(FAR struct rpmsg_s *rpmsg); -static int rpmsg_router_edge_get_rx_buffer_size(FAR struct rpmsg_s *rpmsg); + +static int +rpmsg_router_edge_get_rx_buffer_size(FAR struct rpmsg_device *rdev); +static int +rpmsg_router_edge_get_tx_buffer_size(FAR struct rpmsg_device *rdev); /**************************************************************************** * Private Data @@ -101,8 +104,6 @@ static const struct rpmsg_ops_s g_rpmsg_router_edge_ops = NULL, rpmsg_router_edge_get_local_cpuname, rpmsg_router_edge_get_cpuname, - rpmsg_router_edge_get_tx_buffer_size, - rpmsg_router_edge_get_rx_buffer_size, }; /**************************************************************************** @@ -135,30 +136,6 @@ rpmsg_router_edge_get_cpuname(FAR struct rpmsg_s *rpmsg) return edge->remotecpu; } -/**************************************************************************** - * Name: rpmsg_router_edge_get_tx_buffer_size - ****************************************************************************/ - -static int rpmsg_router_edge_get_tx_buffer_size(FAR struct rpmsg_s *rpmsg) -{ - FAR struct rpmsg_router_edge_s *edge = - (FAR struct rpmsg_router_edge_s *)rpmsg; - - return edge->tx_len; -} - -/**************************************************************************** - * Name: rpmsg_router_edge_get_rx_buffer_size - ****************************************************************************/ - -static int rpmsg_router_edge_get_rx_buffer_size(FAR struct rpmsg_s *rpmsg) -{ - FAR struct rpmsg_router_edge_s *edge = - (FAR struct rpmsg_router_edge_s *)rpmsg; - - return edge->rx_len; -} - /**************************************************************************** * Name: rpmsg_router_edge_get_tx_payload_buffer ****************************************************************************/ @@ -255,6 +232,30 @@ static int rpmsg_router_edge_send_nocopy(FAR struct rpmsg_device *rdev, return hubdev->ops.send_offchannel_nocopy(hubdev, src, dst, data, len); } +/**************************************************************************** + * Name: rpmsg_router_edge_get_rx_buffer_size + ****************************************************************************/ + +static int +rpmsg_router_edge_get_rx_buffer_size(FAR struct rpmsg_device *rdev) +{ + FAR struct rpmsg_router_edge_s *edge = rpmsg_router_edge_from_rdev(rdev); + + return edge->rx_len; +} + +/**************************************************************************** + * Name: rpmsg_router_edge_get_tx_buffer_size + ****************************************************************************/ + +static int +rpmsg_router_edge_get_tx_buffer_size(FAR struct rpmsg_device *rdev) +{ + FAR struct rpmsg_router_edge_s *edge = rpmsg_router_edge_from_rdev(rdev); + + return edge->tx_len; +} + /**************************************************************************** * Name: rpmsg_router_edge_cb * @@ -608,6 +609,8 @@ rpmsg_router_edge_create(FAR struct rpmsg_device *hubdev, rdev->ops.send_offchannel_nocopy = rpmsg_router_edge_send_nocopy; rdev->ops.send_offchannel_raw = rpmsg_router_edge_send_offchannel_raw; rdev->ops.get_tx_payload_buffer = rpmsg_router_edge_get_tx_payload_buffer; + rdev->ops.get_rx_buffer_size = rpmsg_router_edge_get_rx_buffer_size; + rdev->ops.get_tx_buffer_size = rpmsg_router_edge_get_tx_buffer_size; metal_list_init(&rdev->endpoints); rdev->support_ack = true; diff --git a/drivers/rpmsg/rpmsg_router_hub.c b/drivers/rpmsg/rpmsg_router_hub.c index 78080e1ee5..a150c719d9 100644 --- a/drivers/rpmsg/rpmsg_router_hub.c +++ b/drivers/rpmsg/rpmsg_router_hub.c @@ -322,10 +322,10 @@ static void rpmsg_router_bound(FAR struct rpmsg_endpoint *ept) for (i = 0; i < 2; i++) { msg.cmd = RPMSG_ROUTER_CREATE; - msg.tx_len = MIN(rpmsg_get_rx_buffer_size(hub->ept[i].rdev), - rpmsg_get_tx_buffer_size(hub->ept[1 - i].rdev)); - msg.rx_len = MIN(rpmsg_get_tx_buffer_size(hub->ept[i].rdev), - rpmsg_get_rx_buffer_size(hub->ept[1 - i].rdev)); + msg.tx_len = MIN(rpmsg_get_rx_buffer_size(&hub->ept[i]), + rpmsg_get_tx_buffer_size(&hub->ept[1 - i])); + msg.rx_len = MIN(rpmsg_get_tx_buffer_size(&hub->ept[i]), + rpmsg_get_rx_buffer_size(&hub->ept[1 - i])); strlcpy(msg.cpuname, hub->cpuname[i], sizeof(msg.cpuname)); ret = rpmsg_send(&hub->ept[i], &msg, sizeof(msg)); DEBUGASSERT(ret >= 0); diff --git a/drivers/rpmsg/rpmsg_virtio.c b/drivers/rpmsg/rpmsg_virtio.c index 890180c594..1f8b1bb6f6 100644 --- a/drivers/rpmsg/rpmsg_virtio.c +++ b/drivers/rpmsg/rpmsg_virtio.c @@ -74,8 +74,6 @@ static void rpmsg_virtio_dump(FAR struct rpmsg_s *rpmsg); static FAR const char * rpmsg_virtio_get_local_cpuname(FAR struct rpmsg_s *rpmsg); static FAR const char *rpmsg_virtio_get_cpuname(FAR struct rpmsg_s *rpmsg); -static int rpmsg_virtio_get_tx_buffer_size(FAR struct rpmsg_s *rpmsg); -static int rpmsg_virtio_get_rx_buffer_size_(FAR struct rpmsg_s *rpmsg); static int rpmsg_virtio_create_virtqueues_(FAR struct virtio_device *vdev, unsigned int flags, @@ -102,8 +100,6 @@ static const struct rpmsg_ops_s g_rpmsg_virtio_ops = .dump = rpmsg_virtio_dump, .get_local_cpuname = rpmsg_virtio_get_local_cpuname, .get_cpuname = rpmsg_virtio_get_cpuname, - .get_tx_buffer_size = rpmsg_virtio_get_tx_buffer_size, - .get_rx_buffer_size = rpmsg_virtio_get_rx_buffer_size_, }; static const struct virtio_dispatch g_rpmsg_virtio_dispatch = @@ -429,16 +425,6 @@ static FAR const char *rpmsg_virtio_get_cpuname(FAR struct rpmsg_s *rpmsg) return RPMSG_VIRTIO_GET_CPUNAME(priv->dev); } -static int rpmsg_virtio_get_tx_buffer_size(FAR struct rpmsg_s *rpmsg) -{ - return rpmsg_virtio_get_buffer_size(rpmsg->rdev); -} - -static int rpmsg_virtio_get_rx_buffer_size_(FAR struct rpmsg_s *rpmsg) -{ - return rpmsg_virtio_get_rx_buffer_size(rpmsg->rdev); -} - static void rpmsg_virtio_wakeup_rx(FAR struct rpmsg_virtio_priv_s *priv) { int semcount; diff --git a/drivers/rptun/rptun.c b/drivers/rptun/rptun.c index 144bae67a4..e6a23d1620 100644 --- a/drivers/rptun/rptun.c +++ b/drivers/rptun/rptun.c @@ -129,8 +129,6 @@ static void rptun_panic(FAR struct rpmsg_s *rpmsg); static void rptun_dump(FAR struct rpmsg_s *rpmsg); static FAR const char *rptun_get_local_cpuname(FAR struct rpmsg_s *rpmsg); static FAR const char *rptun_get_cpuname(FAR struct rpmsg_s *rpmsg); -static int rptun_get_tx_buffer_size(FAR struct rpmsg_s *rpmsg); -static int rptun_get_rx_buffer_size(FAR struct rpmsg_s *rpmsg); /**************************************************************************** * Private Data @@ -167,8 +165,6 @@ static const struct rpmsg_ops_s g_rptun_rpmsg_ops = rptun_dump, rptun_get_local_cpuname, rptun_get_cpuname, - rptun_get_tx_buffer_size, - rptun_get_rx_buffer_size, }; /**************************************************************************** @@ -769,16 +765,6 @@ static FAR const char *rptun_get_cpuname(FAR struct rpmsg_s *rpmsg) return RPTUN_GET_CPUNAME(priv->dev); } -static int rptun_get_tx_buffer_size(FAR struct rpmsg_s *rpmsg) -{ - return rpmsg_virtio_get_buffer_size(rpmsg->rdev); -} - -static int rptun_get_rx_buffer_size(FAR struct rpmsg_s *rpmsg) -{ - return rpmsg_virtio_get_rx_buffer_size(rpmsg->rdev); -} - static int rptun_dev_start(FAR struct remoteproc *rproc) { FAR struct rptun_priv_s *priv = rproc->priv; diff --git a/fs/rpmsgfs/rpmsgfs_server.c b/fs/rpmsgfs/rpmsgfs_server.c index 7fa9cd76f5..b3f8fbd8a8 100644 --- a/fs/rpmsgfs/rpmsgfs_server.c +++ b/fs/rpmsgfs/rpmsgfs_server.c @@ -616,8 +616,8 @@ static int rpmsgfs_readdir_handler(FAR struct rpmsg_endpoint *ept, entry = readdir(dir); if (entry) { - size = MIN(rpmsg_get_tx_buffer_size(ept->rdev), - rpmsg_get_rx_buffer_size(ept->rdev)); + size = MIN(rpmsg_get_tx_buffer_size(ept), + rpmsg_get_rx_buffer_size(ept)); size = MIN(size - len, strlen(entry->d_name) + 1); msg->type = entry->d_type; strlcpy(msg->name, entry->d_name, size); diff --git a/include/nuttx/rpmsg/rpmsg.h b/include/nuttx/rpmsg/rpmsg.h index 08435ef95f..b41a439bad 100644 --- a/include/nuttx/rpmsg/rpmsg.h +++ b/include/nuttx/rpmsg/rpmsg.h @@ -65,8 +65,6 @@ struct rpmsg_s * wait: wait sem. * post: post sem. * get_cpuname: get cpu name. - * get_tx_buffer_size: get tx buffer size. - * get_rx_buffer_size: get rx buffer size. */ struct rpmsg_ops_s @@ -78,8 +76,6 @@ struct rpmsg_ops_s CODE void (*dump)(FAR struct rpmsg_s *rpmsg); CODE FAR const char *(*get_local_cpuname)(FAR struct rpmsg_s *rpmsg); CODE FAR const char *(*get_cpuname)(FAR struct rpmsg_s *rpmsg); - CODE int (*get_tx_buffer_size)(FAR struct rpmsg_s *rpmsg); - CODE int (*get_rx_buffer_size)(FAR struct rpmsg_s *rpmsg); }; CODE typedef void (*rpmsg_dev_cb_t)(FAR struct rpmsg_device *rdev, @@ -109,9 +105,6 @@ int rpmsg_post(FAR struct rpmsg_endpoint *ept, FAR sem_t *sem); FAR const char *rpmsg_get_local_cpuname(FAR struct rpmsg_device *rdev); FAR const char *rpmsg_get_cpuname(FAR struct rpmsg_device *rdev); -int rpmsg_get_tx_buffer_size(FAR struct rpmsg_device *rdev); -int rpmsg_get_rx_buffer_size(FAR struct rpmsg_device *rdev); - int rpmsg_register_callback(FAR void *priv, rpmsg_dev_cb_t device_created, rpmsg_dev_cb_t device_destroy,
