* Added a mechanism to retrieve a BMessage with eventual error descriptions
for _kern_load_image(). * Added KMessage to the runtime_loader (a bit hacky, though) - it will use it to deliver the above mentioned functionality. * load_dependencies() did return the wrong status code in case a library was missing; now it returns B_MISSING_LIBRARY. * load_dependencies() will now try to load all dependencies when a report message is requested; therefore, all missing libraries are listed. * Renamed uspace_program_args to user_space_program_args. * The kernel filled in various members of the user_space_program_args structure unsafely, ie. was not using user_memcpy(). * Renamed some local variables in team.c to better fit our style guide (ie. uargs to userArgs). * Changed Tracker to use the new _kern_load_image() variant on Haiku to retrieve and report all missing libraries. This fixes bug #1324. * Adapted kernel_cpp.cpp to the runtime loader as well; the latter will now compile with _LOADER_MODE defined. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21715 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2006, Axel Dörfler, [email protected].
|
||||
* Copyright 2003-2007, Axel Dörfler, [email protected].
|
||||
* Distributed under the terms of the MIT License.
|
||||
*
|
||||
* Copyright 2002, Manuel J. Petit. All rights reserved.
|
||||
@@ -15,13 +15,15 @@
|
||||
|
||||
#define MAGIC_APP_NAME "_APP_"
|
||||
|
||||
struct uspace_program_args {
|
||||
char program_name[B_OS_NAME_LENGTH];
|
||||
char program_path[B_PATH_NAME_LENGTH];
|
||||
int argc;
|
||||
int envc;
|
||||
char **argv;
|
||||
char **envp;
|
||||
struct user_space_program_args {
|
||||
char program_name[B_OS_NAME_LENGTH];
|
||||
char program_path[B_PATH_NAME_LENGTH];
|
||||
port_id error_port;
|
||||
uint32 error_token;
|
||||
int arg_count;
|
||||
int env_count;
|
||||
char **args;
|
||||
char **env;
|
||||
};
|
||||
|
||||
struct rld_export {
|
||||
@@ -37,7 +39,7 @@ struct rld_export {
|
||||
status_t (*get_next_image_dependency)(image_id id, uint32 *cookie,
|
||||
const char **_name);
|
||||
|
||||
const struct uspace_program_args *program_args;
|
||||
const struct user_space_program_args *program_args;
|
||||
};
|
||||
|
||||
extern struct rld_export *__gRuntimeLoader;
|
||||
|
||||
Reference in New Issue
Block a user