Add run-time changing of gsmd log level via libgsm/libgsmd-tool
This commit is contained in:
parent
4c14b6eb41
commit
3ec111676f
|
@ -142,6 +142,7 @@ enum gsmd_msg_phone {
|
|||
GSMD_PHONE_VIB_ENABLE = 9,
|
||||
GSMD_PHONE_VIB_DISABLE = 10,
|
||||
GSMD_PHONE_POWER_STATUS = 11,
|
||||
GSMD_PHONE_GSMD_LOGLEVEL= 12,
|
||||
};
|
||||
|
||||
enum gsmd_msg_modem {
|
||||
|
|
|
@ -80,4 +80,7 @@ extern int lgsm_phone_vibrator(struct lgsm_handle *lh, int enable);
|
|||
/* Get Antenna Power status */
|
||||
extern int lgsm_get_power_status(struct lgsm_handle *lh);
|
||||
|
||||
/* Set the gsmd loglevel at runtime */
|
||||
extern int lgsm_set_gsmd_loglevel(struct lgsm_handle *lh, u_int8_t loglevel);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -43,6 +43,8 @@
|
|||
#include <gsmd/ts0707.h>
|
||||
#include <gsmd/sms.h>
|
||||
|
||||
extern int loglevel;
|
||||
|
||||
static void *__ucmd_ctx, *__gu_ctx;
|
||||
|
||||
struct gsmd_ucmd *ucmd_alloc(int extra_size)
|
||||
|
@ -765,6 +767,14 @@ static int usock_rcv_phone(struct gsmd_user *gu, struct gsmd_msg_hdr *gph,
|
|||
cmd = atcmd_fill("AT+CVIB=0", 9+1, &phone_vibrator_disable_cb, gu, 0, NULL);
|
||||
gu->gsmd->dev_state.vibrator = 0;
|
||||
break;
|
||||
case GSMD_PHONE_GSMD_LOGLEVEL:
|
||||
if (gph->len < 1)
|
||||
return -EINVAL;
|
||||
gsmd_log(GSMD_NOTICE, "Setting loglevel to %u on client "
|
||||
"request\n", gph->data[0]);
|
||||
loglevel = gph->data[0];
|
||||
return 0;
|
||||
break;
|
||||
default:
|
||||
return -EINVAL;
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
/* libgsmd phone related functions
|
||||
*
|
||||
* (C) 2006-2007 by OpenMoko, Inc.
|
||||
* (C) 2013 by Harald Welte
|
||||
* Written by Harald Welte <laforge@openmoko.org>
|
||||
* All Rights Reserved
|
||||
*
|
||||
|
@ -90,4 +91,20 @@ int lgsm_phone_vibrator(struct lgsm_handle *lh, int enable)
|
|||
|
||||
return lgsm_send_simple(lh, GSMD_MSG_PHONE, type);
|
||||
}
|
||||
|
||||
|
||||
int lgsm_set_gsmd_loglevel(struct lgsm_handle *lh, u_int8_t loglevel)
|
||||
{
|
||||
struct gsmd_msg_hdr *gmh;
|
||||
int rc;
|
||||
|
||||
gmh = lgsm_gmh_fill(GSMD_MSG_PHONE, GSMD_PHONE_GSMD_LOGLEVEL, 1);
|
||||
if (!gmh)
|
||||
return -ENOMEM;
|
||||
|
||||
gmh->data[0] = loglevel;
|
||||
|
||||
rc = lgsm_send(lh, gmh);
|
||||
|
||||
lgsm_gmh_free(gmh);
|
||||
return rc;
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
/* libgsmd tool
|
||||
*
|
||||
* (C) 2006-2007 by OpenMoko, Inc.
|
||||
* (C) 2013 by Harald Welte
|
||||
* Written by Harald Welte <laforge@openmoko.org>
|
||||
* All Rights Reserved
|
||||
*
|
||||
|
@ -102,6 +103,7 @@ int main(int argc, char **argv)
|
|||
int mode = MODE_NONE, shellwait = 0;
|
||||
|
||||
printf("libgsm-tool - (C) 2006-2007 by Harald Welte and OpenMoko, Inc.\n"
|
||||
" (C) 2012-2013 by Harald Welte\n"
|
||||
"This program is Free Software and has ABSOLUTELY NO WARRANTY\n\n");
|
||||
|
||||
while (1) {
|
||||
|
|
|
@ -604,6 +604,7 @@ static void shell_help(void)
|
|||
"\tCFQ\tQuery the status of call forwarding (CFQ=reason)\n"
|
||||
"\tCFR\tRegister call forwarding (CFR=reason,number)\n"
|
||||
"\tCFe\tErase a record of call forwarding (CFe=reason)\n"
|
||||
"\tlog=N\tSet gsmd Log Level (1=debug, 8=fatal)\n"
|
||||
"\tq\tQuit\n"
|
||||
);
|
||||
}
|
||||
|
@ -1024,6 +1025,10 @@ int shell_main(struct lgsm_handle *lgsmh, int sync)
|
|||
printf("Battery Connection status and Battery Charge Level\n");
|
||||
lgsm_get_battery(lgsmh);
|
||||
pending_responses++;
|
||||
} else if (!strncmp(buf, "log=", 4)) {
|
||||
int gsmd_loglevel = atoi(buf+4);
|
||||
lgsm_set_gsmd_loglevel(lgsmh, gsmd_loglevel);
|
||||
pending_responses++;
|
||||
}else {
|
||||
printf("Unknown command `%s'\n", buf);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue