44 lines
974 B
C
44 lines
974 B
C
|
/* Copyright 2017 The Chromium OS Authors. All rights reserved.
|
||
|
* Use of this source code is governed by a BSD-style license that can be
|
||
|
* found in the LICENSE file.
|
||
|
*
|
||
|
* The cmd_c_to_taskinfo will compile this file with different
|
||
|
* section definitions to export different tasklists.
|
||
|
*/
|
||
|
|
||
|
#include <stdint.h>
|
||
|
|
||
|
#include "config.h"
|
||
|
#include "task_id.h"
|
||
|
|
||
|
#ifdef SECTION_IS_RO
|
||
|
#define GET_TASKINFOS_FUNC get_ro_taskinfos
|
||
|
#elif defined(SECTION_IS_RW)
|
||
|
#define GET_TASKINFOS_FUNC get_rw_taskinfos
|
||
|
#else
|
||
|
#error "Current section (RO/RW) is not defined."
|
||
|
#endif
|
||
|
|
||
|
struct taskinfo {
|
||
|
char *name;
|
||
|
char *routine;
|
||
|
uint32_t stack_size;
|
||
|
};
|
||
|
|
||
|
#define TASK(n, r, d, s, ...) { \
|
||
|
.name = #n, \
|
||
|
.routine = #r, \
|
||
|
.stack_size = s, \
|
||
|
},
|
||
|
static const struct taskinfo taskinfos[] = {
|
||
|
CONFIG_TASK_LIST
|
||
|
};
|
||
|
#undef TASK
|
||
|
|
||
|
uint32_t GET_TASKINFOS_FUNC(const struct taskinfo **infos)
|
||
|
{
|
||
|
*infos = taskinfos;
|
||
|
/* Calculate the number of tasks */
|
||
|
return sizeof(taskinfos) / sizeof(*taskinfos);
|
||
|
}
|