Skip to content
Snippets Groups Projects
Commit e879d0f4 authored by Gregory Nutt's avatar Gregory Nutt
Browse files

Move scheduler instrumentation hooks out of sched.h (where they seem like...

Move scheduler instrumentation hooks out of sched.h (where they seem like application interfaces) and into nuttx/sched.h where it is clare that these are OS internal interfaces.
parent 56756009
No related branches found
No related tags found
No related merge requests found
arch @ ff28c33a
Subproject commit 57328005643fab97828d3deb4a1cd3db70d89b02
Subproject commit ff28c33a233e86ab8d96434dcd87ccd5402e505b
configs @ e147b03e
Subproject commit 0ef97e910a44060bd20b5e96517344a324e965c3
Subproject commit e147b03efbd424a972e1dd61707c6182b90174f7
......@@ -82,4 +82,3 @@ config SYSLOG_CONSOLE
output (syslog_putc). This is useful, for example, if the only console is a Telnet
console. Then in that case, console output from non-Telnet threads will go to
the syslog output.
......@@ -64,11 +64,6 @@ namespace std
using ::sched_lock;
using ::sched_unlock;
using ::sched_lockcount;
#ifdef CONFIG_SCHED_INSTRUMENTATION
using ::sched_note_start;
using ::sched_note_stop;
using ::sched_note_switch;
#endif
}
#endif // __INCLUDE_CXX_CSCHED
......@@ -843,6 +843,49 @@ void sched_suspend_scheduler(FAR struct tcb_s *tcb);
# define sched_suspend_scheduler(tcb)
#endif
/********************************************************************************
* Name: sched_note_*
*
* Description:
* If instrumentation of the scheduler is enabled, then some outboard logic
* must provide the following interfaces. These interfaces are not availalble
* to application code.
*
* Input Parameters:
* tcb - The TCB of the thread to be restarted.
*
* Returned Value:
* None
*
********************************************************************************/
#ifdef CONFIG_SCHED_INSTRUMENTATION
void sched_note_start(FAR struct tcb_s *tcb);
void sched_note_stop(FAR struct tcb_s *tcb);
void sched_note_switch(FAR struct tcb_s *fromtcb,
FAR struct tcb_s *totcb);
#ifdef CONFIG_SCHED_INSTRUMENTATION_PREEMPTION
void sched_note_premption(FAR struct tcb_s *tcb, bool locked);
#else
# define sched_note_premption(t,l)
#endif
#ifdef CONFIG_SCHED_INSTRUMENTATION_CSECTION
void sched_note_csection(FAR struct tcb_s *tcb, bool enter);
#else
# define sched_note_csection(t,e)
#endif
#else
# define sched_note_start(t)
# define sched_note_stop(t)
# define sched_note_switch(t1, t2)
# define sched_note_premption(t,l)
# define sched_note_csection(t,e)
#endif /* CONFIG_SCHED_INSTRUMENTATION */
#undef EXTERN
#if defined(__cplusplus)
}
......
......@@ -243,10 +243,10 @@ int sched_rr_get_interval(pid_t pid, FAR struct timespec *interval);
#ifdef CONFIG_SMP
/* Task affinity */
int sched_setaffinity(pid_t pid, size_t cpusetsize,
FAR const cpu_set_t *mask);
int sched_getaffinity(pid_t pid, size_t cpusetsize, FAR cpu_set_t *mask);
int sched_cpu_count(FAR const cpu_set_t *set);
int sched_setaffinity(pid_t pid, size_t cpusetsize,
FAR const cpu_set_t *mask);
int sched_getaffinity(pid_t pid, size_t cpusetsize, FAR cpu_set_t *mask);
int sched_cpu_count(FAR const cpu_set_t *set);
#endif /* CONFIG_SMP */
/* Task Switching Interfaces (non-standard) */
......@@ -255,37 +255,6 @@ int sched_lock(void);
int sched_unlock(void);
int sched_lockcount(void);
/* If instrumentation of the scheduler is enabled, then some outboard logic
* must provide the following interfaces.
*/
#ifdef CONFIG_SCHED_INSTRUMENTATION
void sched_note_start(FAR struct tcb_s *tcb);
void sched_note_stop(FAR struct tcb_s *tcb);
void sched_note_switch(FAR struct tcb_s *fromtcb,
FAR struct tcb_s *totcb);
#ifdef CONFIG_SCHED_INSTRUMENTATION_PREEMPTION
void sched_note_premption(FAR struct tcb_s *tcb, bool locked);
#else
# define sched_note_premption(t,l)
#endif
#ifdef CONFIG_SCHED_INSTRUMENTATION_CSECTION
void sched_note_csection(FAR struct tcb_s *tcb, bool enter);
#else
# define sched_note_csection(t,e)
#endif
#else
# define sched_note_start(t)
# define sched_note_stop(t)
# define sched_note_switch(t1, t2)
# define sched_note_premption(t,l)
# define sched_note_csection(t,e)
#endif /* CONFIG_SCHED_INSTRUMENTATION */
#undef EXTERN
#if defined(__cplusplus)
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment