diff options
Diffstat (limited to '')
-rw-r--r-- | TODO | 2 | ||||
-rw-r--r-- | src/mds-clipboard.c | 50 | ||||
-rw-r--r-- | src/mds-echo.c | 16 | ||||
-rw-r--r-- | src/mds-kkbd.c | 27 |
4 files changed, 94 insertions, 1 deletions
@@ -60,5 +60,5 @@ to autorelease. IPA keyboard layout Add support for SIGINFO - mds-clipboard mds-echo mds-kkbd mds-registry mds-server + mds-registry mds-server diff --git a/src/mds-clipboard.c b/src/mds-clipboard.c index d4c17c4..0880f73 100644 --- a/src/mds-clipboard.c +++ b/src/mds-clipboard.c @@ -909,3 +909,53 @@ int clipboard_get_size(int level, const char* recv_client_id, const char* recv_m return -1; } + +/** + * This function is called when a signal that + * signals that the system to dump state information + * and statistics has been received + * + * @param signo The signal that has been received + */ +void received_info(int signo) +{ + clipitem_t clipitem; + size_t i, j, n; + struct timespec now; + (void) signo; + if (monotone(&now) < 0) + iprint("(unable to get current time)"); + else + iprintf("current time: %ji.%09li", (intmax_t)(now.tv_sec), (long)(now.tv_nsec)); + iprintf("next message ID: %" PRIu32, message_id); + iprintf("connected: %s", connected ? "yes" : "no"); + for (i = 0; i < CLIPBOARD_LEVELS; i++) + { + n = clipboard_used[i]; + iprintf("clipstack %zu: allocated: %zu", i, clipboard_size[i]); + iprintf("clipstack %zu: used: %zu", i, n); + for (j = 0; j < n; j++) + { + clipitem = clipboard[i][j]; + iprintf("clipstack %zu: item %zu:", i, j); + iprintf(" autopurge: %s", + clipitem.autopurge == CLIPITEM_AUTOPURGE_NEVER ? "as needed" : + clipitem.autopurge == CLIPITEM_AUTOPURGE_UPON_DEATH ? "upon death or as needed" : + clipitem.autopurge == CLIPITEM_AUTOPURGE_UPON_CLOCK ? "timeout or as needed" : + clipitem.autopurge == CLIPITEM_AUTOPURGE_UPON_DEATH_OR_CLOCK ? "upon death, timeout or as needed" : + "unrecognised rule, something is wrong here!"); + iprintf(" client: %" PRIu32 ":%" PRIu32, + (uint32_t)(clipitem.client >> 32), + (uint32_t)(clipitem.client)); + if (clipitem.autopurge & CLIPITEM_AUTOPURGE_UPON_CLOCK) + iprintf(" timeout: %ji.%09li", + (intmax_t)(clipitem.dethklok.tv_sec), + (long)(clipitem.dethklok.tv_nsec)); + iprintf(" butes: %zu", clipitem.length); + iprintf(" content (possibily truncated): %.*s", + (int)strnlen(clipitem.content, clipitem.length > 50 ? (size_t)50 : clipitem.length), + clipitem.content); + } + } +} + diff --git a/src/mds-echo.c b/src/mds-echo.c index dbd8a81..6baf8a8 100644 --- a/src/mds-echo.c +++ b/src/mds-echo.c @@ -361,3 +361,19 @@ int full_send(const char* message, size_t length) return -1; } + +/** + * This function is called when a signal that + * signals that the system to dump state information + * and statistics has been received + * + * @param signo The signal that has been received + */ +void received_info(int signo) +{ + (void) signo; + iprintf("next message ID: %" PRIu32, message_id); + iprintf("connected: %s", connected ? "yes" : "no"); + iprintf("echo buffer size: %zu bytes", echo_buffer_size); +} + diff --git a/src/mds-kkbd.c b/src/mds-kkbd.c index 24eb4d2..01e98f1 100644 --- a/src/mds-kkbd.c +++ b/src/mds-kkbd.c @@ -1505,3 +1505,30 @@ void shrink_map(void) } } +/** + * This function is called when a signal that + * signals that the system to dump state information + * and statistics has been received + * + * @param signo The signal that has been received + */ +void received_info(int signo) +{ + size_t i; + (void) signo; + iprintf("next message ID: %" PRIu32, message_id); + iprintf("connected: %s", connected ? "yes" : "no"); + iprintf("LED FD: %i", ledfd); + iprintf("saved LED:s: %i", saved_leds); + iprintf("scancode buffer: %i, %i, %i", scancode_buf[0], scancode_buf[1], scancode_buf[2]); + iprintf("scancode buffer pointer: %i", scancode_ptr); + iprintf("saved keyboard mode: %i", saved_kbd_mode); + iprintf("send buffer size: %zu bytes", send_buffer_size); + iprintf("keyboard thread started: %s", connected ? "yes" : "no"); + iprintf("keycode remapping tabel size: %zu", mapping_size); + iprint("keycode remapping tabel:"); + for (i = 0; i < mapping_size; i++) + if ((int)i != mapping[i]) + iprintf(" %zu -> %i", i, mapping[i]); +} + |