kernel/team: Allow retrieving more attributes
- Stored the additional start time of each team, expressed by milliseconds since boot. - Added more fields to the `team_info` structure. These field include those provided by the `get_extended_team_info` syscall as well as the newly introduced `start_time`. - Extended the `_kern_get_team_info` system call to receive an additional `size_t` argument. If this size is smaller than or equal to the size of the old `team_info` structure, the newly added attributes will not be retrieved. Change-Id: I22ee6b91ad2ee3b66a7f770036c79a718c5f115c Reviewed-on: https://review.haiku-os.org/c/haiku/+/6390 Tested-by: Commit checker robot <[email protected]> Reviewed-by: Jessica Hamilton <[email protected]>
This commit is contained in:
committed by
Jessica Hamilton
parent
fe3f797dc8
commit
b809279cd8
@@ -247,6 +247,15 @@ typedef struct {
|
||||
char args[64];
|
||||
uid_t uid;
|
||||
gid_t gid;
|
||||
|
||||
/* Haiku R1 extensions */
|
||||
uid_t real_uid;
|
||||
gid_t real_gid;
|
||||
pid_t group_id;
|
||||
pid_t session_id;
|
||||
team_id parent;
|
||||
char name[B_OS_NAME_LENGTH];
|
||||
bigtime_t start_time;
|
||||
} team_info;
|
||||
|
||||
#define B_CURRENT_TEAM 0
|
||||
|
||||
@@ -80,8 +80,8 @@ pid_t _user_process_info(pid_t process, int32 which);
|
||||
pid_t _user_setpgid(pid_t process, pid_t group);
|
||||
pid_t _user_setsid(void);
|
||||
|
||||
status_t _user_get_team_info(team_id id, team_info *info);
|
||||
status_t _user_get_next_team_info(int32 *cookie, team_info *info);
|
||||
status_t _user_get_team_info(team_id id, team_info *info, size_t size);
|
||||
status_t _user_get_next_team_info(int32 *cookie, team_info *info, size_t size);
|
||||
status_t _user_get_team_usage_info(team_id team, int32 who,
|
||||
team_usage_info *info, size_t size);
|
||||
status_t _user_get_extended_team_info(team_id teamID, uint32 flags,
|
||||
|
||||
@@ -275,6 +275,8 @@ struct Team : TeamThreadIteratorEntry<team_id>, KernelReferenceable,
|
||||
|
||||
struct team_debug_info debug_info;
|
||||
|
||||
bigtime_t start_time;
|
||||
|
||||
// protected by time_lock
|
||||
bigtime_t dead_threads_kernel_time;
|
||||
bigtime_t dead_threads_user_time;
|
||||
|
||||
@@ -180,8 +180,10 @@ extern int64 _kern_restore_signal_frame(
|
||||
extern status_t _kern_get_thread_info(thread_id id, thread_info *info);
|
||||
extern status_t _kern_get_next_thread_info(team_id team, int32 *cookie,
|
||||
thread_info *info);
|
||||
extern status_t _kern_get_team_info(team_id id, team_info *info);
|
||||
extern status_t _kern_get_next_team_info(int32 *cookie, team_info *info);
|
||||
extern status_t _kern_get_team_info(team_id id, team_info *info,
|
||||
size_t size);
|
||||
extern status_t _kern_get_next_team_info(int32 *cookie, team_info *info,
|
||||
size_t size);
|
||||
extern status_t _kern_get_team_usage_info(team_id team, int32 who,
|
||||
team_usage_info *info, size_t size);
|
||||
extern status_t _kern_get_extended_team_info(team_id teamID, uint32 flags,
|
||||
|
||||
Reference in New Issue
Block a user