From patchwork Thu Sep 11 19:35:13 2008 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: MARS: Fix build warnings Date: Thu, 11 Sep 2008 09:35:13 -0000 From: Yuji Mano X-Patchwork-Id: 240 Message-Id: <48C972F1.9030003@am.sony.com> To: CBE Development This patch fixes some build warnings. Signed-off-by: Yuji Mano Acked-by: Kazunori Asayama --- a/src/host/lib/mars_task.c +++ b/src/host/lib/mars_task.c @@ -61,6 +61,7 @@ int mars_task_initialize(struct mars_con int ret; struct mars_task_context *task; + struct mars_workload_context *workload; Elf32_Ehdr *ehdr = (Elf32_Ehdr *)elf_image; Elf32_Phdr *phdr = (Elf32_Phdr *)((void *)ehdr + ehdr->e_phoff); @@ -78,10 +79,12 @@ int mars_task_initialize(struct mars_con /* begin process to add the task to the workload queue */ ret = workload_queue_add_begin(mars->workload_queue, &id->workload_id, - MARS_WORKLOAD_TYPE_TASK, - (struct mars_workload_context **)&task); + MARS_WORKLOAD_TYPE_TASK, &workload); MARS_CHECK_RET(ret == MARS_SUCCESS, ret); + /* cast workload context to task context */ + task = (struct mars_task_context *)workload; + /* initialize task specific id */ memcpy(&task->id, id, sizeof(struct mars_task_id)); @@ -129,13 +132,17 @@ int mars_task_finalize(struct mars_task_ int ret; struct mars_task_context *task; + struct mars_workload_context *workload; struct mars_context *mars = (void *)(uintptr_t)id->mars_context_ea; /* begin process to remove the task from the workload queue */ - ret = workload_queue_remove_begin(mars->workload_queue, id->workload_id, - (struct mars_workload_context **)&task); + ret = workload_queue_remove_begin(mars->workload_queue, + id->workload_id, &workload); MARS_CHECK_RET(ret == MARS_SUCCESS, ret); + /* cast workload context to task context */ + task = (struct mars_task_context *)workload; + /* free the allocated task context area if it has one */ if (task->context_save_size) free((void *)(uintptr_t)task->context_save_area); @@ -158,14 +165,17 @@ int mars_task_schedule(struct mars_task_ int ret; struct mars_task_context *task; + struct mars_workload_context *workload; struct mars_context *mars = (void *)(uintptr_t)id->mars_context_ea; /* begin process to schedule the workload in the workload queue */ ret = workload_queue_schedule_begin(mars->workload_queue, - id->workload_id, priority, - (struct mars_workload_context **)&task); + id->workload_id, priority, &workload); MARS_CHECK_RET(ret == MARS_SUCCESS, ret); + /* cast workload context to task context */ + task = (struct mars_task_context *)workload; + /* initialize task specific context variables */ task->stack = 0; if (args) @@ -189,13 +199,17 @@ int mars_task_wait(struct mars_task_id * int ret; struct mars_task_context *task; + struct mars_workload_context *workload; struct mars_context *mars = (void *)(uintptr_t)id->mars_context_ea; /* blocking wait for workload completion */ ret = workload_queue_wait(mars->workload_queue, id->workload_id, - (struct mars_workload_context **)&task); + &workload); MARS_CHECK_RET(ret == MARS_SUCCESS, ret); + /* cast workload context to task context */ + task = (struct mars_task_context *)workload; + /* exit_code requested so return it to caller */ if (exit_code) *exit_code = task->exit_code; @@ -211,13 +225,17 @@ int mars_task_try_wait(struct mars_task_ int ret; struct mars_task_context *task; + struct mars_workload_context *workload; struct mars_context *mars = (void *)(uintptr_t)id->mars_context_ea; /* non-blocking wait for workload completion */ ret = workload_queue_try_wait(mars->workload_queue, id->workload_id, - (struct mars_workload_context **)&task); + &workload); MARS_CHECK_RET(ret == MARS_SUCCESS, ret); + /* cast workload context to task context */ + task = (struct mars_task_context *)workload; + /* exit_code requested so return it to caller */ if (exit_code) *exit_code = task->exit_code; --- a/src/host/lib/mars_workload_queue.c +++ b/src/host/lib/mars_workload_queue.c @@ -41,6 +41,7 @@ #include "mars/mars_workload_queue.h" #include "mars/mars_kernel_types.h" +#include "mars/mars_mutex.h" #include "mars/mars_error.h" #include "mars/mars_debug.h" --- a/src/mpu/kernel/mars_kernel_task.c +++ b/src/mpu/kernel/mars_kernel_task.c @@ -64,6 +64,8 @@ void task_exec(struct mars_task_context void task_exit(struct mars_task_context *task) { + (void)task; + MARS_ASSERT(task); }