| /* Copyright (c) 2011 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. |
| */ |
| |
| /* define the task identifier of all compiled tasks */ |
| |
| #ifndef __TASK_ID_H |
| #define __TASK_ID_H |
| |
| /* define the name of the header containing the list of tasks */ |
| #define STRINGIFY0(name) #name |
| #define STRINGIFY(name) STRINGIFY0(name) |
| #define TASK_LIST STRINGIFY(TASKFILE) |
| |
| /* Task identifier (8 bits) */ |
| typedef uint8_t task_id_t; |
| |
| /** |
| * enumerate all tasks in the priority order |
| * |
| * the identifier of a task can be retrieved using the following constant: |
| * TASK_ID_<taskname> where <taskname> is the first parameter passed to the |
| * TASK macro in the TASK_LIST file. |
| */ |
| #define TASK(n, r, d) TASK_ID_##n, |
| #include TASK_LIST |
| enum { |
| TASK_ID_IDLE, |
| /* CONFIG_TASK_LIST is a macro coming from the TASK_LIST file */ |
| CONFIG_TASK_LIST |
| /* Number of tasks */ |
| TASK_ID_COUNT, |
| /* Special task identifiers */ |
| TASK_ID_INVALID = 0xff /* unable to find the task */ |
| }; |
| #undef TASK |
| |
| #endif /* __TASK_ID_H */ |