Open songzeceng opened 4 years ago
struct rt_task
is defined by Litmus in include/litmus/rt_param.h
. I can't recall what the split
field was for. I can't find it it in any of the versions of Litmus that I have. What happens if you simply comment it out?
Thanks for help.I comment out every nonexist rt_task field used in tools/pgmrt.cpp,but I still got some new errors as below showing undefined fields in some macro definition
tools/pgmrt.cpp:74:17: error: ‘enter_pgm_wait’ was not declared in this scope
enter_pgm_wait(); \
^
tools/pgmrt.cpp:480:4: note: in expansion of macro ‘litmus_pgm_wait’
litmus_pgm_wait(ret = pgm_wait(cfg.node););
^
tools/pgmrt.cpp:76:16: error: ‘exit_pgm_wait’ was not declared in this scope
exit_pgm_wait();
^
tools/pgmrt.cpp:480:4: note: in expansion of macro ‘litmus_pgm_wait’
litmus_pgm_wait(ret = pgm_wait(cfg.node););
^
tools/pgmrt.cpp:80:17: error: ‘enter_pgm_send’ was not declared in this scope
enter_pgm_send(); \
^
tools/pgmrt.cpp:505:5: note: in expansion of macro ‘litmus_pgm_complete’
litmus_pgm_complete(CheckError(pgm_complete(cfg.node)););
^
tools/pgmrt.cpp:82:16: error: ‘exit_pgm_send’ was not declared in this scope
exit_pgm_send();
I see the related codes in tools/pgmrt as following and macros like litmus_pgm_wait are used somwhere else in this file. So I don`t know how to handle it
#ifdef _USE_LITMUS
// waiting task's priority is boosted as needed
#define litmus_pgm_wait(statements) \
enter_pgm_wait(); \
statements \
exit_pgm_wait();
// signalling task's priority is unconditionally boosted,
// so just enter a non-preemptive section.
#define litmus_pgm_complete(statements) \
enter_pgm_send(); \
statements \
exit_pgm_send();
I solved it by comment all the codes related to such macros. They are
// litmus_pgm_complete(CheckError(pgm_complete(cfg.node)););
and
// litmus_pgm_wait(ret = pgm_wait(cfg.node););
with macro definition
/*#define litmus_pgm_wait(statements) \
enter_pgm_wait(); \
statements \
exit_pgm_wait();*/
// signalling task's priority is unconditionally boosted,
// so just enter a non-preemptive section.
/*#define litmus_pgm_complete(statements) \
enter_pgm_send(); \
statements \
exit_pgm_send();*/
I am worried the impact on the functionality but at least I get my compliation passed. Maybe you should update the source code of pgm
I tried to compile pgm with litmusRT(linux-4.9-litmus),but I got lots of errors as following:
I cannot find member named split in the source code of litmusRT of branch linux-4.9-litmus or master-before-2013.1or master-before-2014.2...
Besides nothrow in the code below is of no use with build error, so I comment it out.