diff --git a/src/kernel/core/team.c b/src/kernel/core/team.c index b3ec4165fb..92a1d82763 100644 --- a/src/kernel/core/team.c +++ b/src/kernel/core/team.c @@ -3,9 +3,7 @@ /* ** 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. */ @@ -27,8 +25,8 @@ #include #include -#define TRACE_TEAM 0 -#if TRACE_TEAM +//#define TRACE_TEAM +#ifdef TRACE_TEAM # define TRACE(x) dprintf x #else # define TRACE(x) ; @@ -506,7 +504,7 @@ team_create_team2(void *args) t = thread_get_current_thread(); team = t->team; - dprintf("team_create_team2: entry thread %ld\n", t->id); + TRACE(("team_create_team2: entry thread %ld\n", t->id)); // create an initial primary stack region @@ -533,7 +531,9 @@ team_create_team2(void *args) uspa = (struct uspace_program_args *)(t->user_stack_base + STACK_SIZE + TLS_SIZE + ENV_SIZE); uargs = (char **)(uspa + 1); udest = (char *)(uargs + teamArgs->argc + 1); -// dprintf("addr: stack base=0x%x uargs = 0x%x udest=0x%x tot_top_size=%d \n\n",t->user_stack_base,uargs,udest,tot_top_size); + + TRACE(("addr: stack base = 0x%lx, uargs = %p, udest = %p, totalSize = %lu\n", + t->user_stack_base, uargs, udest, totalSize)); for (arg_cnt = 0; arg_cnt < teamArgs->argc; arg_cnt++) { uargs[arg_cnt] = udest; @@ -544,7 +544,9 @@ team_create_team2(void *args) team->user_env_base = t->user_stack_base + STACK_SIZE + TLS_SIZE; uenv = (char **)team->user_env_base; udest = (char *)team->user_env_base + ENV_SIZE - 1; -// dprintf("team_create_team2: envc: %d, envp: 0x%p\n", teamArgs->envc, (void *)teamArgs->envp); + + TRACE(("team_create_team2: envc: %d, envp: 0x%p\n", teamArgs->envc, (void *)teamArgs->envp)); + for (env_cnt = 0; env_cnt < teamArgs->envc; env_cnt++) { size_t length = strlen(teamArgs->envp[env_cnt]) + 1; udest -= length; @@ -566,7 +568,7 @@ team_create_team2(void *args) kfree_strings_array(teamArgs->envp, teamArgs->envc); path = teamArgs->path; - dprintf("team_create_team2: loading elf binary '%s'\n", path); + TRACE(("team_create_team2: loading elf binary '%s'\n", path)); err = elf_load_uspace("/boot/libexec/rld.so", team, 0, &entry); if (err < 0){ @@ -578,7 +580,7 @@ team_create_team2(void *args) free(teamArgs->path); free(teamArgs); - dprintf("team_create_team2: loaded elf. entry = 0x%lx\n", entry); + TRACE(("team_create_team2: loaded elf. entry = 0x%lx\n", entry)); team->state = TEAM_STATE_NORMAL; @@ -601,7 +603,8 @@ team_create_team(const char *path, const char *name, char **args, int argc, char // int sem_retcode; struct team_arg *teamArgs; - dprintf("team_create_team: entry '%s', name '%s' args = %p argc = %d\n", path, name, args, argc); + TRACE(("team_create_team: entry '%s', name '%s' args = %p argc = %d\n", + path, name, args, argc)); team = create_team_struct(name, false); if (team == NULL) @@ -854,7 +857,7 @@ sys_setenv(const char *name, const char *value, int overwrite) // ToDo: please put me out of the kernel into libroot.so! - dprintf("sys_setenv: entry (name=%s, value=%s)\n", name, value); + TRACE(("sys_setenv: entry (name=%s, value=%s)\n", name, value)); if (strlen(name) + strlen(value) + 1 >= SYS_THREAD_STRING_LENGTH_MAX) return -1; @@ -878,7 +881,8 @@ sys_setenv(const char *name, const char *value, int overwrite) if (!var_exists) var_pos = envc; - dprintf("sys_setenv: variable does%s exist\n", var_exists ? "" : " not"); + TRACE(("sys_setenv: variable does%s exist\n", var_exists ? "" : " not")); + if ((!var_exists) || (var_exists && overwrite)) { // XXX- make a better allocator if (var_exists) { @@ -911,7 +915,7 @@ sys_setenv(const char *name, const char *value, int overwrite) } } } - dprintf("sys_setenv: variable set.\n"); + TRACE(("sys_setenv: variable set.\n")); RELEASE_TEAM_LOCK(); restore_interrupts(state); diff --git a/src/kernel/core/thread.c b/src/kernel/core/thread.c index 5eee4c2848..a4277b0f1e 100644 --- a/src/kernel/core/thread.c +++ b/src/kernel/core/thread.c @@ -30,7 +30,7 @@ #include //#define TRACE_THREAD -#if TRACE_THREAD +#ifdef TRACE_THREAD # define TRACE(x) dprintf x #else # define TRACE(x) ; @@ -594,7 +594,7 @@ get_death_stack(void) bit >>= 1; } -// dprintf("get_death_stack: returning 0x%lx\n", death_stacks[i].address); + TRACE(("get_death_stack: returning 0x%lx\n", death_stacks[i].address)); return i; } @@ -603,7 +603,7 @@ get_death_stack(void) static void put_death_stack_and_reschedule(unsigned int index) { -// dprintf("put_death_stack...: passed %d\n", index); + TRACE(("put_death_stack...: passed %d\n", index)); if (index >= num_death_stacks) panic("put_death_stack: passed invalid stack index %d\n", index); @@ -662,11 +662,13 @@ thread_exit2(void *_args) TRACE(("thread_exit2, running on death stack 0x%lx\n", args.t->kernel_stack_base)); // delete the old kernel stack region - TRACE(("thread_exit2: deleting old kernel stack id 0x%x for thread 0x%x\n", args.old_kernel_stack, args.t->id)); + TRACE(("thread_exit2: deleting old kernel stack id 0x%lx for thread 0x%lx\n", + args.old_kernel_stack, args.t->id)); + delete_area(args.old_kernel_stack); // remove this thread from all of the global lists - TRACE(("thread_exit2: removing thread 0x%x from global lists\n", args.t->id)); + TRACE(("thread_exit2: removing thread 0x%lx from global lists\n", args.t->id)); disable_interrupts(); GRAB_TEAM_LOCK(); @@ -767,7 +769,7 @@ thread_exit(void) vm_aspace_swap(team_get_kernel_team()->kaspace); restore_interrupts(state); -// dprintf("thread_exit: thread 0x%x now a kernel thread!\n", t->id); + TRACE(("thread_exit: thread 0x%lx now a kernel thread!\n", t->id)); } // delete the team if we're its main thread @@ -868,10 +870,10 @@ thread_atkernel_entry(void) struct thread *t; bigtime_t now; -// dprintf("thread_atkernel_entry: entry thread 0x%x\n", t->id); - t = thread_get_current_thread(); + TRACE(("thread_atkernel_entry: entry thread 0x%lx\n", t->id)); + state = disable_interrupts(); // track user time @@ -896,7 +898,7 @@ thread_atkernel_exit(void) struct thread *t; bigtime_t now; -// dprintf("thread_atkernel_exit: entry\n"); + TRACE(("thread_atkernel_exit: entry\n")); t = thread_get_current_thread(); @@ -994,7 +996,7 @@ thread_init(kernel_args *ka) struct thread *t; unsigned int i; -// dprintf("thread_init: entry\n"); + TRACE(("thread_init: entry\n")); // create the thread hash table thread_hash = hash_init(15, (addr)&t->all_next - (addr)t, @@ -1476,8 +1478,8 @@ wait_for_thread(thread_id id, status_t *_returnCode) if (_returnCode) { t = thread_get_current_thread(); - dprintf("wait_for_thread: thread %ld got return code 0x%x\n", - t->id, t->sem_deleted_retcode); + TRACE(("wait_for_thread: thread %ld got return code 0x%x\n", + t->id, t->sem_deleted_retcode)); *_returnCode = t->sem_deleted_retcode; } }