* delete_owned_ports() no longer scans the whole port array for ports belonging

to the owning team.
* Instead, the team now maintains a list containing the ports it owns.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33771 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler
2009-10-26 13:34:43 +00:00
parent 07e9fd1d84
commit 86a999adfb
4 changed files with 60 additions and 46 deletions
+3 -6
View File
@@ -32,7 +32,7 @@ extern "C" {
#endif
status_t port_init(struct kernel_args *args);
int delete_owned_ports(team_id owner);
void delete_owned_ports(struct team* team);
int32 port_max_ports(void);
int32 port_used_ports(void);
@@ -41,11 +41,8 @@ status_t deselect_port(int32 object, struct select_info *info, bool kernel);
// currently private API
status_t writev_port_etc(port_id id, int32 msgCode, const iovec *msgVecs,
size_t vecCount, size_t bufferSize, uint32 flags,
bigtime_t timeout);
// temp: test
void port_test(void);
size_t vecCount, size_t bufferSize, uint32 flags,
bigtime_t timeout);
// user syscalls
port_id _user_create_port(int32 queueLength, const char *name);
+1
View File
@@ -194,6 +194,7 @@ struct team {
struct list image_list;
struct list watcher_list;
struct list sem_list;
struct list port_list;
struct arch_team arch_info;
addr_t user_data;