2 * Copyright 2004-2011, Haiku Inc. All Rights Reserved.
3 * Distributed under the terms of the MIT License.
9 #include <thread_types.h>
13 #define TEAM_MONITOR '_Tm_'
14 #define TEAM_ADDED 0x01
15 #define TEAM_REMOVED 0x02
16 #define TEAM_EXEC 0x04
23 status_t
team_init(struct kernel_args
*args
);
24 status_t
wait_for_team(team_id id
, status_t
*returnCode
);
26 void team_remove_team(Team
*team
, pid_t
& _signalGroup
);
27 port_id
team_shutdown_team(Team
*team
);
28 void team_delete_team(Team
*team
, port_id debuggerPort
);
30 Team
*team_get_kernel_team(void);
31 team_id
team_get_kernel_team_id(void);
32 team_id
team_get_current_team_id(void);
33 status_t
team_get_address_space(team_id id
,
34 struct VMAddressSpace
**_addressSpace
);
35 char **user_team_get_arguments(void);
36 int user_team_get_arg_count(void);
37 struct job_control_entry
* team_get_death_entry(Team
*team
,
38 thread_id child
, bool* _deleteEntry
);
39 void team_init_exit_info_on_error(Team
* team
);
40 bool team_is_valid(team_id id
);
41 Team
*team_get_team_struct_locked(team_id id
);
42 int32
team_max_teams(void);
43 int32
team_used_teams(void);
45 thread_id
load_image_etc(int32 argCount
, const char* const* args
,
46 const char* const* env
, int32 priority
, team_id parentID
, uint32 flags
);
48 void team_set_job_control_state(Team
* team
, job_control_state newState
,
50 void team_set_controlling_tty(int32 index
);
51 int32
team_get_controlling_tty();
52 status_t
team_set_foreground_process_group(int32 ttyIndex
, pid_t processGroup
);
54 status_t
start_watching_team(team_id team
, void (*hook
)(team_id
, void *),
56 status_t
stop_watching_team(team_id team
, void (*hook
)(team_id
, void *),
59 struct user_thread
* team_allocate_user_thread(Team
* team
);
60 void team_free_user_thread(Team
* team
, struct user_thread
* userThread
);
62 bool team_associate_data(AssociatedData
* data
);
63 bool team_dissociate_data(AssociatedData
* data
);
66 thread_id
_user_load_image(const char* const* flatArgs
, size_t flatArgsSize
,
67 int32 argCount
, int32 envCount
, int32 priority
, uint32 flags
,
68 port_id errorPort
, uint32 errorToken
);
69 status_t
_user_wait_for_team(team_id id
, status_t
*_returnCode
);
70 void _user_exit_team(status_t returnValue
);
71 status_t
_user_kill_team(thread_id thread
);
72 pid_t
_user_wait_for_child(thread_id child
, uint32 flags
, siginfo_t
* info
,
73 team_usage_info
* usageInfo
);
74 status_t
_user_exec(const char *path
, const char* const* flatArgs
,
75 size_t flatArgsSize
, int32 argCount
, int32 envCount
, mode_t umask
);
76 thread_id
_user_fork(void);
77 team_id
_user_get_current_team(void);
78 pid_t
_user_process_info(pid_t process
, int32 which
);
79 pid_t
_user_setpgid(pid_t process
, pid_t group
);
80 pid_t
_user_setsid(void);
82 status_t
_user_get_team_info(team_id id
, team_info
*info
);
83 status_t
_user_get_next_team_info(int32
*cookie
, team_info
*info
);
84 status_t
_user_get_team_usage_info(team_id team
, int32 who
,
85 team_usage_info
*info
, size_t size
);
86 status_t
_user_get_extended_team_info(team_id teamID
, uint32 flags
,
87 void* buffer
, size_t size
, size_t* _sizeNeeded
);