mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2025-12-28 02:35:28 +00:00
They are designed to protect shared hardware resources (e.g. I2C controller). Please refrain using them as a general purpose synchronization primitive for the tasks to avoid unintended slippery effects (e.g. priority inversion), use the provided message-passing functions instead for that purpose. The mutex variable (ie the "struct mutex") should be initially filled with 0, but this is the default compiler behavior if you declare it as a global variable. Signed-off-by: Vincent Palatin <vpalatin@chromium.org> BUG=None TEST=make qemu-tests Change-Id: I328f7eadf5257560944dbbbeda0b99d5b24520e8
43 lines
1.2 KiB
C
43 lines
1.2 KiB
C
/* 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_MUTEX = 0x1e, /* signal mutex unlocking */
|
|
TASK_ID_TIMER = 0x1f, /* message from an expired timer */
|
|
TASK_ID_CURRENT = 0xfe, /* the currently running task */
|
|
TASK_ID_INVALID = 0xff /* unable to find the task */
|
|
};
|
|
#undef TASK
|
|
|
|
#endif /* __TASK_ID_H */
|