#include <stdlib.h>
#include <rtems.h>
#include "cantProceed.h"
#include "epicsSpin.h"
Go to the source code of this file.
#define __RTEMS_VIOLATE_KERNEL_VISIBILITY__ 1 |
Definition at line 58 of file osdSpin.c.
59 rtems_interrupt_level level;
61 rtems_interrupt_disable(level);
62 _Thread_Disable_dispatch();
64 rtems_interrupt_enable(level);
65 _Thread_Enable_dispatch();
66 if (!rtems_interrupt_is_in_progress()) {
67 printk(
"epicsSpinLock(%p): Deadlock.\n", spin);
68 cantProceed(
"Recursive lock, missed unlock or block when locked.");
71 printk(
"epicsSpinLock(%p): Deadlock in ISR.\n" 72 "Recursive lock, missed unlock or block when locked.\n",
rtems_interrupt_level level
LIBCOM_API void cantProceed(const char *msg,...)
Definition at line 46 of file osdSpin.c.
50 cantProceed(
"epicsSpinMustCreate: epicsSpinCreate failed.");
LIBCOM_API void cantProceed(const char *msg,...)
epicsSpinId epicsSpinCreate(void)
Definition at line 81 of file osdSpin.c.
82 rtems_interrupt_level level;
84 rtems_interrupt_disable(level);
85 _Thread_Disable_dispatch();
87 rtems_interrupt_enable(level);
88 _Thread_Enable_dispatch();
rtems_interrupt_level level
Definition at line 96 of file osdSpin.c.
97 rtems_interrupt_level level = spin->
level;
100 printk(
"epicsSpinUnlock(%p): not locked\n", spin);
104 rtems_interrupt_enable (level);
105 _Thread_Enable_dispatch();
rtems_interrupt_level level