|
From: <jmk...@us...> - 2003-07-23 01:22:52
|
Update of /cvsroot/emc/rtapi/examples/semaphore
In directory sc8-pr-cvs1:/tmp/cvs-serv23441/examples/semaphore
Modified Files:
common.h master.c slave.c
Log Message:
changed examples to use new api - fifo not working yet
Index: common.h
===================================================================
RCS file: /cvsroot/emc/rtapi/examples/semaphore/common.h,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** common.h 8 Jul 2003 15:54:39 -0000 1.1.1.1
--- common.h 23 Jul 2003 01:22:49 -0000 1.2
***************
*** 2,6 ****
#define COMMON_H
! extern void * master_sem; /* the global semaphore */
#endif /* COMMON_H */
--- 2,6 ----
#define COMMON_H
! extern rtapi_sem_handle master_sem; /* the global semaphore */
#endif /* COMMON_H */
Index: master.c
===================================================================
RCS file: /cvsroot/emc/rtapi/examples/semaphore/master.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** master.c 8 Jul 2003 15:54:39 -0000 1.1.1.1
--- master.c 23 Jul 2003 01:22:49 -0000 1.2
***************
*** 11,16 ****
#include "common.h" /* master_sem decl */
! void *master_sem = 0; /* the global semaphore */
! static void *master_task = 0; /* the task structure */
static unsigned int master_count = 0;
enum { MASTER_PERIOD_NSEC = 1000000 }; /* timer period, in nanoseconds */
--- 11,16 ----
#include "common.h" /* master_sem decl */
! rtapi_sem_handle master_sem; /* the global semaphore */
! rtapi_task_handle master_task; /* the task structure */
static unsigned int master_count = 0;
enum { MASTER_PERIOD_NSEC = 1000000 }; /* timer period, in nanoseconds */
***************
*** 18,22 ****
/* task code, executed each timer interrupt */
! void master_code(void)
{
while (1) {
--- 18,22 ----
/* task code, executed each timer interrupt */
! void master_code( int arg )
{
while (1) {
***************
*** 32,50 ****
int rtapi_app_main(void)
{
int master_prio;
if (0 != rtapi_app_init()) {
return -1;
}
/* create the semaphore */
! master_sem = rtapi_sem_new();
! if (0 == master_sem) {
! rtapi_print("mastertask: can't get semaphore\n");
return -1;
}
/* set the base timer period */
! rtapi_clock_set_period(MASTER_PERIOD_NSEC);
/* set the task priority to one above the lowest; the slave
--- 32,57 ----
int rtapi_app_main(void)
{
+ int retval;
int master_prio;
+ /*
if (0 != rtapi_app_init()) {
return -1;
}
+ */
/* create the semaphore */
! retval = rtapi_sem_new( &master_sem );
! if ( retval != RTAPI_SUCCESS ) {
! rtapi_print( "sem master init: rtapi_sem_new returned %d\n", retval );
return -1;
}
/* set the base timer period */
! retval = rtapi_clock_set_period(MASTER_PERIOD_NSEC);
! if ( retval != RTAPI_SUCCESS ) {
! rtapi_print( "sem master init: rtapi_clock_set_period returned %d\n", retval );
! return -1;
! }
/* set the task priority to one above the lowest; the slave
***************
*** 52,68 ****
master_prio = rtapi_prio_next_higher(rtapi_prio_lowest());
! /* launch the master task */
! master_task = rtapi_task_new();
! if (0 == master_task) {
! rtapi_print("mastertask: can't allocate master task\n");
return -1;
}
! if (0 != rtapi_task_start(master_task, master_code, master_prio, MASTER_STACKSIZE, MASTER_PERIOD_NSEC, 0)) { /* 0 = no floating point */
! rtapi_print("mastertask: can't start master task\n");
return -1;
}
! rtapi_print("mastertask: started master task\n");
return 0;
--- 59,80 ----
master_prio = rtapi_prio_next_higher(rtapi_prio_lowest());
! /* create the master task */
! retval = rtapi_task_new( &master_task );
! if ( retval != RTAPI_SUCCESS ) {
! rtapi_print( "sem master init: rtapi_task_new returned %d\n", retval );
return -1;
}
! /* start the master task */
! retval = rtapi_task_start( master_task, master_code,
! 0, master_prio,
! MASTER_STACKSIZE,
! MASTER_PERIOD_NSEC, RTAPI_NO_FP );
! if ( retval != RTAPI_SUCCESS ) {
! rtapi_print("sem master init: rtapi_task_start returned %d\n", retval );
return -1;
}
! rtapi_print("sem master init: started master task\n");
return 0;
***************
*** 72,88 ****
void rtapi_app_exit(void)
{
! if (0 != master_task) {
! if (0 != rtapi_task_stop(master_task)) {
! rtapi_print("mastertask: can't stop master task\n");
! }
! if (0 != rtapi_task_delete(master_task)) {
! rtapi_print("mastertask: can't delete master task\n");
! }
! master_task = 0;
}
! rtapi_sem_delete(master_sem);
! rtapi_print("mastertask: master count is %d\n", master_count);
rtapi_app_return();
--- 84,107 ----
void rtapi_app_exit(void)
{
! int retval;
!
! retval = rtapi_task_stop( master_task );
! if ( retval != RTAPI_SUCCESS ) {
! rtapi_print("sem master exit: rtapi_task_stop returned %d\n", retval );
! return;
! }
! retval = rtapi_task_delete( master_task );
! if ( retval != RTAPI_SUCCESS ) {
! rtapi_print("sem master exit: rtapi_task_delete returned %d\n", retval );
! return;
}
! retval = rtapi_sem_delete( master_sem );
! if ( retval != RTAPI_SUCCESS ) {
! rtapi_print("sem master exit: rtapi_sem_delete returned %d\n", retval );
! return;
! }
! rtapi_print("sem master exit: master count is %d\n", master_count);
rtapi_app_return();
Index: slave.c
===================================================================
RCS file: /cvsroot/emc/rtapi/examples/semaphore/slave.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** slave.c 8 Jul 2003 15:54:39 -0000 1.1.1.1
--- slave.c 23 Jul 2003 01:22:49 -0000 1.2
***************
*** 11,20 ****
#include "common.h" /* master_sem */
! static void *slave_task = 0; /* the task structure */
static unsigned int slave_count = 0;
enum { SLAVE_STACKSIZE = 1024 }; /* how big the stack is */
/* task code, executed when semaphore is released by master task */
! void slave_code(void)
{
while (1) {
--- 11,20 ----
#include "common.h" /* master_sem */
! static rtapi_task_handle slave_task; /* the task structure */
static unsigned int slave_count = 0;
enum { SLAVE_STACKSIZE = 1024 }; /* how big the stack is */
/* task code, executed when semaphore is released by master task */
! void slave_code( int arg )
{
while (1) {
***************
*** 29,32 ****
--- 29,33 ----
int rtapi_app_main(void)
{
+ int retval;
int slave_prio;
***************
*** 38,55 ****
slave_prio = rtapi_prio_lowest();
! /* launch the slave task */
! slave_task = rtapi_task_new();
! if (0 == slave_task) {
! rtapi_print("slavetask: can't allocate slave task\n");
return -1;
}
! if (0 != rtapi_task_start(slave_task, slave_code, slave_prio, SLAVE_STACKSIZE, 0, /* 0 = don't run task on timer */
! 0)) { /* 0 = no floating point */
! rtapi_print("slavetask: can't start slave task\n");
return -1;
}
! rtapi_print("slavetask: started slave task\n");
return 0;
--- 39,60 ----
slave_prio = rtapi_prio_lowest();
! /* create the slave task */
! retval = rtapi_task_new( &slave_task );
! if ( retval != RTAPI_SUCCESS ) {
! rtapi_print( "sem slave init: rtapi_task_new returned %d\n", retval );
return -1;
}
! /* start the slave task */
! retval = rtapi_task_start( slave_task, slave_code,
! 0, slave_prio,
! SLAVE_STACKSIZE,
! 0 /* not periodic */, RTAPI_NO_FP );
! if ( retval != RTAPI_SUCCESS ) {
! rtapi_print("sem slave init: rtapi_task_start returned %d\n", retval );
return -1;
}
! rtapi_print("sem slave init: started slave task\n");
return 0;
***************
*** 59,73 ****
void rtapi_app_exit(void)
{
! if (0 != slave_task) {
! if (0 != rtapi_task_stop(slave_task)) {
! rtapi_print("slavetask: can't stop slave task\n");
! }
! if (0 != rtapi_task_delete(slave_task)) {
! rtapi_print("slavetask: can't delete slave task\n");
! }
! slave_task = 0;
}
! rtapi_print("slavetask: slave count is %d\n", slave_count);
rtapi_app_return();
--- 64,81 ----
void rtapi_app_exit(void)
{
! int retval;
!
! retval = rtapi_task_stop( slave_task );
! if ( retval != RTAPI_SUCCESS ) {
! rtapi_print("sem slave exit: rtapi_task_stop returned %d\n", retval );
! return;
! }
! retval = rtapi_task_delete( slave_task );
! if ( retval != RTAPI_SUCCESS ) {
! rtapi_print("sem slave exit: rtapi_task_delete returned %d\n", retval );
! return;
}
! rtapi_print("sem slave exit: slave count is %d\n", slave_count);
rtapi_app_return();
|