From c74983e8b480f7bf770e78a5e16bf381c219f570 Mon Sep 17 00:00:00 2001 From: Andrew Boie Date: Fri, 6 Oct 2017 12:53:55 -0700 Subject: [PATCH] kernel: remove some kernel objects from tracking These are removed as the APIs that use them are not suitable for exporting to userspace. - Kernel workqueues run in supervisor mode, so it would not be appropriate to allow user threads to submit work to them. A future enhancement may extend or introduce parallel API where the workqueue threads may run in user mode (or leave as an exercise to the user). - Kernel slabs store private bookkeeping data inside the user-accessible slab buffers themselves. Alternate APIs are planned here for managing slabs of kernel objects, implemented within the runtime library and not the kernel. Signed-off-by: Andrew Boie --- include/kernel.h | 4 ---- kernel/userspace.c | 8 -------- scripts/gen_kobject_list.py | 4 ---- 3 files changed, 16 deletions(-) diff --git a/include/kernel.h b/include/kernel.h index 786fd81ed04..d404d1f5d32 100644 --- a/include/kernel.h +++ b/include/kernel.h @@ -133,8 +133,6 @@ struct k_mem_partition; enum k_objects { /* Core kernel objects */ K_OBJ_ALERT, - K_OBJ_DELAYED_WORK, - K_OBJ_MEM_SLAB, K_OBJ_MSGQ, K_OBJ_MUTEX, K_OBJ_PIPE, @@ -142,8 +140,6 @@ enum k_objects { K_OBJ_STACK, K_OBJ_THREAD, K_OBJ_TIMER, - K_OBJ_WORK, - K_OBJ_WORK_Q, /* Driver subsystems */ K_OBJ_DRIVER_ADC, diff --git a/kernel/userspace.c b/kernel/userspace.c index a9ac39d15ee..f3dc263528c 100644 --- a/kernel/userspace.c +++ b/kernel/userspace.c @@ -36,10 +36,6 @@ const char *otype_to_str(enum k_objects otype) /* Core kernel objects */ case K_OBJ_ALERT: return "k_alert"; - case K_OBJ_DELAYED_WORK: - return "k_delayed_work"; - case K_OBJ_MEM_SLAB: - return "k_mem_slab"; case K_OBJ_MSGQ: return "k_msgq"; case K_OBJ_MUTEX: @@ -54,10 +50,6 @@ const char *otype_to_str(enum k_objects otype) return "k_thread"; case K_OBJ_TIMER: return "k_timer"; - case K_OBJ_WORK: - return "k_work"; - case K_OBJ_WORK_Q: - return "k_work_q"; /* Driver subsystems */ case K_OBJ_DRIVER_ADC: diff --git a/scripts/gen_kobject_list.py b/scripts/gen_kobject_list.py index 4d213b962ca..7fac22ecbe2 100755 --- a/scripts/gen_kobject_list.py +++ b/scripts/gen_kobject_list.py @@ -22,8 +22,6 @@ if LooseVersion(elftools.__version__) < LooseVersion('0.24'): kobjects = [ "k_alert", - "k_delayed_work", - "k_mem_slab", "k_msgq", "k_mutex", "k_pipe", @@ -31,8 +29,6 @@ kobjects = [ "k_stack", "k_thread", "k_timer", - "k_work", - "k_work_q", "device" ]