2022-12-03 12:07:44 +08:00
|
|
|
/*
|
|
|
|
* Copyright (c) 2006-2020, RT-Thread Development Team
|
|
|
|
*
|
|
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
|
|
*
|
|
|
|
* Change Logs:
|
|
|
|
* Date Author Notes
|
|
|
|
* 2020-02-23 Jesven first version.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef LWP_PID_H__
|
|
|
|
#define LWP_PID_H__
|
|
|
|
|
2023-07-20 00:02:41 +08:00
|
|
|
#include "lwp.h"
|
|
|
|
|
2022-12-03 12:07:44 +08:00
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
2023-09-25 16:12:49 +08:00
|
|
|
#define LWP_CREATE_FLAG_NONE 0x0000
|
|
|
|
#define LWP_CREATE_FLAG_ALLOC_PID 0x0001 /* allocate pid on lwp object create */
|
|
|
|
|
2022-12-03 12:07:44 +08:00
|
|
|
struct rt_lwp;
|
|
|
|
|
|
|
|
struct lwp_avl_struct *lwp_get_pid_ary(void);
|
|
|
|
|
2023-09-25 16:12:49 +08:00
|
|
|
/* create a lwp object */
|
|
|
|
struct rt_lwp* lwp_create(rt_base_t flags);
|
|
|
|
|
2022-12-03 12:07:44 +08:00
|
|
|
void lwp_free(struct rt_lwp* lwp);
|
|
|
|
|
|
|
|
int lwp_ref_inc(struct rt_lwp *lwp);
|
|
|
|
int lwp_ref_dec(struct rt_lwp *lwp);
|
|
|
|
|
|
|
|
struct rt_lwp* lwp_from_pid(pid_t pid);
|
|
|
|
pid_t lwp_to_pid(struct rt_lwp* lwp);
|
|
|
|
|
|
|
|
pid_t lwp_name2pid(const char* name);
|
|
|
|
char* lwp_pid2name(int32_t pid);
|
|
|
|
|
|
|
|
int lwp_getpid(void);
|
|
|
|
|
|
|
|
pid_t waitpid(pid_t pid, int *status, int options);
|
|
|
|
long list_process(void);
|
|
|
|
|
|
|
|
void lwp_user_object_lock_init(struct rt_lwp *lwp);
|
|
|
|
void lwp_user_object_lock_destroy(struct rt_lwp *lwp);
|
|
|
|
void lwp_user_object_lock(struct rt_lwp *lwp);
|
|
|
|
void lwp_user_object_unlock(struct rt_lwp *lwp);
|
|
|
|
int lwp_user_object_add(struct rt_lwp *lwp, rt_object_t object);
|
|
|
|
rt_err_t lwp_user_object_delete(struct rt_lwp *lwp, rt_object_t object);
|
|
|
|
void lwp_user_object_clear(struct rt_lwp *lwp);
|
|
|
|
void lwp_user_object_dup(struct rt_lwp *dst_lwp, struct rt_lwp *src_lwp);
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif
|