rptun_ping: decoupling rptun ping and rptun.

ping is not only rptun support, so move it to public part.

Signed-off-by: wangyongrong <wangyongrong@xiaomi.com>
This commit is contained in:
wangyongrong 2023-11-30 18:21:21 +08:00 committed by Xiang Xiao
parent 11cefd087a
commit df147406db
6 changed files with 102 additions and 25 deletions

View File

@ -10,6 +10,13 @@ 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
@ -38,11 +45,4 @@ config RPTUN_PM
goto RAM-retention mode, can't access from another CPU.
So, we provide this method to resolve this.
config RPTUN_PING
bool "rptun ping support"
default n
---help---
This is for rptun debugging & profiling, create ping RPMSG
channel, user can use it to get send/recv speed & latency.
endif # RPTUN

View File

@ -28,6 +28,8 @@
#include <nuttx/rptun/rptun.h>
#include <openamp/open_amp.h>
#include "rptun_ping.h"
/****************************************************************************
* Public Function Prototypes
****************************************************************************/
@ -35,10 +37,4 @@
int rptun_buffer_nused(FAR struct rpmsg_virtio_device *rvdev, bool rx);
void rptun_dump(FAR struct rpmsg_virtio_device *rvdev);
int rptun_ping_init(FAR struct rpmsg_device *rvdev,
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);
#endif /* __DRIVERS_RPTUN_RPTUN_H */

View File

@ -31,8 +31,7 @@
#include <time.h>
#include <nuttx/signal.h>
#include "rptun.h"
#include "rptun_ping.h"
/****************************************************************************
* Pre-processor definitions
****************************************************************************/

View File

@ -0,0 +1,44 @@
/****************************************************************************
* drivers/rptun/rptun_ping.h
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership. The
* ASF licenses this file to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance with the
* License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*
****************************************************************************/
#ifndef __DRIVERS_RPTUN_RPTUN_PING_H
#define __DRIVERS_RPTUN_RPTUN_PING_H
/****************************************************************************
* Included Files
****************************************************************************/
#include <nuttx/rptun/rptun_ping.h>
#include <openamp/open_amp.h>
#ifdef CONFIG_RPTUN_PING
/****************************************************************************
* Public Function Prototypes
****************************************************************************/
int rptun_ping_init(FAR struct rpmsg_device *rvdev,
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);
#endif /* CONFIG_RPTUN_PING */
#endif /* __DRIVERS_RPTUN_RPTUN_PING_H */

View File

@ -30,6 +30,7 @@
#ifdef CONFIG_RPTUN
#include <nuttx/fs/ioctl.h>
#include <nuttx/rptun/rptun_ping.h>
#include <openamp/open_amp.h>
/****************************************************************************
@ -342,16 +343,6 @@ struct rptun_dev_s
FAR const struct rptun_ops_s *ops;
};
/* used for ioctl RPTUNIOC_PING */
struct rptun_ping_s
{
int times;
int len;
int ack;
int sleep; /* unit: ms */
};
/****************************************************************************
* Public Function Prototypes
****************************************************************************/

View File

@ -0,0 +1,47 @@
/****************************************************************************
* include/nuttx/rptun/rptun_ping.h
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership. The
* ASF licenses this file to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance with the
* License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*
****************************************************************************/
#ifndef __INCLUDE_NUTTX_RPTUN_RPTUN_PING_H
#define __INCLUDE_NUTTX_RPTUN_RPTUN_PING_H
/****************************************************************************
* Included Files
****************************************************************************/
#include <nuttx/config.h>
#ifdef CONFIG_RPTUN_PING
/****************************************************************************
* Public Function Prototypes
****************************************************************************/
/* used for ioctl RPTUNIOC_PING */
struct rptun_ping_s
{
int times;
int len;
int ack;
int sleep; /* unit: ms */
};
#endif /* CONFIG_RPTUN_PING */
#endif /* __INCLUDE_NUTTX_RPTUN_RPTUN_PING_H */