Interrupt disabling design
Garcia Jérémie
GARCIAJ at 3il.fr
Thu Apr 7 20:23:14 EST 2005
Hi everybody,
I'm trying to emulate a VxWorks-designed application under a linux montavista environment.
In this application I have critical portion of code which need the interrupts disabled as below:
-------------------------------------
lockKey = OSIntrLock();some
.
. // my critical code
.
bsos1IntrUnlock(lockKey);
-------------------------------------
As you can see we use an OS encapsulation layer which is used to call the OS routines:
----------------------------
int OSIntrLock(void)
{
return (intLock()); // vxWorks routine
}
void OSIntrUnlock(int lockKey)
{
intUnlock(lockKey); // vxWorks routine
}
----------------------------
Furthermore, I'm running my "VxWorks emulator" in the user-space and I'm not allowed to modify files others than the OS encapsulation layer ones.
So, how can I use the "cli() / sti()" functions from the user space as below:
| USER-SPACE | --> | KERNEL-SPACE | --> | USER-SPACE | --> | KERNEL-SPACE | --> | USER-SPACE |
| | | | | | | | | |
| OSIntrLock() | | cli() | | my critical code | | sti() | | ..... |
| OSIntrUnlock() |
Is it possible to do that? Cause If I do a "cli()" call, I disable interrupts --> so, will the "sti()" call work?
If yes, it allows me to make my own system call to use them from the user space but I'm not really sure...
Tks a lot for your help
More information about the Linuxppc-dev
mailing list