/[eiffelstudio]/branches/eth/eve/Src/C/run-time/eif_macros.h
ViewVC logotype

Diff of /branches/eth/eve/Src/C/run-time/eif_macros.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 88120 by jasonw, Fri Nov 4 09:32:23 2011 UTC revision 88121 by jasonw, Fri Dec 16 14:42:24 2011 UTC
# Line 1359  RT_LNK void eif_exit_eiffel_code(void); Line 1359  RT_LNK void eif_exit_eiffel_code(void);
1359  #define scoop_task_check_uncontrolled 13  #define scoop_task_check_uncontrolled 13
1360    
1361  #ifdef WORKBENCH  #ifdef WORKBENCH
1362  #define RTS_TCB(t,c,s,b,a,r) \  #define RTS_TCB(t,c,s,a) \
1363          {                                                                       \          {                                                                 \
1364                  EIF_TYPED_VALUE xt,xc,xs,xf,xa,xr;                              \                  EIF_TYPED_VALUE xt,xc,xs,xa;                              \
1365                  xt.it_i1 = t;                                                   \                  xt.it_i1 = t;                                             \
1366                  xt.type = SK_INT8;                                              \                  xt.type = SK_INT8;                                        \
1367                  xc.it_i4 = c;                                                   \                  xc.it_i4 = c;                                             \
1368                  xc.type = SK_INT32;                                             \                  xc.type = SK_INT32;                                       \
1369                  xs.it_i4 = s;                                                   \                  xs.it_i4 = s;                                             \
1370                  xs.type = SK_INT32;                                             \                  xs.type = SK_INT32;                                       \
1371                  xf.it_n4 = b;                                                   \                  xa.it_p = a;                                              \
1372                  xf.type = SK_UINT32;                                            \                  xa.type = SK_POINTER;                                     \
1373                  xa.it_p = a;                                                    \                  (egc_scoop_manager_task_callback)(scp_mnger,xt,xc,xs,xa); \
                 xa.type = SK_POINTER;                                           \  
                 xr.it_p = r;                                                    \  
                 xr.type = SK_POINTER;                                           \  
                 (egc_scoop_manager_task_callback)(scp_mnger,xt,xc,xs,xf,xa,xr); \  
1374          }          }
1375  #else  #else
1376  #define RTS_TCB(t,c,s,f,a,r) (egc_scoop_manager_task_callback)(scp_mnger,t,c,s,f,a,r);  #define RTS_TCB(t,c,s,a) (egc_scoop_manager_task_callback)(scp_mnger,t,c,s,a);
1377  #endif  #endif
1378  #define RTS_PID(o) HEADER(o)->ov_pid  #define RTS_PID(o) HEADER(o)->ov_pid
1379    
# Line 1397  RT_LNK void eif_exit_eiffel_code(void); Line 1393  RT_LNK void eif_exit_eiffel_code(void);
1393   * RTS_PA(o) - associate a fresh processor with an object o   * RTS_PA(o) - associate a fresh processor with an object o
1394   */   */
1395  #define RTS_PA(o) \  #define RTS_PA(o) \
1396          {                                                                      \          {                                                               \
1397                  EIF_TYPED_VALUE pid;                                           \                  EIF_TYPED_VALUE pid;                                    \
1398                  pid.it_i4 = 0;                                                 \                  pid.it_i4 = 0;                                          \
1399                  pid.type = SK_INT32;                                           \                  pid.type = SK_INT32;                                    \
1400                  RTS_TCB(scoop_task_assign_processor,RTS_PID(o),0,0,&pid,NULL); \                  RTS_TCB(scoop_task_assign_processor,RTS_PID(o),0,&pid); \
1401                  RTS_PID(o) = (EIF_SCP_PID) pid.it_i4;                          \                  RTS_PID(o) = (EIF_SCP_PID) pid.it_i4;                   \
1402          }          }
1403    
1404  /*  /*
# Line 1415  RT_LNK void eif_exit_eiffel_code(void); Line 1411  RT_LNK void eif_exit_eiffel_code(void);
1411   * The only valid sequence of calls is   * The only valid sequence of calls is
1412   *      RTS_RC (RTS_RS)* [RTS_RW] RTS_RD   *      RTS_RC (RTS_RS)* [RTS_RW] RTS_RD
1413   */   */
1414  #define RTS_RC(p) RTS_TCB(scoop_task_signify_start_of_new_chain,RTS_PID(p),0,0,NULL,NULL)  #define RTS_RC(p) RTS_TCB(scoop_task_signify_start_of_new_chain,RTS_PID(p),0,NULL)
1415  #define RTS_RD(p) RTS_TCB(scoop_task_signify_end_of_new_chain,RTS_PID(p),RTS_PID(p),0,NULL,NULL)  #define RTS_RD(p) RTS_TCB(scoop_task_signify_end_of_new_chain,RTS_PID(p),RTS_PID(p),NULL)
1416  #define RTS_RF(p) RTS_TCB(scoop_task_signify_end_of_new_chain,RTS_PID(p),-1,0,NULL,NULL)  #define RTS_RF(p) RTS_TCB(scoop_task_signify_end_of_new_chain,RTS_PID(p),-1,NULL)
1417  #define RTS_RS(p,s) RTS_TCB(scoop_task_add_supplier_to_request_chain,RTS_PID(p),RTS_PID(s),0,NULL,NULL)  #define RTS_RS(p,s) RTS_TCB(scoop_task_add_supplier_to_request_chain,RTS_PID(p),RTS_PID(s),NULL)
1418  #define RTS_RW(p) RTS_TCB(scoop_task_wait_for_supplier_processor_locks,RTS_PID(p),0,0,NULL,NULL)  #define RTS_RW(p) RTS_TCB(scoop_task_wait_for_supplier_processor_locks,RTS_PID(p),0,NULL)
1419    
1420    
1421  /*  /*
# Line 1571  RT_LNK void eif_exit_eiffel_code(void); Line 1567  RT_LNK void eif_exit_eiffel_code(void);
1567                  }                  }
1568  #endif /* WORKBENCH */  #endif /* WORKBENCH */
1569    
1570  #define RTS_WPR RTS_TCB(scoop_task_wait_for_processor_redundancy,0,0,0,NULL,NULL)  #define RTS_WPR RTS_TCB(scoop_task_wait_for_processor_redundancy,0,0,NULL)
1571    
1572  #define RTS_SEMAPHORE_CLIENT_WAIT(semaddr) EIF_ENTER_C; eif_pthread_sem_wait(semaddr); EIF_EXIT_C; RTGC;  #define RTS_SEMAPHORE_CLIENT_WAIT(semaddr) EIF_ENTER_C; eif_pthread_sem_wait(semaddr); EIF_EXIT_C; RTGC;
1573  #define RTS_SEMAPHORE_SUPPLIER_SIGNAL(semaddr) eif_pthread_sem_post(semaddr);  #define RTS_SEMAPHORE_SUPPLIER_SIGNAL(semaddr) eif_pthread_sem_post(semaddr);

Legend:
Removed from v.88120  
changed lines
  Added in v.88121

  ViewVC Help
Powered by ViewVC 1.1.23