lwp_pid.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /*
  2. * Copyright (c) 2006-2020, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2020-02-23 Jesven first version.
  9. */
  10. #ifndef LWP_PID_H__
  11. #define LWP_PID_H__
  12. #include "lwp.h"
  13. #ifdef __cplusplus
  14. extern "C" {
  15. #endif
  16. struct rt_lwp;
  17. struct lwp_avl_struct *lwp_get_pid_ary(void);
  18. struct rt_lwp* lwp_new(void);
  19. void lwp_free(struct rt_lwp* lwp);
  20. int lwp_ref_inc(struct rt_lwp *lwp);
  21. int lwp_ref_dec(struct rt_lwp *lwp);
  22. struct rt_lwp* lwp_from_pid(pid_t pid);
  23. pid_t lwp_to_pid(struct rt_lwp* lwp);
  24. pid_t lwp_name2pid(const char* name);
  25. char* lwp_pid2name(int32_t pid);
  26. int lwp_getpid(void);
  27. pid_t waitpid(pid_t pid, int *status, int options);
  28. long list_process(void);
  29. void lwp_user_object_lock_init(struct rt_lwp *lwp);
  30. void lwp_user_object_lock_destroy(struct rt_lwp *lwp);
  31. void lwp_user_object_lock(struct rt_lwp *lwp);
  32. void lwp_user_object_unlock(struct rt_lwp *lwp);
  33. int lwp_user_object_add(struct rt_lwp *lwp, rt_object_t object);
  34. rt_err_t lwp_user_object_delete(struct rt_lwp *lwp, rt_object_t object);
  35. void lwp_user_object_clear(struct rt_lwp *lwp);
  36. void lwp_user_object_dup(struct rt_lwp *dst_lwp, struct rt_lwp *src_lwp);
  37. #ifdef __cplusplus
  38. }
  39. #endif
  40. #endif