YAHAL
Yet Another Hardware Abstraction Library
Loading...
Searching...
No Matches
task Class Reference
Inheritance diagram for task:
task_idle task_timer task_monitor

Public Types

enum  state_t : uint8_t { READY = 0 , SLEEPING = 1 , SUSPENDED = 2 , BLOCKED = 3 }
 

Public Member Functions

 task (std::function< void()> f, const char *n, uint16_t stack_size=DEFAULT_STACK_SIZE)
 
 task (const task &)=delete
 
taskoperator= (const task &)=delete
 
void sign_up (core_t=core_t::CURRENT_CORE, uint16_t priority=DEFAULT_PRIORITY, bool priv=false)
 
void stop ()
 
void suspend ()
 
void resume ()
 
void block (lock_base_interface *lbi)
 
void join () const
 
const char * getName () const
 
uint16_t getPriority () const
 
void setPriority (uint16_t p)
 
state_t getState () const
 
uint32_t getMillisRun () const
 
uint16_t getStackSize () const
 
bool isLinkedIn () const
 
uint16_t getUsedStack ()
 
uint32_t getDeltaTicks ()
 
bool isPrivileged () const
 
bool isUsingFloat () const
 

Static Public Member Functions

static const char * state_to_str (state_t state)
 
static void sleep_ms (uint32_t ms)
 
static void start_scheduler ()
 
static void yield ()
 
static void cpu_sleep ()
 
static void enterCritical ()
 
static void leaveCritical ()
 
static uint64_t millis ()
 
static bool is_irq_context ()
 
static bool multitasking_running ()
 
static int8_t get_core ()
 
static void _scheduler ()
 
static void _tick_handler ()
 
static taskcurrentTask ()
 
static void _switchToHead ()
 
static void _switchToNext ()
 
static uint8_t * _getStackBase ()
 
static uint8_t * _getStackPtr ()
 
static void _setStackPtr (uint8_t *s)
 

Protected Member Functions

 task (const char *n, uint16_t stack_size=DEFAULT_STACK_SIZE)
 
virtual void run ()
 

Friends

class circular_list< task >
 
class task_monitor
 

Detailed Description

Definition at line 39 of file task.h.

Member Enumeration Documentation

◆ state_t

enum task::state_t : uint8_t

Definition at line 65 of file task.h.

Constructor & Destructor Documentation

◆ task() [1/2]

task::task ( std::function< void()> f,
const char * n,
uint16_t stack_size = DEFAULT_STACK_SIZE )

Definition at line 29 of file task.cpp.

◆ ~task()

task::~task ( )
virtual

Definition at line 34 of file task.cpp.

◆ task() [2/2]

task::task ( const char * n,
uint16_t stack_size = DEFAULT_STACK_SIZE )
explicitprotected

Definition at line 40 of file task.cpp.

Member Function Documentation

◆ _getStackBase()

static uint8_t * task::_getStackBase ( )
inlinestatic

Definition at line 219 of file task.h.

◆ _getStackPtr()

static uint8_t * task::_getStackPtr ( )
inlinestatic

Definition at line 223 of file task.h.

◆ _scheduler()

void task::_scheduler ( )
static

Definition at line 163 of file task.cpp.

◆ _setStackPtr()

static void task::_setStackPtr ( uint8_t * s)
inlinestatic

Definition at line 227 of file task.h.

◆ _switchToHead()

static void task::_switchToHead ( )
inlinestatic

Definition at line 211 of file task.h.

◆ _switchToNext()

static void task::_switchToNext ( )
inlinestatic

Definition at line 215 of file task.h.

◆ _tick_handler()

void task::_tick_handler ( )
static

Definition at line 205 of file task.cpp.

◆ block()

void task::block ( lock_base_interface * lbi)

Definition at line 128 of file task.cpp.

◆ cpu_sleep()

void task::cpu_sleep ( )
static

Definition at line 76 of file task_msp432.cpp.

◆ currentTask()

static task * task::currentTask ( )
inlinestatic

Definition at line 207 of file task.h.

◆ enterCritical()

void task::enterCritical ( )
static

Definition at line 80 of file task_msp432.cpp.

◆ get_core()

int8_t task::get_core ( )
static

Definition at line 61 of file task_msp432.cpp.

◆ getDeltaTicks()

uint32_t task::getDeltaTicks ( )

Definition at line 145 of file task.cpp.

◆ getMillisRun()

uint32_t task::getMillisRun ( ) const
inline

Definition at line 134 of file task.h.

◆ getName()

const char * task::getName ( ) const
inline

Definition at line 130 of file task.h.

◆ getPriority()

uint16_t task::getPriority ( ) const
inline

Definition at line 131 of file task.h.

◆ getStackSize()

uint16_t task::getStackSize ( ) const
inline

Definition at line 135 of file task.h.

◆ getState()

state_t task::getState ( ) const
inline

Definition at line 133 of file task.h.

◆ getUsedStack()

uint16_t task::getUsedStack ( )

Definition at line 137 of file task.cpp.

◆ is_irq_context()

bool task::is_irq_context ( )
static

Definition at line 53 of file task_msp432.cpp.

◆ isLinkedIn()

bool task::isLinkedIn ( ) const
inline

Definition at line 136 of file task.h.

◆ isPrivileged()

bool task::isPrivileged ( ) const

Definition at line 93 of file task_msp432.cpp.

◆ isUsingFloat()

bool task::isUsingFloat ( ) const

Definition at line 103 of file task_msp432.cpp.

◆ join()

void task::join ( ) const

Definition at line 133 of file task.cpp.

◆ leaveCritical()

void task::leaveCritical ( )
static

Definition at line 87 of file task_msp432.cpp.

◆ millis()

uint64_t task::millis ( )
static

Definition at line 49 of file task_msp432.cpp.

◆ multitasking_running()

bool task::multitasking_running ( )
static

Definition at line 57 of file task_msp432.cpp.

◆ resume()

void task::resume ( )

Definition at line 124 of file task.cpp.

◆ run()

virtual void task::run ( )
inlineprotectedvirtual

Definition at line 57 of file task.h.

◆ setPriority()

void task::setPriority ( uint16_t p)
inline

Definition at line 132 of file task.h.

◆ sign_up()

void task::sign_up ( core_t c = core_t::CURRENT_CORE,
uint16_t priority = DEFAULT_PRIORITY,
bool priv = false )

Definition at line 62 of file task.cpp.

◆ sleep_ms()

void task::sleep_ms ( uint32_t ms)
static

Definition at line 102 of file task.cpp.

◆ start_scheduler()

void task::start_scheduler ( )
static

Definition at line 65 of file task_msp432.cpp.

◆ state_to_str()

static const char * task::state_to_str ( state_t state)
inlinestatic

Definition at line 72 of file task.h.

◆ stop()

void task::stop ( )

Definition at line 90 of file task.cpp.

◆ suspend()

void task::suspend ( )

Definition at line 120 of file task.cpp.

◆ yield()

void task::yield ( )
static

Definition at line 70 of file task_msp432.cpp.

Friends And Related Symbol Documentation

◆ circular_list< task >

friend class circular_list< task >
friend

Definition at line 162 of file task.h.

◆ task_monitor

friend class task_monitor
friend

Definition at line 167 of file task.h.


The documentation for this class was generated from the following files: