userspace: add _k_object_uninit()
API to assist with re-using objects, such as terminated threads or kernel objects returned to a pool. Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
This commit is contained in:
parent
f74190f829
commit
4a9a4240c6
2 changed files with 23 additions and 0 deletions
|
@ -105,6 +105,16 @@ extern void _thread_perms_clear(struct _k_object *ko, struct k_thread *thread);
|
||||||
*/
|
*/
|
||||||
extern void _thread_perms_all_set(struct _k_object *ko);
|
extern void _thread_perms_all_set(struct _k_object *ko);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clear initialization state of a kernel object
|
||||||
|
*
|
||||||
|
* Intended for thread objects upon thread exit, or for other kernel objects
|
||||||
|
* that were released back to an object pool.
|
||||||
|
*
|
||||||
|
* @param object Address of the kernel object
|
||||||
|
*/
|
||||||
|
void _k_object_uninit(void *obj);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Runtime expression check for system call arguments
|
* @brief Runtime expression check for system call arguments
|
||||||
*
|
*
|
||||||
|
|
|
@ -260,6 +260,19 @@ void _k_object_init(void *object)
|
||||||
ko->flags |= K_OBJ_FLAG_INITIALIZED;
|
ko->flags |= K_OBJ_FLAG_INITIALIZED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void _k_object_uninit(void *object)
|
||||||
|
{
|
||||||
|
struct _k_object *ko;
|
||||||
|
|
||||||
|
/* See comments in _k_object_init() */
|
||||||
|
ko = _k_object_find(object);
|
||||||
|
if (!ko) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ko->flags &= ~K_OBJ_FLAG_INITIALIZED;
|
||||||
|
}
|
||||||
|
|
||||||
static u32_t _handler_bad_syscall(u32_t bad_id, u32_t arg2, u32_t arg3,
|
static u32_t _handler_bad_syscall(u32_t bad_id, u32_t arg2, u32_t arg3,
|
||||||
u32_t arg4, u32_t arg5, u32_t arg6, void *ssf)
|
u32_t arg4, u32_t arg5, u32_t arg6, void *ssf)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue