From 545ecbe86d5ba2c3ca5c07e18c2d3208d1eea11b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Tue, 30 Nov 2004 21:06:11 +0000 Subject: [PATCH] Extended the get_system_info() mechanism; it now gets info about threads/teams as well as architecture specific stuff. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10313 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- headers/private/kernel/arch/system_info.h | 25 +++++++++++++++++++++++ headers/private/kernel/system_info.h | 17 ++++++++++++--- headers/private/kernel/team.h | 10 +++++---- headers/private/kernel/thread.h | 15 ++++++++------ 4 files changed, 54 insertions(+), 13 deletions(-) create mode 100644 headers/private/kernel/arch/system_info.h diff --git a/headers/private/kernel/arch/system_info.h b/headers/private/kernel/arch/system_info.h new file mode 100644 index 0000000000..afd73c4b65 --- /dev/null +++ b/headers/private/kernel/arch/system_info.h @@ -0,0 +1,25 @@ +/* + * Copyright 2004, Axel Dörfler, axeld@pinc-software.de. All rights reserved. + * Distributed under the terms of the MIT License. + */ +#ifndef _KERNEL_ARCH_SYSTEM_INFO_H +#define _KERNEL_ARCH_SYSTEM_INFO_H + + +#include + +struct kernel_args; + + +#ifdef __cplusplus +extern "C" { +#endif + +status_t arch_system_info_init(struct kernel_args *args); +status_t arch_get_system_info(system_info *info, size_t size); + +#ifdef __cplusplus +} +#endif + +#endif /* _KRENEL_ARCH_SYSTEM_INFO_H */ diff --git a/headers/private/kernel/system_info.h b/headers/private/kernel/system_info.h index af32688899..b0b3fd464f 100644 --- a/headers/private/kernel/system_info.h +++ b/headers/private/kernel/system_info.h @@ -1,14 +1,25 @@ /* -** Copyright 2004, Axel Dörfler, axeld@pinc-software.de. All rights reserved. -** Distributed under the terms of the OpenBeOS License. -*/ + * Copyright 2004, Axel Dörfler, axeld@pinc-software.de. All rights reserved. + * Distributed under the terms of the MIT License. + */ #ifndef _KERNEL_SYSTEM_INFO_H #define _KERNEL_SYSTEM_INFO_H #include +struct kernel_args; + +#ifdef __cplusplus +extern "C" { +#endif + +extern status_t system_info_init(struct kernel_args *args); extern status_t _user_get_system_info(system_info *userInfo, size_t size); +#ifdef __cplusplus +} +#endif + #endif /* _KRENEL_SYSTEM_INFO_H */ diff --git a/headers/private/kernel/team.h b/headers/private/kernel/team.h index 1b96c6d7b9..f7b1cb1d02 100644 --- a/headers/private/kernel/team.h +++ b/headers/private/kernel/team.h @@ -1,7 +1,7 @@ /* -** Copyright 2004, The Haiku Team. All rights reserved. -** Distributed under the terms of the Haiku License. -*/ + * Copyright 2002-2004, Axel Dörfler, axeld@pinc-software.de. + * Distributed under the terms of the MIT License. + */ #ifndef _TEAM_H #define _TEAM_H @@ -14,7 +14,7 @@ extern "C" { #endif -int team_init(kernel_args *ka); +status_t team_init(kernel_args *args); team_id team_create_team(const char *path, const char *name, char **args, int argc, char **envp, int envc, int priority); status_t wait_for_team(team_id id, status_t *returnCode); @@ -29,6 +29,8 @@ char **user_team_get_arguments(void); int user_team_get_arg_count(void); bool team_is_valid(team_id id); struct team *team_get_team_struct_locked(team_id id); +int32 team_max_teams(void); +int32 team_used_teams(void); // used in syscalls.c thread_id _user_load_image(int32 argCount, const char **args, int32 envCount, const char **envp, int32 priority); diff --git a/headers/private/kernel/thread.h b/headers/private/kernel/thread.h index ff48475613..f8dc9e85b3 100755 --- a/headers/private/kernel/thread.h +++ b/headers/private/kernel/thread.h @@ -1,10 +1,10 @@ /* -** Copyright 2002-2004, The OpenBeOS Team. All rights reserved. -** Distributed under the terms of the OpenBeOS License. -** -** Copyright 2001-2002, Travis Geiselbrecht. All rights reserved. -** Distributed under the terms of the NewOS License. -*/ + * Copyright 2002-2004, Axel Dörfler, axeld@pinc-software.de. + * Distributed under the terms of the MIT License. + * + * Copyright 2001-2002, Travis Geiselbrecht. All rights reserved. + * Distributed under the terms of the NewOS License. + */ #ifndef _THREAD_H #define _THREAD_H @@ -37,6 +37,9 @@ status_t thread_init(kernel_args *ka); status_t thread_per_cpu_init(int32 cpu_num); void thread_exit(void); +int32 thread_max_threads(void); +int32 thread_used_threads(void); + #define thread_get_current_thread arch_thread_get_current_thread struct thread *thread_get_thread_struct(thread_id id);