changeset 21:c05370bd62dd ML_lib_longjmp

Raw version of significantly reduced amount of sched_getcpu calls; linked lib_prt commit: 5e2ee79f8d4a
author Philipe Louchtch
date Sun, 15 Jun 2014 13:06:28 +0200
parents f3cb11baf791
children d8f96a3bbea4
files PR__int.h PR__structs__common.h
diffstat 2 files changed, 22 insertions(+), 2 deletions(-) [+]
line diff
     1.1 --- a/PR__int.h	Fri May 09 11:19:53 2014 +0200
     1.2 +++ b/PR__int.h	Sun Jun 15 13:06:28 2014 +0200
     1.3 @@ -264,7 +264,27 @@
     1.4  __inline void
     1.5  PR_int__aquire_masterLock();
     1.6  
     1.7 -#define PR_int__release_master_lock()  _PRTopEnv->masterLock  = UNLOCKED
     1.8 +__inline void
     1.9 +PR_int__aquire_coreController_Cntx_Lock(int32 coreNum);
    1.10 +
    1.11 +__inline void
    1.12 +PR_int__aquire_coreController_CreateVP_Lock(int32 coreNum);
    1.13 +
    1.14 +#define PR_int__release_coreController_Cntx_Lock(__coreNum)     \
    1.15 +do {                                                            \
    1.16 +    _PRTopEnv->coreController_Cntx_Lock[__coreNum] = UNLOCKED;  \
    1.17 +} while(0)
    1.18 +
    1.19 +#define PR_int__release_coreController_CreateVP_Lock(__coreNum)     \
    1.20 +do {                                                                \
    1.21 +    _PRTopEnv->coreController_CreateVP_Lock[__coreNum] = UNLOCKED;  \
    1.22 +} while(0)
    1.23 +
    1.24 +#define PR_int__release_master_lock()                     \
    1.25 +do                                                        \
    1.26 +{                                                         \
    1.27 +    _PRTopEnv->masterLock  = UNLOCKED;                    \
    1.28 +} while(0)
    1.29  
    1.30  #define PR_int__release_wrapper_lock() _PRTopEnv->wrapperLock = UNLOCKED
    1.31  
     2.1 --- a/PR__structs__common.h	Fri May 09 11:19:53 2014 +0200
     2.2 +++ b/PR__structs__common.h	Sun Jun 15 13:06:28 2014 +0200
     2.3 @@ -223,7 +223,7 @@
     2.4   */
     2.5  struct _SlaveVP
     2.6   {    //The offsets of these fields are hard-coded into assembly
     2.7 -   void       *stackPtr;         //save the core's stack ptr when suspend
     2.8 +   int32       stackNo;          //save the creating coreCntrl's stack id
     2.9     void       *framePtr;         //save core's frame ptr when suspend
    2.10     void       *resumeInstrPtr;   //save core's program-counter when suspend
    2.11     void       *coreCtlrFramePtr; //restore before jmp back to core controller