mirror of
https://github.com/apache/nuttx-apps.git
synced 2026-08-01 20:29:00 +00:00
examples/rpmsgsocket: fix build warning
Signed-off-by: yintao <yintao@xiaomi.com>
This commit is contained in:
parent
2de1fdcebd
commit
bfde92a3fd
2 changed files with 71 additions and 45 deletions
|
|
@ -24,11 +24,12 @@
|
|||
|
||||
#include <nuttx/config.h>
|
||||
|
||||
#include <assert.h>
|
||||
#include <errno.h>
|
||||
#include <inttypes.h>
|
||||
#include <netpacket/rpmsg.h>
|
||||
#include <poll.h>
|
||||
#include <pthread.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
|
@ -50,23 +51,23 @@
|
|||
|
||||
struct rpsock_arg_s
|
||||
{
|
||||
int fd;
|
||||
char *inbuf;
|
||||
char *outbuf;
|
||||
FAR char *inbuf;
|
||||
FAR char *outbuf;
|
||||
bool nonblock;
|
||||
int bufsize;
|
||||
int check;
|
||||
int fd;
|
||||
};
|
||||
|
||||
/****************************************************************************
|
||||
* Public Functions
|
||||
****************************************************************************/
|
||||
|
||||
static void *rpsock_send_thread(pthread_addr_t pvarg)
|
||||
static FAR void *rpsock_send_thread(FAR void *pvarg)
|
||||
{
|
||||
struct rpsock_arg_s *args = pvarg;
|
||||
FAR struct rpsock_arg_s *args = pvarg;
|
||||
FAR char *buf = args->outbuf;
|
||||
int bufsize = args->bufsize;
|
||||
char *buf = args->outbuf;
|
||||
int fd = args->fd;
|
||||
int total = 0;
|
||||
ssize_t ret;
|
||||
|
|
@ -74,13 +75,13 @@ static void *rpsock_send_thread(pthread_addr_t pvarg)
|
|||
|
||||
while (cnt < 2000)
|
||||
{
|
||||
volatile uint32_t *intp;
|
||||
FAR volatile uint32_t *intp;
|
||||
struct pollfd pfd;
|
||||
char *tmp;
|
||||
FAR char *tmp;
|
||||
int snd;
|
||||
int i;
|
||||
|
||||
intp = (uint32_t *)buf;
|
||||
intp = (FAR uint32_t *)buf;
|
||||
for (i = 0; i < bufsize / sizeof(uint32_t); i++)
|
||||
{
|
||||
intp[i] = cnt * bufsize / sizeof(uint32_t) + i;
|
||||
|
|
@ -139,7 +140,7 @@ static void *rpsock_send_thread(pthread_addr_t pvarg)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
static int rpsock_unsync_test(struct rpsock_arg_s *args)
|
||||
static int rpsock_unsync_test(FAR struct rpsock_arg_s *args)
|
||||
{
|
||||
pthread_attr_t attr;
|
||||
pthread_t thread;
|
||||
|
|
@ -149,8 +150,7 @@ static int rpsock_unsync_test(struct rpsock_arg_s *args)
|
|||
|
||||
pthread_attr_init(&attr);
|
||||
pthread_attr_setstacksize(&attr, 10 * 1024);
|
||||
ret = pthread_create(&thread, &attr, rpsock_send_thread,
|
||||
(pthread_addr_t)args);
|
||||
ret = pthread_create(&thread, &attr, rpsock_send_thread, args);
|
||||
if (ret < 0)
|
||||
{
|
||||
return ret;
|
||||
|
|
@ -179,7 +179,7 @@ static int rpsock_unsync_test(struct rpsock_arg_s *args)
|
|||
ret = recv(args->fd, args->inbuf, args->bufsize, 0);
|
||||
if (ret > 0)
|
||||
{
|
||||
uint32_t *intp;
|
||||
FAR uint32_t *intp;
|
||||
int checks;
|
||||
int i;
|
||||
|
||||
|
|
@ -225,14 +225,14 @@ static int rpsock_unsync_test(struct rpsock_arg_s *args)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int rpsock_stream_client(int argc, char *argv[])
|
||||
static int rpsock_stream_client(FAR char *argv[])
|
||||
{
|
||||
struct sockaddr_rpmsg myaddr;
|
||||
struct rpsock_arg_s args;
|
||||
bool nonblock = false;
|
||||
int cnt = 0;
|
||||
char *outbuf;
|
||||
char *inbuf;
|
||||
FAR char *outbuf;
|
||||
FAR char *inbuf;
|
||||
int sockfd;
|
||||
int ret;
|
||||
|
||||
|
|
@ -278,7 +278,7 @@ static int rpsock_stream_client(int argc, char *argv[])
|
|||
strlcpy(myaddr.rp_cpu, argv[4], RPMSG_SOCKET_CPU_SIZE);
|
||||
|
||||
printf("client: Connecting to %s,%s...\n", myaddr.rp_cpu, myaddr.rp_name);
|
||||
ret = connect(sockfd, (struct sockaddr *)&myaddr, sizeof(myaddr));
|
||||
ret = connect(sockfd, (FAR struct sockaddr *)&myaddr, sizeof(myaddr));
|
||||
if (ret < 0 && errno == EINPROGRESS)
|
||||
{
|
||||
struct pollfd pfd;
|
||||
|
|
@ -306,9 +306,9 @@ static int rpsock_stream_client(int argc, char *argv[])
|
|||
size_t sendsize = BUFHEAD + cnt * (random() % 64);
|
||||
size_t recvsize = 0;
|
||||
ssize_t act;
|
||||
char *tmp;
|
||||
FAR char *tmp;
|
||||
FAR int *ptr;
|
||||
int snd;
|
||||
int *ptr;
|
||||
int i;
|
||||
|
||||
if (sendsize > SYNCSIZE)
|
||||
|
|
@ -319,7 +319,7 @@ static int rpsock_stream_client(int argc, char *argv[])
|
|||
snprintf(outbuf, BUFHEAD, "process%04d, msg%04d, name:%s",
|
||||
getpid(), cnt, argv[3]);
|
||||
|
||||
ptr = (int *)(outbuf + BUFHEAD);
|
||||
ptr = (FAR int *)(outbuf + BUFHEAD);
|
||||
for (i = 0; i < (sendsize - BUFHEAD) / 4; i++)
|
||||
{
|
||||
ptr[i] = cnt * 100 + i;
|
||||
|
|
@ -388,7 +388,7 @@ static int rpsock_stream_client(int argc, char *argv[])
|
|||
}
|
||||
}
|
||||
|
||||
ptr = (int *)(inbuf + BUFHEAD);
|
||||
ptr = (FAR int *)(inbuf + BUFHEAD);
|
||||
for (i = 0; i < (recvsize - BUFHEAD) / 4; i++)
|
||||
{
|
||||
if (ptr[i] != cnt * 100 + i)
|
||||
|
|
@ -420,13 +420,13 @@ errout_with_buffers:
|
|||
return -errno;
|
||||
}
|
||||
|
||||
static int rpsock_dgram_client(int argc, char *argv[])
|
||||
static int rpsock_dgram_client(FAR char *argv[])
|
||||
{
|
||||
struct sockaddr_rpmsg myaddr;
|
||||
struct rpsock_arg_s args;
|
||||
bool nonblock = false;
|
||||
char *outbuf;
|
||||
char *inbuf;
|
||||
FAR char *outbuf;
|
||||
FAR char *inbuf;
|
||||
int sockfd;
|
||||
int ret;
|
||||
|
||||
|
|
@ -472,7 +472,7 @@ static int rpsock_dgram_client(int argc, char *argv[])
|
|||
strlcpy(myaddr.rp_cpu, argv[4], RPMSG_SOCKET_CPU_SIZE);
|
||||
|
||||
printf("client: Connecting to %s,%s...\n", myaddr.rp_cpu, myaddr.rp_name);
|
||||
ret = connect(sockfd, (struct sockaddr *)&myaddr, sizeof(myaddr));
|
||||
ret = connect(sockfd, (FAR struct sockaddr *)&myaddr, sizeof(myaddr));
|
||||
if (ret < 0 && errno == EINPROGRESS)
|
||||
{
|
||||
struct pollfd pfd;
|
||||
|
|
@ -515,7 +515,19 @@ errout_with_buffers:
|
|||
return -errno;
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
/****************************************************************************
|
||||
* Public Functions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: rpsock_client_main
|
||||
*
|
||||
* Description:
|
||||
* Main entry point for the rpsock_client example.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int main(int argc, FAR char *argv[])
|
||||
{
|
||||
if (argc < 4)
|
||||
{
|
||||
|
|
@ -526,11 +538,11 @@ int main(int argc, char *argv[])
|
|||
|
||||
if (!strcmp(argv[1], "stream"))
|
||||
{
|
||||
return rpsock_stream_client(argc, argv);
|
||||
return rpsock_stream_client(argv);
|
||||
}
|
||||
else if (!strcmp(argv[1], "dgram"))
|
||||
{
|
||||
return rpsock_dgram_client(argc, argv);
|
||||
return rpsock_dgram_client(argv);
|
||||
}
|
||||
|
||||
return -EINVAL;
|
||||
|
|
|
|||
|
|
@ -29,11 +29,14 @@
|
|||
#include <netpacket/rpmsg.h>
|
||||
#include <pthread.h>
|
||||
#include <poll.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdbool.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
/****************************************************************************
|
||||
* Private types
|
||||
|
|
@ -46,19 +49,19 @@ struct rpsock_arg_s
|
|||
};
|
||||
|
||||
/****************************************************************************
|
||||
* Public Functions
|
||||
* Private Functions
|
||||
****************************************************************************/
|
||||
|
||||
static void *rpsock_thread(pthread_addr_t pvarg)
|
||||
static FAR void *rpsock_thread(FAR void *pvarg)
|
||||
{
|
||||
struct rpsock_arg_s *args = pvarg;
|
||||
FAR struct rpsock_arg_s *args = pvarg;
|
||||
struct pollfd pfd;
|
||||
char buf[255];
|
||||
ssize_t ret;
|
||||
|
||||
while (1)
|
||||
{
|
||||
char *tmp;
|
||||
FAR char *tmp;
|
||||
int snd;
|
||||
|
||||
if (args->nonblock)
|
||||
|
|
@ -152,7 +155,7 @@ static void *rpsock_thread(pthread_addr_t pvarg)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
static int rpsock_stream_server(int argc, char *argv[])
|
||||
static int rpsock_stream_server(int argc, FAR char *argv[])
|
||||
{
|
||||
struct sockaddr_rpmsg myaddr;
|
||||
bool nonblock = false;
|
||||
|
|
@ -199,7 +202,7 @@ static int rpsock_stream_server(int argc, char *argv[])
|
|||
|
||||
printf("server: bind cpu %s, name %s ...\n",
|
||||
myaddr.rp_cpu, myaddr.rp_name);
|
||||
ret = bind(listensd, (struct sockaddr *)&myaddr, sizeof(myaddr));
|
||||
ret = bind(listensd, (FAR struct sockaddr *)&myaddr, sizeof(myaddr));
|
||||
if (ret < 0)
|
||||
{
|
||||
printf("server: bind failure: %d\n", errno);
|
||||
|
|
@ -218,7 +221,7 @@ static int rpsock_stream_server(int argc, char *argv[])
|
|||
|
||||
while (1)
|
||||
{
|
||||
struct rpsock_arg_s *args;
|
||||
FAR struct rpsock_arg_s *args;
|
||||
pthread_t thread;
|
||||
struct pollfd pfd;
|
||||
int new;
|
||||
|
|
@ -238,7 +241,7 @@ static int rpsock_stream_server(int argc, char *argv[])
|
|||
}
|
||||
|
||||
printf("server: try accept ...\n");
|
||||
new = accept4(listensd, (struct sockaddr *)&myaddr, &addrlen,
|
||||
new = accept4(listensd, (FAR struct sockaddr *)&myaddr, &addrlen,
|
||||
SOCK_CLOEXEC);
|
||||
if (new < 0)
|
||||
break;
|
||||
|
|
@ -251,8 +254,7 @@ static int rpsock_stream_server(int argc, char *argv[])
|
|||
args->fd = new;
|
||||
args->nonblock = nonblock;
|
||||
|
||||
pthread_create(&thread, NULL, rpsock_thread,
|
||||
(pthread_addr_t)args);
|
||||
pthread_create(&thread, NULL, rpsock_thread, args);
|
||||
pthread_detach(thread);
|
||||
}
|
||||
|
||||
|
|
@ -266,10 +268,10 @@ errout_with_listensd:
|
|||
return -errno;
|
||||
}
|
||||
|
||||
static int rpsock_dgram_server(int argc, char *argv[])
|
||||
static int rpsock_dgram_server(int argc, FAR char *argv[])
|
||||
{
|
||||
struct sockaddr_rpmsg myaddr;
|
||||
struct rpsock_arg_s *args;
|
||||
FAR struct rpsock_arg_s *args;
|
||||
bool nonblock = false;
|
||||
int fd;
|
||||
int ret;
|
||||
|
|
@ -313,8 +315,8 @@ static int rpsock_dgram_server(int argc, char *argv[])
|
|||
|
||||
printf("server: bind cpu %s, name %s ...\n",
|
||||
myaddr.rp_cpu, myaddr.rp_name);
|
||||
ret = bind(fd, (struct sockaddr *)&myaddr, sizeof(myaddr));
|
||||
ret = connect(fd, (struct sockaddr *)&myaddr, sizeof(myaddr));
|
||||
ret = bind(fd, (FAR struct sockaddr *)&myaddr, sizeof(myaddr));
|
||||
ret = connect(fd, (FAR struct sockaddr *)&myaddr, sizeof(myaddr));
|
||||
if (ret < 0 && errno == EINPROGRESS)
|
||||
{
|
||||
struct pollfd pfd;
|
||||
|
|
@ -349,9 +351,21 @@ static int rpsock_dgram_server(int argc, char *argv[])
|
|||
return 0;
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
/****************************************************************************
|
||||
* Public Functions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: rpsock_server_main
|
||||
*
|
||||
* Description:
|
||||
* Main entry point for the rpsock_server example.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int main(int argc, FAR char *argv[])
|
||||
{
|
||||
if (argc != 4 && argc != 5)
|
||||
if (argc < 4)
|
||||
{
|
||||
printf("Usage: rpsock_server stream/dgram"
|
||||
" block/nonblock rp_name [rp_cpu]\n");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue