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