WIP: generic board-info

Change-Id: I0642269c924a0abe464a64c004681f507f14bc92
This commit is contained in:
Harald Welte
2023-09-06 17:53:06 +02:00
parent 73a8ef31f1
commit 4a8ec296fa
3 changed files with 45 additions and 1 deletions

View File

@@ -44,6 +44,7 @@ struct osmo_st2_cardem_inst {
int osmo_st2_slot_tx_msg(struct osmo_st2_slot *slot, struct msgb *msg,
uint8_t msg_class, uint8_t msg_type);
int osmo_st2_generic_request_board_info(struct osmo_st2_slot *slot);
int osmo_st2_cardem_request_card_insert(struct osmo_st2_cardem_inst *ci, bool inserted);
int osmo_st2_cardem_request_pb_and_rx(struct osmo_st2_cardem_inst *ci, uint8_t pb, uint8_t le);

View File

@@ -154,6 +154,19 @@ int osmo_st2_slot_tx_msg(struct osmo_st2_slot *slot, struct msgb *msg,
return rc;
}
/***********************************************************************
* Generic protocol
***********************************************************************/
/*! \brief Requeset the SIMtrace2 board information structure from the device */
int osmo_st2_generic_request_board_info(struct osmo_st2_slot *slot)
{
struct msgb *msg = st_msgb_alloc();
return osmo_st2_slot_tx_msg(0, msg, SIMTRACE_MSGC_GENERIC, SIMTRACE_CMD_BD_BOARD_INFO);
}
/***********************************************************************
* Card Emulation protocol
***********************************************************************/

View File

@@ -63,6 +63,7 @@ static void print_help(void)
"\n"
);
printf( "Commands:\n"
"\tgeneric board-info\n"
"\tmodem reset (enable|disable|cycle)\n"
"\tmodem sim-switch (local|remote)\n"
"\tmodem sim-card (insert|remove)\n"
@@ -216,6 +217,33 @@ static int do_subsys_modem(int argc, char **argv)
return rc;
}
static int do_generic_board_info(int argc, char **argv)
{
return osmo_st2_generic_request_board_info(ci->slot);
}
static int do_subsys_generic(int argc, char **argv)
{
char *command;
int rc;
if (argc < 1)
return -EINVAL;
command = argv[0];
argc--;
argv++;
if (!strcmp(command, "board-info")) {
rc = do_generic_board_info(argc, argv);
} else {
fprintf(stderr, "Unsupported command for subsystem generic: '%s'\n", command);
return -EINVAL;
}
return rc;
}
static int do_command(int argc, char **argv)
{
char *subsys;
@@ -227,7 +255,9 @@ static int do_command(int argc, char **argv)
argc--;
argv++;
if (!strcmp(subsys, "modem"))
if (!strcmp(subsys, "generic")) {
rc= do_subsys_generic(argc, argv);
} else if (!strcmp(subsys, "modem"))
rc = do_subsys_modem(argc, argv);
else {
fprintf(stderr, "Unsupported subsystem '%s'\n", subsys);