diff VMS.h @ 281:b58fb1343377

remove need for end_thread()
author Nina Engelhardt <nengel@mailbox.tu-berlin.de>
date Fri, 17 May 2013 17:49:35 +0200
parents 67b684afa736
children
line diff
     1.1 --- a/VMS.h	Wed May 15 15:21:46 2013 +0200
     1.2 +++ b/VMS.h	Fri May 17 17:49:35 2013 +0200
     1.3 @@ -45,6 +45,7 @@
     1.4  typedef SlaveVP *(*SlaveAssigner)  ( void *, AnimSlot*); //semEnv, slot for HW info
     1.5  typedef void     (*RequestHandler) ( SlaveVP *, void * ); //prWReqst, semEnv
     1.6  typedef void     (*TopLevelFnPtr)  ( void * ); //initData, animSlv
     1.7 +typedef void     (*TopLevelFnWrapper)( TopLevelFnPtr, void*); //(*fn)(arg)
     1.8  typedef void       TopLevelFn      ( void * ); //initData, animSlv
     1.9  typedef void     (*ResumeSlvFnPtr) ( SlaveVP *, void * );
    1.10        //=========== MEASUREMENT STUFF ==========
    1.11 @@ -293,6 +294,9 @@
    1.12  #define VMS_PI__create_slaveVP VMS_int__create_slaveVP
    1.13  #define VMS_WL__create_slaveVP VMS_int__create_slaveVP
    1.14  
    1.15 +SlaveVP *
    1.16 +VMS_int__create_slaveVP_with_wrapper( TopLevelFnWrapper fnWrapper, TopLevelFnPtr fnPtr, void *dataParam );
    1.17 +
    1.18     //Use this to create processor inside entry point & other places outside
    1.19     // the VMS system boundary (IE, don't animate with a SlaveVP or MasterVP)
    1.20  SlaveVP *
    1.21 @@ -302,6 +306,10 @@
    1.22  VMS_int__create_slaveVP_helper( SlaveVP *newSlv,       TopLevelFnPtr  fnPtr,
    1.23                                  void      *dataParam, void           *stackLocs );
    1.24  
    1.25 +SlaveVP *
    1.26 +VMS_int__create_slaveVP_helper_with_wrapper( SlaveVP *newSlv, TopLevelFnWrapper fnWrapper, TopLevelFnPtr  fnPtr,
    1.27 +                     void    *dataParam, void          *stackLocs );
    1.28 +
    1.29  void
    1.30  VMS_int__reset_slaveVP_to_TopLvlFn( SlaveVP *slaveVP, TopLevelFnPtr fnPtr,
    1.31                                void    *dataParam);
    1.32 @@ -315,6 +323,10 @@
    1.33                                void    *param1, void *param2);
    1.34  
    1.35  void
    1.36 +VMS_int__reset_slaveVP_to_TopLvlFnWrapper( SlaveVP *slaveVP, TopLevelFnWrapper fnWrapper, TopLevelFnPtr fnPtr,
    1.37 +                              void    *dataParam);
    1.38 +
    1.39 +void
    1.40  VMS_int__dissipate_slaveVP( SlaveVP *slaveToDissipate );
    1.41  #define VMS_PI__dissipate_slaveVP VMS_int__dissipate_slaveVP
    1.42  //WL: dissipate a SlaveVP by sending a request