Signed-off-by: Aleksander Morgado <aleksander@xxxxxxxxxxxxx> --- common/ratp/Makefile | 1 + common/ratp/ping.c | 40 ++++++++++++++++++++++++++++++++++++++++ common/ratp/ratp.c | 24 ------------------------ 3 files changed, 41 insertions(+), 24 deletions(-) create mode 100644 common/ratp/ping.c diff --git a/common/ratp/Makefile b/common/ratp/Makefile index cab14c6fb..acad61ee5 100644 --- a/common/ratp/Makefile +++ b/common/ratp/Makefile @@ -1 +1,2 @@ obj-y += ratp.o +obj-y += ping.o diff --git a/common/ratp/ping.c b/common/ratp/ping.c new file mode 100644 index 000000000..cc29ea36c --- /dev/null +++ b/common/ratp/ping.c @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2018 Sascha Hauer <s.hauer@xxxxxxxxxxxxxx>, Pengutronix + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +/* + * RATP ping + */ + +#include <common.h> +#include <ratp_bb.h> +#include <malloc.h> + +static int ratp_cmd_ping(const struct ratp_bb *req, int req_len, + struct ratp_bb **rsp, int *rsp_len) +{ + /* Just build response */ + *rsp_len = sizeof(struct ratp_bb); + *rsp = xzalloc(*rsp_len); + (*rsp)->type = cpu_to_be16(BB_RATP_TYPE_PONG); + return 0; +} + +BAREBOX_RATP_CMD_START(PING) + .request_id = BB_RATP_TYPE_PING, + .response_id = BB_RATP_TYPE_PONG, + .cmd = ratp_cmd_ping +BAREBOX_RATP_CMD_END diff --git a/common/ratp/ratp.c b/common/ratp/ratp.c index 7c8a2f6f5..965c67a0a 100644 --- a/common/ratp/ratp.c +++ b/common/ratp/ratp.c @@ -189,25 +189,6 @@ static int ratp_bb_send_command_return(struct ratp_ctx *ctx, uint32_t errno) return ret; } -static int ratp_bb_send_pong(struct ratp_ctx *ctx) -{ - void *buf; - struct ratp_bb *rbb; - int len = sizeof(*rbb); - int ret; - - buf = xzalloc(len); - rbb = buf; - - rbb->type = cpu_to_be16(BB_RATP_TYPE_PONG); - - ret = ratp_send(&ctx->ratp, buf, len); - - free(buf); - - return ret; -} - static int ratp_bb_send_getenv_return(struct ratp_ctx *ctx, const char *val) { void *buf; @@ -270,7 +251,6 @@ static int ratp_bb_dispatch(struct ratp_ctx *ctx, const void *buf, int len) break; case BB_RATP_TYPE_COMMAND_RETURN: - case BB_RATP_TYPE_PONG: break; case BB_RATP_TYPE_CONSOLEMSG: @@ -280,10 +260,6 @@ static int ratp_bb_dispatch(struct ratp_ctx *ctx, const void *buf, int len) kfifo_put(ctx->console_recv_fifo, rbb->data, dlen); break; - case BB_RATP_TYPE_PING: - ret = ratp_bb_send_pong(ctx); - break; - case BB_RATP_TYPE_GETENV: varname = xmemdup_add_zero(&rbb->data, dlen); -- 2.15.1 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox