From: Mateusz Majewski Date: Wed, 7 Sep 2022 11:17:29 +0000 (+0200) Subject: zlogger: add clear ioctl X-Git-Tag: accepted/tizen/unified/20220921.022911~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b7db92bffebd682d5956e99689b07f18f91850a7;p=platform%2Fkernel%2Flinux-tizen-modules-source.git zlogger: add clear ioctl Change-Id: I44590f2cb68d6cb26c13ad56b88d1c202abf2ae2 Signed-off-by: Mateusz Majewski --- diff --git a/include/uapi/linux/zlogger.h b/include/uapi/linux/zlogger.h index 5456cbf..8fb32ce 100644 --- a/include/uapi/linux/zlogger.h +++ b/include/uapi/linux/zlogger.h @@ -35,6 +35,7 @@ #define ZLOGGER_MSG_MAX (140) #define ZLOGGER_IOCTL_COMMAND_ALLOC (20745321) +#define ZLOGGER_IOCTL_COMMAND_CLEAR (20745322) #define ZLOGGER_IOCTL_COMMAND_SET_DEFAULT_PRIORITY _IOW('a', 'a', uint32_t) #define ZLOGGER_IOCTL_COMMAND_SET_DEFAULT_TAG _IOW('a', 'b', char* ) diff --git a/kernel/zlogger/zlogger.c b/kernel/zlogger/zlogger.c index ea6c99b..003e032 100644 --- a/kernel/zlogger/zlogger.c +++ b/kernel/zlogger/zlogger.c @@ -622,6 +622,30 @@ static long zlogger_set_default_tag(struct file *filp, unsigned long arg) return 0; } +static long zlogger_clear(void) +{ + int i; + struct thread_table_field *ptr = NULL; + + mutex_lock(&g_block_mutex); + + for (i = 1; i <= ZLOGGER_BLOCK_COUNT; i++) { + struct zlogger_block *block = get_block(i); + + memset(&block->head, 0, sizeof(block->head)); + } + + hash_for_each(g_thread_table->data, i, ptr, next) { + if (ptr->blk != 0) { + queue_push(&g_free_q, ptr->blk); + ptr->blk = 0; + } + } + + mutex_unlock(&g_block_mutex); + return 0; +} + static long zlogger_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) { switch (cmd) { @@ -629,6 +653,10 @@ static long zlogger_ioctl(struct file *filp, unsigned int cmd, unsigned long arg return alloc_block_for_thread(false); break; + case ZLOGGER_IOCTL_COMMAND_CLEAR: + return zlogger_clear(); + break; + case ZLOGGER_IOCTL_COMMAND_SET_DEFAULT_PRIORITY: return zlogger_update_prio(filp, arg); break;