43 lines
1.2 KiB
C
43 lines
1.2 KiB
C
#include <cmdline_parser.h>
|
|
#include <debugconsole.h>
|
|
#include <process.h>
|
|
#include <status.h>
|
|
#include <strconv.h>
|
|
#include <string.h>
|
|
#include <system.h>
|
|
|
|
static bool cmdline_send = false;
|
|
static bool cmdline_recv = false;
|
|
static char cmdline_payload[CMDLINE_OPT_VALUE_MAX];
|
|
static uint64_t cmdline_pg;
|
|
|
|
static struct cmdline_opt cmdline_opts[] = {
|
|
CMDLINE_OPT("s", "send", CMDLINE_OPT_VALUE_BOOL, false, &cmdline_send),
|
|
CMDLINE_OPT("r", "recv", CMDLINE_OPT_VALUE_BOOL, false, &cmdline_recv),
|
|
CMDLINE_OPT("p", "payload", CMDLINE_OPT_VALUE_STRING, false, (char*)cmdline_payload),
|
|
CMDLINE_OPT("pg", "procgroup", CMDLINE_OPT_VALUE_INT, false, &cmdline_pg),
|
|
CMDLINE_END(),
|
|
};
|
|
|
|
void app_main(void) {
|
|
if (cmdline_parse(get_cmdline(), cmdline_opts) < 0) {
|
|
return;
|
|
}
|
|
|
|
if (cmdline_recv) {
|
|
char recv_buffer[1024];
|
|
|
|
for (;;) {
|
|
debug_printf("Waiting...\n");
|
|
memset(recv_buffer, 0, sizeof(recv_buffer));
|
|
mail_receive(recv_buffer, sizeof(recv_buffer));
|
|
|
|
debug_printf("Recv: %s\n", recv_buffer);
|
|
}
|
|
} else if (cmdline_send) {
|
|
debug_printf("sending [%s] to PG %d\n", cmdline_payload, (int)cmdline_pg);
|
|
|
|
mail_send((int)cmdline_pg, cmdline_payload, strlen(cmdline_payload));
|
|
}
|
|
}
|