versadac
1
versadac - Scalable Recorder Firmware
Main Page
Classes
Files
File List
File Members
core
utils
ostask.h
1
/*****************************************************************************
2
FILE : S C O S T A S K .H
3
AUTHOR : Dave Cozens
4
SYSTEM : Gnu C++
5
DESCRIPTION : SCOS Task class
6
*****************************************************************************/
7
8
#ifndef __SCOSTASK_H
9
#define __SCOSTASK_H
10
11
#include "priority.h"
12
13
#define MAX_NAME_LEN 20
14
#define DEFAULT_PRIORITY (FBEXEC_PRIORITY - 1)
15
16
class
OSRunnableTask
17
{
18
public
:
19
20
OSRunnableTask
(){m_bStop = 0;};
21
22
void
stop(){m_bStop = 1;};
23
24
/* Any class that wishes to be run as an independant task must derive from
25
this base class and implement the following method */
26
virtual
void
runTask() = 0;
27
28
protected
:
29
30
unsigned
char
m_bStop;
31
};
32
33
class
OSTask
34
{
35
public
:
36
37
OSTask
(
const
char
* z_name,
unsigned
short
z_priority,
unsigned
short
z_opt,
38
unsigned
short
z_stack,
OSRunnableTask
* z_task);
39
40
~
OSTask
();
41
42
/* sets the task active */
43
void
start();
44
45
/* vxWorks task entry point */
46
static
void
taskEntry(
OSTask
*taskToStart);
47
48
unsigned
char
completed(){
return
m_bCompleted;};
49
int
get_taskid() {
return
m_tid;};
50
51
private
:
52
53
unsigned
char
m_bCompleted;
/* True if the runnable task has stopped */
54
int
m_opt;
/* vxWorks task options */
55
int
m_tid;
/* vxWorks task id */
56
unsigned
int
m_arg;
/* vxWorks task argument */
57
unsigned
int
m_priority;
/* vxWorks priority 1-255 */
58
unsigned
int
m_stack;
/* vxWorks stack (in bytes) */
59
char
m_name[MAX_NAME_LEN+1];
/* vxWorks task name */
60
OSRunnableTask
*m_pRunnableTask;
/* The task to be run, could be any class type
61
but must have runnable base class */
62
};
63
64
#endif
OSRunnableTask
Definition:
ostask.h:16
OSTask
Definition:
ostask.h:33
Generated on Wed Aug 19 2020 10:33:45 for versadac by
1.8.9.1