You can subscribe to this list here.
| 2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(12) |
Jul
(105) |
Aug
(245) |
Sep
(165) |
Oct
(100) |
Nov
(92) |
Dec
(74) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2004 |
Jan
(179) |
Feb
(233) |
Mar
(175) |
Apr
(168) |
May
(146) |
Jun
(165) |
Jul
(18) |
Aug
(95) |
Sep
(134) |
Oct
(120) |
Nov
(51) |
Dec
(65) |
| 2005 |
Jan
(96) |
Feb
(100) |
Mar
(113) |
Apr
(82) |
May
(281) |
Jun
(168) |
Jul
(54) |
Aug
(72) |
Sep
(104) |
Oct
(182) |
Nov
(126) |
Dec
(133) |
| 2006 |
Jan
(211) |
Feb
(252) |
Mar
(291) |
Apr
(199) |
May
(345) |
Jun
(282) |
Jul
(272) |
Aug
(261) |
Sep
(287) |
Oct
(464) |
Nov
(233) |
Dec
(210) |
| 2007 |
Jan
(669) |
Feb
(304) |
Mar
(483) |
Apr
(150) |
May
(293) |
Jun
(215) |
Jul
(178) |
Aug
(138) |
Sep
(159) |
Oct
(301) |
Nov
(367) |
Dec
(165) |
| 2008 |
Jan
(171) |
Feb
(148) |
Mar
(150) |
Apr
(180) |
May
(112) |
Jun
(109) |
Jul
(196) |
Aug
(319) |
Sep
(294) |
Oct
(284) |
Nov
(399) |
Dec
(280) |
| 2009 |
Jan
(536) |
Feb
(454) |
Mar
(382) |
Apr
(255) |
May
(321) |
Jun
(318) |
Jul
(412) |
Aug
(226) |
Sep
(76) |
Oct
(251) |
Nov
(134) |
Dec
(101) |
| 2010 |
Jan
(262) |
Feb
(210) |
Mar
(219) |
Apr
(55) |
May
(180) |
Jun
(225) |
Jul
(151) |
Aug
(184) |
Sep
(54) |
Oct
(160) |
Nov
(237) |
Dec
(115) |
| 2011 |
Jan
(141) |
Feb
(68) |
Mar
(204) |
Apr
(329) |
May
(68) |
Jun
(34) |
Jul
(304) |
Aug
(206) |
Sep
(183) |
Oct
(121) |
Nov
(1125) |
Dec
(934) |
| 2012 |
Jan
(466) |
Feb
(161) |
Mar
(314) |
Apr
(63) |
May
(62) |
Jun
(53) |
Jul
(47) |
Aug
(41) |
Sep
(36) |
Oct
(108) |
Nov
(297) |
Dec
(73) |
| 2013 |
Jan
(236) |
Feb
(81) |
Mar
(422) |
Apr
(441) |
May
(86) |
Jun
(177) |
Jul
(146) |
Aug
(140) |
Sep
(93) |
Oct
(126) |
Nov
(133) |
Dec
(230) |
| 2014 |
Jan
(380) |
Feb
(233) |
Mar
(251) |
Apr
(214) |
May
(168) |
Jun
(670) |
Jul
(538) |
Aug
(459) |
Sep
(330) |
Oct
(327) |
Nov
(339) |
Dec
(456) |
| 2015 |
Jan
(188) |
Feb
(426) |
Mar
(186) |
Apr
(71) |
May
(151) |
Jun
(283) |
Jul
(208) |
Aug
(477) |
Sep
(148) |
Oct
(302) |
Nov
(297) |
Dec
(331) |
| 2016 |
Jan
(474) |
Feb
(55) |
Mar
(92) |
Apr
(118) |
May
(286) |
Jun
(751) |
Jul
(494) |
Aug
(166) |
Sep
(97) |
Oct
(216) |
Nov
(41) |
Dec
(78) |
| 2017 |
Jan
(148) |
Feb
(205) |
Mar
(112) |
Apr
(119) |
May
(125) |
Jun
(102) |
Jul
(242) |
Aug
(26) |
Sep
(53) |
Oct
(28) |
Nov
(38) |
Dec
(97) |
| 2018 |
Jan
(71) |
Feb
(49) |
Mar
(43) |
Apr
(13) |
May
(19) |
Jun
(44) |
Jul
(74) |
Aug
(30) |
Sep
(44) |
Oct
(57) |
Nov
(74) |
Dec
(34) |
| 2019 |
Jan
(41) |
Feb
(50) |
Mar
(30) |
Apr
(24) |
May
(44) |
Jun
(101) |
Jul
(94) |
Aug
(123) |
Sep
(101) |
Oct
(81) |
Nov
(48) |
Dec
(51) |
| 2020 |
Jan
(74) |
Feb
(81) |
Mar
(129) |
Apr
(310) |
May
(176) |
Jun
(97) |
Jul
(137) |
Aug
(205) |
Sep
(84) |
Oct
(71) |
Nov
(106) |
Dec
(138) |
| 2021 |
Jan
(117) |
Feb
(94) |
Mar
(89) |
Apr
(71) |
May
(98) |
Jun
(99) |
Jul
(67) |
Aug
(129) |
Sep
(108) |
Oct
(127) |
Nov
(115) |
Dec
(114) |
| 2022 |
Jan
(115) |
Feb
(85) |
Mar
(97) |
Apr
(92) |
May
(102) |
Jun
(109) |
Jul
(168) |
Aug
(230) |
Sep
(183) |
Oct
(106) |
Nov
(109) |
Dec
(146) |
| 2023 |
Jan
(186) |
Feb
(126) |
Mar
(99) |
Apr
(92) |
May
(158) |
Jun
(74) |
Jul
(113) |
Aug
(93) |
Sep
(84) |
Oct
(163) |
Nov
(72) |
Dec
(81) |
| 2024 |
Jan
(71) |
Feb
(85) |
Mar
(63) |
Apr
(50) |
May
(45) |
Jun
(28) |
Jul
(106) |
Aug
(45) |
Sep
(60) |
Oct
(44) |
Nov
(53) |
Dec
(28) |
| 2025 |
Jan
(87) |
Feb
(58) |
Mar
(71) |
Apr
(37) |
May
(37) |
Jun
(46) |
Jul
(74) |
Aug
(26) |
Sep
(55) |
Oct
(43) |
Nov
(58) |
Dec
(34) |
| 2026 |
Jan
(106) |
Feb
(61) |
Mar
(48) |
Apr
(21) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <pa...@us...> - 2003-08-10 23:52:38
|
Update of /cvsroot/emc/rtapi/examples/semaphore
In directory sc8-pr-cvs1:/tmp/cvs-serv4147/examples/semaphore
Modified Files:
master.c slave.c
Log Message:
Checks on rtapi_task_start() start time made..
Index: master.c
===================================================================
RCS file: /cvsroot/emc/rtapi/examples/semaphore/master.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** master.c 10 Aug 2003 22:44:11 -0000 1.6
--- master.c 10 Aug 2003 23:52:35 -0000 1.7
***************
*** 72,76 ****
0, master_prio,
MASTER_STACKSIZE,
! MASTER_PERIOD_NSEC, 0, RTAPI_NO_FP );
if ( retval != RTAPI_SUCCESS ) {
rtapi_print("sem master init: rtapi_task_start returned %d\n", retval );
--- 72,77 ----
0, master_prio,
MASTER_STACKSIZE,
! MASTER_PERIOD_NSEC, NOW,
! RTAPI_NO_FP );
if ( retval != RTAPI_SUCCESS ) {
rtapi_print("sem master init: rtapi_task_start returned %d\n", retval );
Index: slave.c
===================================================================
RCS file: /cvsroot/emc/rtapi/examples/semaphore/slave.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** slave.c 10 Aug 2003 22:44:11 -0000 1.4
--- slave.c 10 Aug 2003 23:52:35 -0000 1.5
***************
*** 51,55 ****
0, slave_prio,
SLAVE_STACKSIZE,
! 0 /* not periodic */, 0, RTAPI_NO_FP );
if ( retval != RTAPI_SUCCESS ) {
rtapi_print("sem slave init: rtapi_task_start returned %d\n", retval );
--- 51,56 ----
0, slave_prio,
SLAVE_STACKSIZE,
! 0 /* not periodic */, NOW,
! RTAPI_NO_FP );
if ( retval != RTAPI_SUCCESS ) {
rtapi_print("sem slave init: rtapi_task_start returned %d\n", retval );
|
|
From: <pa...@us...> - 2003-08-10 23:52:37
|
Update of /cvsroot/emc/rtapi/examples/fifo
In directory sc8-pr-cvs1:/tmp/cvs-serv4147/examples/fifo
Modified Files:
fifotask.c
Log Message:
Checks on rtapi_task_start() start time made..
Index: fifotask.c
===================================================================
RCS file: /cvsroot/emc/rtapi/examples/fifo/fifotask.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** fifotask.c 10 Aug 2003 22:42:55 -0000 1.11
--- fifotask.c 10 Aug 2003 23:52:35 -0000 1.12
***************
*** 88,92 ****
retval = rtapi_task_start(fifo_task, fifo_code,
0, fifo_prio,
! FIFO_STACKSIZE, FIFO_PERIOD_NSEC, 0, RTAPI_NO_FP);
if (retval != RTAPI_SUCCESS) {
rtapi_print("fifotask init: rtapi_task_start failed with %d\n", retval);
--- 88,93 ----
retval = rtapi_task_start(fifo_task, fifo_code,
0, fifo_prio,
! FIFO_STACKSIZE, FIFO_PERIOD_NSEC, NOW,
! RTAPI_NO_FP);
if (retval != RTAPI_SUCCESS) {
rtapi_print("fifotask init: rtapi_task_start failed with %d\n", retval);
|
|
From: <pa...@us...> - 2003-08-10 22:44:14
|
Update of /cvsroot/emc/rtapi/examples/timertask
In directory sc8-pr-cvs1:/tmp/cvs-serv26308/examples/timertask
Modified Files:
timertask.c
Log Message:
Changed rtapi_print_dbg to rtapi_print_msg
Index: timertask.c
===================================================================
RCS file: /cvsroot/emc/rtapi/examples/timertask/timertask.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** timertask.c 4 Aug 2003 06:00:25 -0000 1.6
--- timertask.c 10 Aug 2003 22:44:11 -0000 1.7
***************
*** 69,73 ****
0, timer_prio,
TIMER_STACKSIZE,
! TASK_PERIOD_NSEC, RTAPI_NO_FP );
if ( retval != RTAPI_SUCCESS ) {
rtapi_print("timertask init: rtapi_task_start returned %d\n", retval );
--- 69,73 ----
0, timer_prio,
TIMER_STACKSIZE,
! TASK_PERIOD_NSEC, 0, RTAPI_NO_FP );
if ( retval != RTAPI_SUCCESS ) {
rtapi_print("timertask init: rtapi_task_start returned %d\n", retval );
|
|
From: <pa...@us...> - 2003-08-10 22:44:14
|
Update of /cvsroot/emc/rtapi/examples/shmem
In directory sc8-pr-cvs1:/tmp/cvs-serv26308/examples/shmem
Modified Files:
shmemtask.c
Log Message:
Changed rtapi_print_dbg to rtapi_print_msg
Index: shmemtask.c
===================================================================
RCS file: /cvsroot/emc/rtapi/examples/shmem/shmemtask.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** shmemtask.c 4 Aug 2003 06:00:25 -0000 1.4
--- shmemtask.c 10 Aug 2003 22:44:11 -0000 1.5
***************
*** 77,81 ****
0, shmem_prio,
SHMEM_STACKSIZE,
! SHMEM_PERIOD_NSEC, RTAPI_NO_FP );
if ( retval != RTAPI_SUCCESS ) {
rtapi_print("shmemtask init: rtapi_task_start returned %d\n", retval );
--- 77,81 ----
0, shmem_prio,
SHMEM_STACKSIZE,
! SHMEM_PERIOD_NSEC, 0, RTAPI_NO_FP );
if ( retval != RTAPI_SUCCESS ) {
rtapi_print("shmemtask init: rtapi_task_start returned %d\n", retval );
|
|
From: <pa...@us...> - 2003-08-10 22:44:14
|
Update of /cvsroot/emc/rtapi/src/rtapi
In directory sc8-pr-cvs1:/tmp/cvs-serv26308/src/rtapi
Modified Files:
rtai_rtapi.c rtapi.h
Log Message:
Changed rtapi_print_dbg to rtapi_print_msg
Index: rtai_rtapi.c
===================================================================
RCS file: /cvsroot/emc/rtapi/src/rtapi/rtai_rtapi.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -C2 -d -r1.16 -r1.17
*** rtai_rtapi.c 10 Aug 2003 21:13:04 -0000 1.16
--- rtai_rtapi.c 10 Aug 2003 22:44:11 -0000 1.17
***************
*** 118,124 ****
static int timer_running = 0;
! int rtapi_msg_level; /* global used for message printing */
! static int msg; /* short name, for use in insmod command */
MODULE_PARM(msg, "i");
MODULE_PARM_DESC(msg, "Verbosity, higher value = more messages (default=7)");
--- 118,124 ----
static int timer_running = 0;
! int rtapi_msg_level; /* global used for message printing */
! static int msg = 0; /* short name, for use in insmod command */
MODULE_PARM(msg, "i");
MODULE_PARM_DESC(msg, "Verbosity, higher value = more messages (default=7)");
***************
*** 142,145 ****
--- 142,146 ----
PROC_PRINT(" Timer status = %i\n", timer_running);
PROC_PRINT("\n");
+ PROC_PRINT(" Vebosity level = %i\n", msg);
PROC_PRINT_DONE;
}
***************
*** 151,155 ****
especially if the RTOS does not use modules. */
! int rtapi_init (void)
{
rtapi_usage_count++;
--- 152,156 ----
especially if the RTOS does not use modules. */
! int rtapi_init(void)
{
rtapi_usage_count++;
***************
*** 157,161 ****
}
! int rtapi_exit (void)
{
rtapi_usage_count--;
--- 158,162 ----
}
! int rtapi_exit(void)
{
rtapi_usage_count--;
***************
*** 179,183 ****
);
#endif
! rtapi_print_dbg(VERBOSE, "RTAPI: Initing\n");
task_usage_count = 0;
shmem_usage_count = 0;
--- 180,184 ----
);
#endif
! rtapi_print_msg(VERBOSE, "RTAPI: Initing\n");
task_usage_count = 0;
shmem_usage_count = 0;
***************
*** 191,195 ****
! void cleanup_module (void)
{
/* Remove proc dir entry */
--- 192,196 ----
! void cleanup_module(void)
{
/* Remove proc dir entry */
***************
*** 198,222 ****
#endif
if (task_usage_count != 0) {
! rtapi_print_dbg(VERBOSE,
"RTAPI: ERROR: %d task(s) allocated but not deleted\n",
task_usage_count);
}
if (shmem_usage_count != 0) {
! rtapi_print_dbg(VERBOSE,
"RTAPI: ERROR: %d shared memory block(s) allocated but not deleted\n",
shmem_usage_count);
}
if (sem_usage_count != 0) {
! rtapi_print_dbg(VERBOSE,
"RTAPI: ERROR: %d semaphores(s) allocated but not deleted\n",
sem_usage_count);
}
if (fifo_usage_count != 0) {
! rtapi_print_dbg(VERBOSE,
"RTAPI: ERROR: %d fifo(s) allocated but not deleted\n",
fifo_usage_count);
}
if (int_usage_count != 0) {
! rtapi_print_dbg(VERBOSE,
"RTAPI: ERROR: %d interrupt handler(s) installed but not removed\n",
int_usage_count);
--- 199,223 ----
#endif
if (task_usage_count != 0) {
! rtapi_print_msg(VERBOSE,
"RTAPI: ERROR: %d task(s) allocated but not deleted\n",
task_usage_count);
}
if (shmem_usage_count != 0) {
! rtapi_print_msg(VERBOSE,
"RTAPI: ERROR: %d shared memory block(s) allocated but not deleted\n",
shmem_usage_count);
}
if (sem_usage_count != 0) {
! rtapi_print_msg(VERBOSE,
"RTAPI: ERROR: %d semaphores(s) allocated but not deleted\n",
sem_usage_count);
}
if (fifo_usage_count != 0) {
! rtapi_print_msg(VERBOSE,
"RTAPI: ERROR: %d fifo(s) allocated but not deleted\n",
fifo_usage_count);
}
if (int_usage_count != 0) {
! rtapi_print_msg(VERBOSE,
"RTAPI: ERROR: %d interrupt handler(s) installed but not removed\n",
int_usage_count);
***************
*** 227,231 ****
}
rtapi_print("RTAPI: Shutting down\n");
! return RTAPI_SUCCESS;
}
--- 228,232 ----
}
rtapi_print("RTAPI: Shutting down\n");
! return;
}
***************
*** 295,299 ****
timer_period = count2nano(start_rt_timer(nano2count((RTIME) nsecs)));
! rtapi_print_dbg(VERBOSE,
"RTAPI: clock_set_period ( %ld ) - Actual = %i nSec\n",
nsecs, timer_period);
--- 296,300 ----
timer_period = count2nano(start_rt_timer(nano2count((RTIME) nsecs)));
! rtapi_print_msg(VERBOSE,
"RTAPI: clock_set_period ( %ld ) - Actual = %i nSec\n",
nsecs, timer_period);
***************
*** 330,334 ****
task_usage_count++;
! rtapi_print_dbg(VERBOSE, "RTAPI: new_task %p, count = %d\n", task,
task_usage_count);
--- 331,335 ----
task_usage_count++;
! rtapi_print_msg(VERBOSE, "RTAPI: new_task %p, count = %d\n", task,
task_usage_count);
***************
*** 353,357 ****
task_usage_count--;
! rtapi_print_dbg(VERBOSE, "RTAPI: delete_task %p, count = %d\n", task,
task_usage_count);
--- 354,358 ----
task_usage_count--;
! rtapi_print_msg(VERBOSE, "RTAPI: delete_task %p, count = %d\n", task,
task_usage_count);
***************
*** 364,368 ****
int arg, int prio,
unsigned long int stacksize,
! unsigned long int period_nsec, unsigned char uses_fp)
{
int retval;
--- 365,370 ----
int arg, int prio,
unsigned long int stacksize,
! unsigned long int period_nsec, unsigned long long when,
! unsigned char uses_fp)
{
int retval;
***************
*** 410,414 ****
}
! rtapi_print_dbg(VERBOSE, "RTAPI: start_task %p\n", task);
return RTAPI_SUCCESS;
--- 412,416 ----
}
! rtapi_print_msg(VERBOSE, "RTAPI: start_task %p\n", task);
return RTAPI_SUCCESS;
***************
*** 432,436 ****
return RTAPI_FAIL;
}
! rtapi_print_dbg(VERBOSE, "RTAPI: stop_task %p\n", task);
return RTAPI_SUCCESS;
--- 434,438 ----
return RTAPI_FAIL;
}
! rtapi_print_msg(VERBOSE, "RTAPI: stop_task %p\n", task);
return RTAPI_SUCCESS;
***************
*** 548,552 ****
shmem_usage_count++;
! rtapi_print_dbg(VERBOSE, "RTAPI: new_shmem %p, key = %d, count = %d\n",
shmem, key, shmem_usage_count);
--- 550,554 ----
shmem_usage_count++;
! rtapi_print_msg(VERBOSE, "RTAPI: new_shmem %p, key = %d, count = %d\n",
shmem, key, shmem_usage_count);
***************
*** 590,594 ****
shmem_usage_count--;
! rtapi_print_dbg(VERBOSE, "RTAPI: delete_shmem %p, count = %d\n", shmem,
shmem_usage_count);
--- 592,596 ----
shmem_usage_count--;
! rtapi_print_msg(VERBOSE, "RTAPI: delete_shmem %p, count = %d\n", shmem,
shmem_usage_count);
***************
*** 613,617 ****
! void rtapi_print_dbg(int dbg, const char *fmt, ...)
{
va_list args;
--- 615,619 ----
! void rtapi_print_msg(int dbg, const char *fmt, ...)
{
va_list args;
***************
*** 619,623 ****
static char buffer[BUFFERLEN];
! if (dbg < debug) {
va_start(args, fmt);
vsprintf(buffer, fmt, args);
--- 621,625 ----
static char buffer[BUFFERLEN];
! if (dbg < msg) {
va_start(args, fmt);
vsprintf(buffer, fmt, args);
***************
*** 651,655 ****
}
}
! rtapi_print_dbg(VERBOSE,
"\n\nRTAPI: assign_interrupt_handler for int %d, count = %d\n",
irq, int_usage_count);
--- 653,657 ----
}
}
! rtapi_print_msg(VERBOSE,
"\n\nRTAPI: assign_interrupt_handler for int %d, count = %d\n",
irq, int_usage_count);
***************
*** 658,662 ****
int_usage_count++;
! rtapi_print_dbg(VERBOSE,
"RTAPI: assign_interrupt_handler for int %d, count = %d\n",
irq, int_usage_count);
--- 660,664 ----
int_usage_count++;
! rtapi_print_msg(VERBOSE,
"RTAPI: assign_interrupt_handler for int %d, count = %d\n",
irq, int_usage_count);
***************
*** 679,683 ****
int_usage_count--;
! rtapi_print_dbg(VERBOSE,
"RTAPI: free_interrupt_handler for int %d, count = %d\n",
irq, int_usage_count);
--- 681,685 ----
int_usage_count--;
! rtapi_print_msg(VERBOSE,
"RTAPI: free_interrupt_handler for int %d, count = %d\n",
irq, int_usage_count);
***************
*** 740,744 ****
sem_usage_count++;
! rtapi_print_dbg(VERBOSE, "RTAPI: new_sem %p, count = %d\n", sem,
sem_usage_count);
--- 742,746 ----
sem_usage_count++;
! rtapi_print_msg(VERBOSE, "RTAPI: new_sem %p, count = %d\n", sem,
sem_usage_count);
***************
*** 766,770 ****
sem_usage_count--;
! rtapi_print_dbg(VERBOSE, "RTAPI: delete_sem %p, count = %d\n", sem,
sem_usage_count);
--- 768,772 ----
sem_usage_count--;
! rtapi_print_msg(VERBOSE, "RTAPI: delete_sem %p, count = %d\n", sem,
sem_usage_count);
***************
*** 863,867 ****
fifo_usage_count++;
! rtapi_print_dbg(VERBOSE, "RTAPI: new_fifo %p, count = %d\n", fifo,
fifo_usage_count);
--- 865,869 ----
fifo_usage_count++;
! rtapi_print_msg(VERBOSE, "RTAPI: new_fifo %p, count = %d\n", fifo,
fifo_usage_count);
***************
*** 889,893 ****
fifo_usage_count--;
! rtapi_print_dbg(VERBOSE, "RTAPI: delete_fifo %p, count = %d\n", fifo,
fifo_usage_count);
--- 891,895 ----
fifo_usage_count--;
! rtapi_print_msg(VERBOSE, "RTAPI: delete_fifo %p, count = %d\n", fifo,
fifo_usage_count);
Index: rtapi.h
===================================================================
RCS file: /cvsroot/emc/rtapi/src/rtapi/rtapi.h,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -d -r1.14 -r1.15
*** rtapi.h 10 Aug 2003 21:13:04 -0000 1.14
--- rtapi.h 10 Aug 2003 22:44:11 -0000 1.15
***************
*** 97,101 ****
! /** 'rtapi_print_dbg()' prints debug messages. Works like rtapi_print *
* but only prints if 'level' is less than 'rtapi_msg_level'. *
* 'rtapi_msg_level' is a global. The default is 7, but it may be *
--- 97,101 ----
! /** 'rtapi_print_msg()' prints debug messages. Works like rtapi_print *
* but only prints if 'level' is less than 'rtapi_msg_level'. *
* 'rtapi_msg_level' is a global. The default is 7, but it may be *
***************
*** 226,231 ****
unsigned long int stacksize,
unsigned long int period_nsec,
! unsigned long long when,
! unsigned char uses_fp);
--- 226,230 ----
unsigned long int stacksize,
unsigned long int period_nsec,
! unsigned long long when, unsigned char uses_fp);
***************
*** 345,349 ****
* becomes a fifo handle, which points to internal data for the fifo *
* and is used for subsequent calls dealing with it. Returns a status *
! * code. */
extern int rtapi_fifo_new(int key, unsigned long int size,
--- 344,351 ----
* becomes a fifo handle, which points to internal data for the fifo *
* and is used for subsequent calls dealing with it. Returns a status *
! * code. *
! * *
! * NOTE - The fifo requires (stacksize - 256) to avoid oops messages on *
! * removal. (Does this apply to rtlinux as well ?) */
extern int rtapi_fifo_new(int key, unsigned long int size,
|
|
From: <pa...@us...> - 2003-08-10 22:44:14
|
Update of /cvsroot/emc/rtapi/examples/semaphore
In directory sc8-pr-cvs1:/tmp/cvs-serv26308/examples/semaphore
Modified Files:
master.c slave.c
Log Message:
Changed rtapi_print_dbg to rtapi_print_msg
Index: master.c
===================================================================
RCS file: /cvsroot/emc/rtapi/examples/semaphore/master.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** master.c 5 Aug 2003 03:51:00 -0000 1.5
--- master.c 10 Aug 2003 22:44:11 -0000 1.6
***************
*** 72,76 ****
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 );
--- 72,76 ----
0, master_prio,
MASTER_STACKSIZE,
! MASTER_PERIOD_NSEC, 0, RTAPI_NO_FP );
if ( retval != RTAPI_SUCCESS ) {
rtapi_print("sem master init: rtapi_task_start returned %d\n", retval );
Index: slave.c
===================================================================
RCS file: /cvsroot/emc/rtapi/examples/semaphore/slave.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** slave.c 5 Aug 2003 03:51:00 -0000 1.3
--- slave.c 10 Aug 2003 22:44:11 -0000 1.4
***************
*** 51,55 ****
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 );
--- 51,55 ----
0, slave_prio,
SLAVE_STACKSIZE,
! 0 /* not periodic */, 0, RTAPI_NO_FP );
if ( retval != RTAPI_SUCCESS ) {
rtapi_print("sem slave init: rtapi_task_start returned %d\n", retval );
|
|
From: <pa...@us...> - 2003-08-10 22:42:58
|
Update of /cvsroot/emc/rtapi/examples/fifo
In directory sc8-pr-cvs1:/tmp/cvs-serv26115
Modified Files:
common.h fifotask.c
Log Message:
Force the scope of rtf_put() to char
Index: common.h
===================================================================
RCS file: /cvsroot/emc/rtapi/examples/fifo/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 10 Aug 2003 22:42:55 -0000 1.2
***************
*** 3,7 ****
enum { FIFO_KEY = 1 };
! enum { FIFO_SIZE = 100 };
#endif /* COMMON_H */
--- 3,7 ----
enum { FIFO_KEY = 1 };
! enum { FIFO_SIZE = 1024 };
#endif /* COMMON_H */
Index: fifotask.c
===================================================================
RCS file: /cvsroot/emc/rtapi/examples/fifo/fifotask.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -d -r1.10 -r1.11
*** fifotask.c 10 Aug 2003 21:13:03 -0000 1.10
--- fifotask.c 10 Aug 2003 22:42:55 -0000 1.11
***************
*** 13,21 ****
enum { TIMER_PERIOD_NSEC = 10000000 }; /* timer period, in nanoseconds */
enum { FIFO_PERIOD_NSEC = 1000000000 }; /* timer period, in nanoseconds */
! enum { FIFO_STACKSIZE = 1024 }; /* how big the stack is */
static int count = 0;
static int len = 0;
! static int total =0;
/* task code, executed each timer interrupt */
--- 13,21 ----
enum { TIMER_PERIOD_NSEC = 10000000 }; /* timer period, in nanoseconds */
enum { FIFO_PERIOD_NSEC = 1000000000 }; /* timer period, in nanoseconds */
! enum { FIFO_STACKSIZE = 2048 }; /* how big the stack is */
static int count = 0;
static int len = 0;
! static int total = 0;
/* task code, executed each timer interrupt */
***************
*** 28,46 ****
/* write count to buffer as a 3 digit number */
tmp = count;
! for ( n = 0 ; n < 3 ; n++ ) {
! buffer[2-n] = '0' + ( tmp % 10 );
! tmp /= 10;
! }
buffer[3] = ':';
! /* write 'len' digits of 'len' */
for (n = 0; n < len; n++) {
! buffer[4+n] = '0' + len;
}
! rtapi_fifo_write(fifo, buffer, len+4);
! total += len+4;
! buffer[4+n] = '\0';
! rtapi_print("fifotask: total %d, wrote '%s',\n", total, buffer);
count++;
! len++;
if (len > 9)
len = 0;
--- 28,46 ----
/* write count to buffer as a 3 digit number */
tmp = count;
! for (n = 0; n < 3; n++) {
! buffer[2 - n] = (char) ('0' + (tmp % 10));
! tmp /= 10;
! }
buffer[3] = ':';
! /* write 'len' digits of 'len' */
for (n = 0; n < len; n++) {
! buffer[4 + n] = (char) ('0' + len);
}
! rtapi_fifo_write(fifo, buffer, len + 4);
! total += len + 4;
! buffer[4 + n] = (char) '\0';
! rtapi_print_msg(2, "fifotask: total %d, wrote '%s',\n", total, buffer);
count++;
! len++;
if (len > 9)
len = 0;
***************
*** 88,92 ****
retval = rtapi_task_start(fifo_task, fifo_code,
0, fifo_prio,
! FIFO_STACKSIZE, FIFO_PERIOD_NSEC, RTAPI_NO_FP);
if (retval != RTAPI_SUCCESS) {
rtapi_print("fifotask init: rtapi_task_start failed with %d\n", retval);
--- 88,92 ----
retval = rtapi_task_start(fifo_task, fifo_code,
0, fifo_prio,
! FIFO_STACKSIZE, FIFO_PERIOD_NSEC, 0, RTAPI_NO_FP);
if (retval != RTAPI_SUCCESS) {
rtapi_print("fifotask init: rtapi_task_start failed with %d\n", retval);
|
|
From: <jmk...@us...> - 2003-08-10 21:13:07
|
Update of /cvsroot/emc/rtapi/src/rtapi In directory sc8-pr-cvs1:/tmp/cvs-serv11923/src/rtapi Modified Files: rtai_rtapi.c rtai_ulapi.c rtapi.h rtl_rtapi.c rtl_ulapi.c ulapi.h Log Message: misc changes, work in progress Index: rtai_rtapi.c =================================================================== RCS file: /cvsroot/emc/rtapi/src/rtapi/rtai_rtapi.c,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** rtai_rtapi.c 9 Aug 2003 21:44:53 -0000 1.15 --- rtai_rtapi.c 10 Aug 2003 21:13:04 -0000 1.16 *************** *** 1,7 **** ! /* ! rtai_rtapi.c - Implementations of RT API functions declared in rtapi.h, for RTAI - */ #include <stdarg.h> /* va_* */ --- 1,42 ---- ! /** RTAPI is a library providing a uniform API for several real time * ! * operating systems. As of ver 2.0, RTLinux and RTAI are supported. */ ! ! /** This file, 'rtai_rtapi.c', implements the realtime portion of the * ! * API for the RTAI platform. The realtime API is defined in rtapi.h, * ! * which includes documentation for the API functions. The non-real- * ! * time portion of the API is defined in ulapi.h and implemented in * ! * rtai_ulapi.c (for the RTAI platform). */ ! ! /** Copyright (C) 2003 John Kasunich * ! * <jmkasunich AT users DOT sourceforge DOT net> * ! * Copyright (C) 2003 Paul Corner * ! * <paul_c AT users DOT sourceforge DOT net> * ! * This library is based on version 1.0, which was released into * ! * the public domain by its author, Fred Proctor. Thanks Fred! */ ! ! /* This library is free software; you can redistribute it and/or * ! * modify it under the terms of version 2 of the GNU General Public * ! * License as published by the Free Software Foundation. * ! * This library is distributed in the hope that it will be useful, but * ! * WITHOUT ANY WARRANTY; without even the implied warranty of * ! * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * ! * General Public License for more details. * ! * * ! * You should have received a copy of the GNU General Public License * ! * along with this library; if not, write to the Free Software * ! * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA */ ! ! /** THE AUTHORS OF THIS LIBRARY ACCEPT ABSOLUTELY NO LIABILITY FOR * ! * ANY HARM OR LOSS RESULTING FROM ITS USE. IT IS _EXTREMELY_ UNWISE * ! * TO RELY ON SOFTWARE ALONE FOR SAFETY. Any machinery capable of * ! * harming persons must have provisions for completely removing power * ! * from all motors, etc, before persons enter any danger area. All * ! * machinery must be designed to comply with local and national safety * ! * codes, and the authors of this software can not, and do not, take * ! * any responsibility for such compliance. */ ! ! /** This code was written as part of the EMC HAL project. For more * ! * information, go to www.linuxcnc.org. */ #include <stdarg.h> /* va_* */ *************** *** 27,30 **** --- 62,69 ---- #endif + #ifdef MODULE_LICENSE + MODULE_LICENSE("GPL"); + #endif + /* declare vsprintf() explicitly instead of including all of <stdio.h>, since we don't need all of it and it may cause problems */ *************** *** 69,72 **** --- 108,112 ---- /* Usage counters to keep track of new/delete calls */ + static int rtapi_usage_count = 0; static int task_usage_count = 0; static int shmem_usage_count = 0; *************** *** 74,84 **** static int fifo_usage_count = 0; static int int_usage_count = 0; ! static unsigned int timer_period = 0; /* Flag used to keep track of timer state */ static int timer_running = 0; ! int debug = 1; ! MODULE_PARM(debug, "i"); ! MODULE_PARM_DESC(debug, "Sets the verbosity of the debug prints"); /* Internal function for the proc_fs system. */ --- 114,127 ---- static int fifo_usage_count = 0; static int int_usage_count = 0; ! static int timer_period = 0; /* Flag used to keep track of timer state */ static int timer_running = 0; ! int rtapi_msg_level; /* global used for message printing */ ! ! static int msg; /* short name, for use in insmod command */ ! MODULE_PARM(msg, "i"); ! MODULE_PARM_DESC(msg, "Verbosity, higher value = more messages (default=7)"); ! /* Internal function for the proc_fs system. */ *************** *** 90,93 **** --- 133,137 ---- PROC_PRINT("******* RTAI rtapi usage *******\n"); PROC_PRINT(" Version = $Revision$\n"); + PROC_PRINT(" Modules Loaded = %i\n", rtapi_usage_count); PROC_PRINT(" Tasks running = %i\n", task_usage_count); PROC_PRINT(" Shared memory = %i\n", shmem_usage_count); *************** *** 95,99 **** PROC_PRINT(" Semaphores used = %i\n", sem_usage_count); PROC_PRINT("Active Interrupts = %i\n", int_usage_count); ! PROC_PRINT(" Timer period = %inSec\n", timer_period); PROC_PRINT(" Timer status = %i\n", timer_running); PROC_PRINT("\n"); --- 139,143 ---- PROC_PRINT(" Semaphores used = %i\n", sem_usage_count); PROC_PRINT("Active Interrupts = %i\n", int_usage_count); ! PROC_PRINT(" Timer period = %i nSec\n", timer_period); PROC_PRINT(" Timer status = %i\n", timer_running); PROC_PRINT("\n"); *************** *** 102,151 **** #endif ! /* Priority functions. RTAI uses 0 as the highest priority, as the ! number increases, the actual priority of the task decreases. */ ! ! int rtapi_prio_highest(void) ! { ! return 0; ! } ! ! int rtapi_prio_lowest(void) { ! return RT_LOWEST_PRIORITY; } ! ! int rtapi_prio_next_higher(int prio) { ! /* return a valid priority for out of range arg */ ! if (prio <= rtapi_prio_highest()) { ! return rtapi_prio_highest(); ! } ! if (prio > rtapi_prio_lowest()) { ! return rtapi_prio_lowest(); ! } ! ! /* return next higher priority for in-range arg */ ! return prio - 1; } ! int rtapi_prio_next_lower(int prio) { ! /* return a valid priority for out of range arg */ ! if (prio >= rtapi_prio_lowest()) { ! return rtapi_prio_lowest(); ! } ! if (prio < rtapi_prio_highest()) { ! return rtapi_prio_highest(); ! } ! /* return next lower priority for in-range arg */ ! return prio + 1; ! } ! - static int rtapi_init(void) - { /* register a proc entry */ #ifdef CONFIG_PROC_FS --- 146,173 ---- #endif ! /* For RTAI, all init is done when the rtapi kernel module ! is insmoded. The rtapi_init() and rtapi_exit() functions ! do nothing. For other RTOSes, things might be different, ! especially if the RTOS does not use modules. */ ! int rtapi_init (void) { ! rtapi_usage_count++; ! return RTAPI_SUCCESS; } ! int rtapi_exit (void) { ! rtapi_usage_count--; ! return RTAPI_SUCCESS; } + /* here is where the real init happens */ ! int init_module(void) { ! /* get the message level from insmod command line */ ! rtapi_msg_level = msg; /* register a proc entry */ #ifdef CONFIG_PROC_FS *************** *** 169,173 **** ! static int rtapi_exit(void) { /* Remove proc dir entry */ --- 191,195 ---- ! void cleanup_module (void) { /* Remove proc dir entry */ *************** *** 209,220 **** ! int init_module(void) { ! return (rtapi_init()); } ! void cleanup_module(void) { ! rtapi_exit(); } --- 231,280 ---- ! ! ! ! ! ! /* Priority functions. RTAI uses 0 as the highest priority, as the ! number increases, the actual priority of the task decreases. */ ! ! int rtapi_prio_highest(void) { ! return 0; } ! ! int rtapi_prio_lowest(void) { ! return RT_LOWEST_PRIORITY; ! } ! ! ! int rtapi_prio_next_higher(int prio) ! { ! /* return a valid priority for out of range arg */ ! if (prio <= rtapi_prio_highest()) { ! return rtapi_prio_highest(); ! } ! if (prio > rtapi_prio_lowest()) { ! return rtapi_prio_lowest(); ! } ! ! /* return next higher priority for in-range arg */ ! return prio - 1; ! } ! ! ! int rtapi_prio_next_lower(int prio) ! { ! /* return a valid priority for out of range arg */ ! if (prio >= rtapi_prio_lowest()) { ! return rtapi_prio_lowest(); ! } ! if (prio < rtapi_prio_highest()) { ! return rtapi_prio_highest(); ! } ! /* return next lower priority for in-range arg */ ! return prio + 1; } *************** *** 236,243 **** rtapi_print_dbg(VERBOSE, ! "RTAPI: clock_set_period ( %ld ) - Actual = %inSec\n", nsecs, timer_period); ! return RTAPI_SUCCESS; } --- 296,303 ---- rtapi_print_dbg(VERBOSE, ! "RTAPI: clock_set_period ( %ld ) - Actual = %i nSec\n", nsecs, timer_period); ! return timer_period; } *************** *** 415,440 **** to suspend(). */ retval = rt_task_resume(&(task->ostask)); - if (retval != 0) { - return RTAPI_FAIL; - } - return RTAPI_SUCCESS; - } - - - int rtapi_task_set_period(rtapi_task_handle task, - unsigned long int period_nsec) - { - int retval; - - /* validate task handle */ - if (task == NULL) { - return RTAPI_BADH; - } - if (task->magic != TASK_MAGIC) { - return RTAPI_BADH; - } - - retval = rt_task_make_periodic(&(task->ostask), rt_get_time(), - nano2count((RTIME) period_nsec)); if (retval != 0) { return RTAPI_FAIL; --- 475,478 ---- Index: rtai_ulapi.c =================================================================== RCS file: /cvsroot/emc/rtapi/src/rtapi/rtai_ulapi.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** rtai_ulapi.c 10 Aug 2003 12:07:05 -0000 1.4 --- rtai_ulapi.c 10 Aug 2003 21:13:04 -0000 1.5 *************** *** 1,7 **** ! /* ! rtai_ulapi.c - Implementation of user-level API to RTAI modules - */ #include <stdio.h> /* sprintf() */ #include <stddef.h> /* NULL, needed for rtai_shm.h */ --- 1,43 ---- ! /** RTAPI is a library providing a uniform API for several real time * ! * operating systems. As of ver 2.0, RTLinux and RTAI are supported. */ ! ! /** This file, 'rtai_ulapi.c', implements the non-realtime portion of * ! * the API for the RTAI platform. The non-realtime API is defined in * ! * ulapi.h, which includes documentation for the API functions. The * ! * realtime portion of the API is defined in rtapi.h and implemented * ! * in rtai_rtapi.c (for the RTAI platform). */ ! ! /** Copyright (C) 2003 John Kasunich * ! * <jmkasunich AT users DOT sourceforge DOT net> * ! * Copyright (C) 2003 Paul Corner * ! * <paul_c AT users DOT sourceforge DOT net> * ! * This library is based on version 1.0, which was released into * ! * the public domain by its author, Fred Proctor. Thanks Fred! */ ! ! /* This library is free software; you can redistribute it and/or * ! * modify it under the terms of version 2.1 of the GNU Lesser General * ! * Public License as published by the Free Software Foundation. * ! * This library is distributed in the hope that it will be useful, but * ! * WITHOUT ANY WARRANTY; without even the implied warranty of * ! * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * ! * Lesser General Public License for more details. * ! * * ! * You should have received a copy of the GNU General Lesser Public * ! * License along with this library; if not, write to the Free Software * ! * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA */ ! ! /** THE AUTHORS OF THIS LIBRARY ACCEPT ABSOLUTELY NO LIABILITY FOR * ! * ANY HARM OR LOSS RESULTING FROM ITS USE. IT IS _EXTREMELY_ UNWISE * ! * TO RELY ON SOFTWARE ALONE FOR SAFETY. Any machinery capable of * ! * harming persons must have provisions for completely removing power * ! * from all motors, etc, before persons enter any danger area. All * ! * machinery must be designed to comply with local and national safety * ! * codes, and the authors of this software can not, and do not, take * ! * any responsibility for such compliance. */ ! ! /** This code was written as part of the EMC HAL project. For more * ! * information, go to www.linuxcnc.org. */ ! #include <stdio.h> /* sprintf() */ #include <stddef.h> /* NULL, needed for rtai_shm.h */ *************** *** 230,234 **** } ! /* get whatever data is available */ retval = write(fifo->fd, buf, size); if (retval < 0) { --- 266,270 ---- } ! /* put whatever data will fit */ retval = write(fifo->fd, buf, size); if (retval < 0) { Index: rtapi.h =================================================================== RCS file: /cvsroot/emc/rtapi/src/rtapi/rtapi.h,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** rtapi.h 9 Aug 2003 19:43:09 -0000 1.13 --- rtapi.h 10 Aug 2003 21:13:04 -0000 1.14 *************** *** 2,5 **** --- 2,45 ---- #define RTAPI_H + /** RTAPI is a library providing a uniform API for several real time * + * operating systems. As of ver 2.0, RTLinux and RTAI are supported. */ + + /** This file, 'rtapi.h', defines the API as seen by realtime tasks. * + * The non-realtime version of the API is defined in 'ulapi.h'. The * + * realtime interface is implemented in files named 'xxx_rtapi.c', * + * where xxx is the RTOS. Likewise, the non-realtime interface is * + * implemented in files named 'xxx_ulapi.c' */ + + /** Copyright (C) 2003 John Kasunich * + * <jmkasunich AT users DOT sourceforge DOT net> * + * Copyright (C) 2003 Paul Corner * + * <paul_c AT users DOT sourceforge DOT net> * + * This library is based on version 1.0, which was released into * + * the public domain by its author, Fred Proctor. Thanks Fred! */ + + /* This library is free software; you can redistribute it and/or * + * modify it under the terms of version 2.1 of the GNU Lesser General * + * Public License as published by the Free Software Foundation. * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA */ + + /** THE AUTHORS OF THIS LIBRARY ACCEPT ABSOLUTELY NO LIABILITY FOR * + * ANY HARM OR LOSS RESULTING FROM ITS USE. IT IS _EXTREMELY_ UNWISE * + * TO RELY ON SOFTWARE ALONE FOR SAFETY. Any machinery capable of * + * harming persons must have provisions for completely removing power * + * from all motors, etc, before persons enter any danger area. All * + * machinery must be designed to comply with local and national safety * + * codes, and the authors of this software can not, and do not, take * + * any responsibility for such compliance. */ + + /** This code was written as part of the EMC HAL project. For more * + * information, go to www.linuxcnc.org. */ + /** These status codes are returned by many RTAPI functions. */ *************** *** 13,24 **** #define RTAPI_NOTFND -7 /* object not found */ #define RTAPI_FAIL -8 /* operation failed */ ! /* flags for the rtapi_task_start() call */ ! #define RTAPI_NO_FP 0 ! #define RTAPI_USES_FP 1 /** Typedefs for object handles. The structs to which these handles * * refer are private, and may vary from one RTOS to another. * - * In fact, don't even count on handles always being pointers. */ --- 53,62 ---- #define RTAPI_NOTFND -7 /* object not found */ #define RTAPI_FAIL -8 /* operation failed */ + #define RTAPI_LATE -9 /* task could not start when requested */ ! /* NOTE: RTAPI assumes that ints are at least 32 bits long */ /** Typedefs for object handles. The structs to which these handles * * refer are private, and may vary from one RTOS to another. * * In fact, don't even count on handles always being pointers. */ *************** *** 29,48 **** ! /** 'rtapi_init() sets up the RTAPI. It must be called before calling * ! * any rtapi functions. Returns a status code, as defined above. */ ! /* extern int rtapi_init( void ); */ - /** 'ulapi_exit()' shuts down and cleans up the user space interface * - * to the RTAPI. It must be called before program exit. Returns a * - * status code. */ ! /* extern int rtapi_exit( void ); */ ! /** The mapping of actual priority to priority number depends on the * ! * RTOS. The 'rtapi_prio_xxxx()' functions provide a portable way to * ! * determine priority. Priorities range from 'rtapi_prio_lowest()' * * to 'rtapi_prio_highest()', inclusive. To use this API, use one of * * two methods: * --- 67,124 ---- ! /*********************************************************************** ! * GENERAL PURPOSE FUNCTIONS * ! ************************************************************************/ ! /** 'rtapi_init() sets up the RTAPI. It must be called by any module * ! * that intends to use the API, before any other RTAPI calls. Returns a * ! * status code, as defined above. Increments a usage count. */ + extern int rtapi_init(void); ! /** 'rtapi_exit()' shuts down and cleans up the RTAPI. It must be * ! * called prior to exit by any module that called rtapi_init. Returns * ! * a status code. Decrements the usage count maintined by rtapi_init. */ + extern int rtapi_exit(void); ! ! /** 'rtapi_print()' prints a printf style message. Depending on the * ! * RTOS, the message may be printed to stdout, or to the kernel message * ! * log, etc. The calling syntax and format string is similar to printf * ! * except that floating point and longlongs may not be supported. For * ! * some RTOS's, a 256 byte buffer is used, so the format line and * ! * arguments should not produce a line more than 255 bytes long. Does * ! * not block, but can take a fairly long time, depending on the format * ! * string and OS. */ ! ! extern void rtapi_print(const char *fmt, ...); ! ! ! /** 'rtapi_print_dbg()' prints debug messages. Works like rtapi_print * ! * but only prints if 'level' is less than 'rtapi_msg_level'. * ! * 'rtapi_msg_level' is a global. The default is 7, but it may be * ! * changed. The rtapi uses the same levels for its own messages. * ! * The defines below are used for rtapi messages, and recommended for * ! * user messages as well. */ ! ! extern int rtapi_msg_level; ! ! #define RTAPI_MSG_ERR 3 ! #define RTAPI_MSG_WARN 4 ! #define RTAPI_MSG_INFO 6 ! #define RTAPI_MSG_DBG 7 ! ! extern void rtapi_print_msg(int level, const char *fmt, ...); ! ! ! /*********************************************************************** ! * TASK RELATED FUNCTIONS * ! ************************************************************************/ ! ! /** The 'rtapi_prio_xxxx()' functions provide a portable way to set * ! * task priority. The mapping of actual priority to priority number * ! * depends on the RTOS. Priorities range from 'rtapi_prio_lowest()' * * to 'rtapi_prio_highest()', inclusive. To use this API, use one of * * two methods: * *************** *** 65,83 **** * All task periods, whether specified when starting the task, or * * changed later, will be rounded to an integer multiple of the * ! * period set by 'rtapi_clock_set_period()'. Note that there is only * ! * one hardware clock in the PC, and this call stops and resets it. * ! * So this function only needs to be called once, even if there are * ! * multiple realtime tasks in multiple kernel modules. Calling this * * function after realtime tasks have been started may disrupt the * ! * tasks. Returns a status code. The upper limit for the timer period * ! * may be as low as 0.01 seconds, so be sure to check for errors. */ extern int rtapi_clock_set_period(unsigned long int nsecs); ! /** rtapi_get_time returns the time in nano seconds since the timer * ! * started. Returns an integer value as a 2^63 value. */ extern long long int rtapi_get_time(void); /** 'rtapi_task_new()' is the first step in creating a task. Allocs * * and initializes internal rtapi and rtos data related to the task. * --- 141,168 ---- * All task periods, whether specified when starting the task, or * * changed later, will be rounded to an integer multiple of the * ! * period set by 'rtapi_clock_set_period()'. Note that there may be * ! * only one hardware clock in the system, and this call may stop and * ! * resets it. So this function only needs to be called once, even if * ! * there are multiple realtime tasks in multiple modules. Calling this * * function after realtime tasks have been started may disrupt the * ! * tasks. If the call fails, it returns a negative status code. On * ! * success, it either returns 0, or (if the RTOS supports it), the * ! * actual period, which may not be exactly what was requested. The * ! * upper and lower limits for the timer period are RTOS dependent, so * ! * be sure to check for errors. */ extern int rtapi_clock_set_period(unsigned long int nsecs); ! ! /** rtapi_get_time returns the current time in nanoseconds. Depending * ! * on the RTOS, this may be time since boot, or time since the clock * ! * period was set, or some other time. Its absolute value means * ! * nothing, but it is monotonically increasing (at least for the first * ! * 200 years or so), and can be used to schedule future events, or to * ! * time the duration of some activity. Returns a 2^63 value. */ extern long long int rtapi_get_time(void); + /** 'rtapi_task_new()' is the first step in creating a task. Allocs * * and initializes internal rtapi and rtos data related to the task. * *************** *** 107,113 **** * priority functions above. * * 'stacksize' is the amount of stack to be reserved for the task - be * ! * generous, hardware interrupts may use the same stack. 'period_nsec' * ! * is the task period in nanoseconds, which will be rounded to the * ! * nearest multiple of the global clock period. * * If non-zero, 'uses_fp' tells the OS that the task uses floating * * point so it can save the FPU registers on a task switch. Failing * --- 192,213 ---- * priority functions above. * * 'stacksize' is the amount of stack to be reserved for the task - be * ! * generous, hardware interrupts may use the same stack. * ! * 'period_nsec' is the task period in nanoseconds, which will be * ! * rounded to the nearest multiple of the global clock period. If * ! * 'period_nsec' is zero, the task is non-periodic. It will be started * ! * immediately (does not use 'when'), and run until it returns, pauses, * ! * or makes a blocking call. * ! * 'when' is the desired start time for the task. If zero, the task * ! * will start immediately. Otherwise, the task will be scheduled to * ! * start at the appropriate time. If the RTOS doesn't support starting * ! * tasks at a specific time, it will return RTAPI_UNSUP and the task * ! * will not be started. Otherwise, the task will be scheduled to start * ! * at the desired time. If the desired time has already passed, the * ! * function will return RTAPI_LATE, and the task start time is unknown. * ! * Be advised that some RTOSs may execute the task once as soon as it * ! * is scheduled, even if it is not to start until some time in the * ! * future. Tasks should use flags or another mechanism to prevent them * ! * from doing anything prematurely. 'when' uses time as returned by * ! * rtapi_get_time(). * * If non-zero, 'uses_fp' tells the OS that the task uses floating * * point so it can save the FPU registers on a task switch. Failing * *************** *** 118,126 **** * (preferred) or within a realtime task. May block. */ ! /* FIXME - Fred, you have code in the implementations of this function ! that takes special action when 'period_nsec' is zero. What did you have ! in mind with that? Non-periodic tasks that simply run until they either ! return, pause, wait, or block? ! */ extern int rtapi_task_start(rtapi_task_handle task, --- 218,223 ---- * (preferred) or within a realtime task. May block. */ ! #define RTAPI_NO_FP 0 ! #define RTAPI_USES_FP 1 extern int rtapi_task_start(rtapi_task_handle task, *************** *** 129,132 **** --- 226,230 ---- unsigned long int stacksize, unsigned long int period_nsec, + unsigned long long when, unsigned char uses_fp); *************** *** 149,161 **** - /** 'rtapi_task_set_period()' sets the period of a task. The new * - * period is 'period_nsec', rounded to the nearest integer multiple of * - * the global period as set by 'rtapi_clock_set_period()'. Returns a * - * status code. */ - - extern int rtapi_task_set_period(rtapi_task_handle task, - unsigned long int period_nsec); - - /** 'rtapi_wait()' suspends execution of the current task until the * * next period. At the beginning of the next period, execution will * --- 247,250 ---- *************** *** 173,176 **** --- 262,269 ---- + /*********************************************************************** + * SHARED MEMORY RELATED FUNCTIONS * + ************************************************************************/ + /** 'rtapi_shmem_new()' allocates a block of shared memory. 'key' * * identifies the memory block, all modules wishing to access the same * *************** *** 200,259 **** ! /** 'rtapi_print()' prints a printf style message. Depending on the * ! * RTOS, the message may be printed to stdout, or to the kernel message * ! * log, etc. The calling syntax and format string is similar to printf * ! * except that floating point may not be supported. For some RTOS's, * ! * a 256 byte buffer is used, so the format line and arguments should * ! * not produce a line more than 255 bytes long. Does not block, but * ! * can take a fairly long time, depending on the format string and OS. */ ! ! extern void rtapi_print(const char *fmt, ...); ! ! ! /** 'rtapi_print_dbg()' prints a printf style message similar to * ! * to rtapi_print. If debug is less than the value used when the rtapi * ! * was loaded, then the message is printed. */ ! ! extern void rtapi_print_dbg(int debug, const char *fmt, ...); ! ! ! /** 'rtapi_outb() writes 'byte' to 'port'. * ! * Note: This function does nothing on the simulated RTOS. */ ! ! extern void rtapi_outb(unsigned char byte, unsigned int port); ! ! ! /** 'rtapi_inb() gets a byte from 'port'. Returns the byte. * ! * Note: This function always returns zero on the simulated RTOS. */ ! ! extern unsigned char rtapi_inb(unsigned int port); ! ! ! /** 'rtapi_assign_interrupt_handler()' is used to set up a handler for * ! * a hardware interrupt. 'irq' is the interrupt number, and 'handler' * ! * is a pointer to a function taking no arguements and returning void. * ! * 'handler will be called when the interrupt occurs. Returns a status * ! * code. Note: The simulated RTOS does not support interrupts. */ ! ! extern int rtapi_assign_interrupt_handler(unsigned int irq, ! void (*handler) (void)); ! ! ! /** 'rtapi_free_interrupt_handler()' removes an interrupt handler that * ! * was previously installed by rtapi_assign_interrupt_handler(). 'irq' * ! * is the interrupt number. Removing a realtime module without freeing * ! * any handlers it has installed will almost certainly crash the box. * ! * Returns RTAPI_SUCCESS or RTAPI_INVAL. */ ! ! extern int rtapi_free_interrupt_handler(unsigned int irq); ! ! ! /** 'rtapi_enable_interrupt()' and 'rtapi_disable_interrupt()' are * ! * are used to enable and disable interrupts, presumably ones that have * ! * handlers assigned to them. Returns a status code. */ ! ! extern int rtapi_enable_interrupt(unsigned int irq); ! extern int rtapi_disable_interrupt(unsigned int irq); ! /** 'rtapi_sem_new()' creates a realtime semaphore. On success, * --- 293,299 ---- ! /*********************************************************************** ! * SEMAPHORE RELATED FUNCTIONS * ! ************************************************************************/ /** 'rtapi_sem_new()' creates a realtime semaphore. On success, * *************** *** 296,299 **** --- 336,343 ---- + /*********************************************************************** + * FIFO RELATED FUNCTIONS * + ************************************************************************/ + /** 'rtapi_fifo_new()' creates a realtime fifo. 'key' identifies the * * fifo, all modules wishing to access the same fifo must use the same * *************** *** 332,335 **** --- 376,425 ---- char *buf, unsigned long int size); + + /*********************************************************************** + * INTERRUPT RELATED FUNCTIONS * + ************************************************************************/ + + /** 'rtapi_assign_interrupt_handler()' is used to set up a handler for * + * a hardware interrupt. 'irq' is the interrupt number, and 'handler' * + * is a pointer to a function taking no arguements and returning void. * + * 'handler will be called when the interrupt occurs. Returns a status * + * code. Note: The simulated RTOS does not support interrupts. */ + + extern int rtapi_assign_interrupt_handler(unsigned int irq, + void (*handler) (void)); + + + /** 'rtapi_free_interrupt_handler()' removes an interrupt handler that * + * was previously installed by rtapi_assign_interrupt_handler(). 'irq' * + * is the interrupt number. Removing a realtime module without freeing * + * any handlers it has installed will almost certainly crash the box. * + * Returns RTAPI_SUCCESS or RTAPI_INVAL. */ + + extern int rtapi_free_interrupt_handler(unsigned int irq); + + + /** 'rtapi_enable_interrupt()' and 'rtapi_disable_interrupt()' are * + * are used to enable and disable interrupts, presumably ones that have * + * handlers assigned to them. Returns a status code. */ + + extern int rtapi_enable_interrupt(unsigned int irq); + extern int rtapi_disable_interrupt(unsigned int irq); + + + /*********************************************************************** + * I/O RELATED FUNCTIONS * + ************************************************************************/ + + /** 'rtapi_outb() writes 'byte' to 'port'. * + * Note: This function does nothing on the simulated RTOS. */ + + extern void rtapi_outb(unsigned char byte, unsigned int port); + + + /** 'rtapi_inb() gets a byte from 'port'. Returns the byte. * + * Note: This function always returns zero on the simulated RTOS. */ + + extern unsigned char rtapi_inb(unsigned int port); #endif /* RTAPI_H */ Index: rtl_rtapi.c =================================================================== RCS file: /cvsroot/emc/rtapi/src/rtapi/rtl_rtapi.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** rtl_rtapi.c 9 Aug 2003 19:43:09 -0000 1.4 --- rtl_rtapi.c 10 Aug 2003 21:13:04 -0000 1.5 *************** *** 5,8 **** --- 5,21 ---- */ + /* This code is hereby released into the public domain. */ + /* NO GUARANTEE OF ANY KIND IS PROVIDED. THE CREATERS OF THIS */ + /* CODE ACCEPT ABSOLUTELY NO LIABILITY FOR ANY HARM OR LOSSES */ + /* RESULTING FROM ITS USE. IT IS _EXTREMELY_ UNWISE TO RELY ON */ + /* SOFTWARE ALONE FOR SAFETY. Any machinery capable of harming */ + /* persons should have provisions for positively removing power */ + /* from all motors, etc, before persons enter any danger area. */ + + /* This code was written as part of the EMC project. For more */ + /* information, go to www.linuxcnc.org. */ + + /* Authors: Fred Proctor, John Kasunich, Paul Corner */ + #include <stdarg.h> /* va_* */ #include <linux/module.h> *************** *** 33,36 **** --- 46,54 ---- #endif + #ifdef MODULE_LICENSE + MODULE_LICENSE("GPL and additional rights"); + /* The additional rights are you can do anything you want. */ + #endif + /* declare vsprintf() explicitly instead of including all of <stdio.h>, since we don't need all of it and it may cause problems */ *************** *** 210,215 **** of a task are corrupted, such that you can ask for a 1 second task, and instead get one that runs every 0.01 sec, with no ! error codes or other way of detecting it. Stupid! To avoid ! this we only allow a timer period of 0.01 seconds or less. Note that you can still run tasks at slower rates, but the timer must run at least 100Hz. */ --- 228,233 ---- of a task are corrupted, such that you can ask for a 1 second task, and instead get one that runs every 0.01 sec, with no ! error codes or other way of detecting it. To avoid this ! we only allow a timer period of 0.01 seconds or less. Note that you can still run tasks at slower rates, but the timer must run at least 100Hz. */ *************** *** 472,497 **** } retval = pthread_wakeup_np(task->ostask); - if (retval != 0) { - return RTAPI_FAIL; - } - return RTAPI_SUCCESS; - } - - - int rtapi_task_set_period(rtapi_task_handle task, - unsigned long int period_nsec) - { - int retval; - - /* validate task handle */ - if (task == NULL) { - return RTAPI_BADH; - } - if (task->magic != TASK_MAGIC) { - return RTAPI_BADH; - } - - retval = pthread_make_periodic_np(*((pthread_t *) task), - gethrtime() + period_nsec, period_nsec); if (retval != 0) { return RTAPI_FAIL; --- 490,493 ---- Index: rtl_ulapi.c =================================================================== RCS file: /cvsroot/emc/rtapi/src/rtapi/rtl_ulapi.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** rtl_ulapi.c 9 Aug 2003 19:43:09 -0000 1.4 --- rtl_ulapi.c 10 Aug 2003 21:13:04 -0000 1.5 *************** *** 4,7 **** --- 4,22 ---- Implementation of user-level API to RTL modules */ + + /* This code is hereby released into the public domain. */ + /* NO GUARANTEE OF ANY KIND IS PROVIDED. THE CREATERS OF THIS */ + /* CODE ACCEPT ABSOLUTELY NO LIABILITY FOR ANY HARM OR LOSSES */ + /* RESULTING FROM ITS USE. IT IS _EXTREMELY_ UNWISE TO RELY ON */ + /* SOFTWARE ALONE FOR SAFETY. Any machinery capable of harming */ + /* persons should have provisions for positively removing power */ + /* from all motors, etc, before persons enter any danger area. */ + + /* This code was written as part of the EMC project. For more */ + /* information, go to www.linuxcnc.org. */ + + /* Authors: Fred Proctor, John Kasunich, Paul Corner */ + + #include <stdio.h> /* sprintf() */ #include <stddef.h> /* size_t, needed by mbuff.h */ *************** *** 255,259 **** /* get whatever data is available */ retval = read(fifo->fd, buf, size); ! if (retval < 0) { return ULAPI_FAIL; } --- 270,274 ---- /* get whatever data is available */ retval = read(fifo->fd, buf, size); ! if (retval <= 0) { return ULAPI_FAIL; } *************** *** 278,282 **** } ! /* get whatever data is available */ retval = write(fifo->fd, buf, size); if (retval < 0) { --- 293,297 ---- } ! /* put whatever data will fit */ retval = write(fifo->fd, buf, size); if (retval < 0) { Index: ulapi.h =================================================================== RCS file: /cvsroot/emc/rtapi/src/rtapi/ulapi.h,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** ulapi.h 9 Aug 2003 19:43:09 -0000 1.6 --- ulapi.h 10 Aug 2003 21:13:04 -0000 1.7 *************** *** 2,5 **** --- 2,45 ---- #define ULAPI_H + /** RTAPI is a library providing a uniform API for several real time * + * operating systems. As of ver 2.0, RTLinux and RTAI are supported. */ + + /** This file, 'ulapi.h', defines the API as seen by non-realtime * + * programs running in user space. The realtime version of the API is * + * defined in 'rtapi.h'. The non-realtime interface is implemented in * + * files named 'xxx_ulapi.c', where xxx is the RTOS. Likewise, the * + * realtime interface is implemented in files named 'xxx_rtapi.c' */ + + /** Copyright (C) 2003 John Kasunich * + * <jmkasunich AT users DOT sourceforge DOT net> * + * Copyright (C) 2003 Paul Corner * + * <paul_c AT users DOT sourceforge DOT net> * + * This library is based on version 1.0, which was released into * + * the public domain by its author, Fred Proctor. Thanks Fred! */ + + /* This library is free software; you can redistribute it and/or * + * modify it under the terms of version 2.1 of the GNU Lesser General * + * Public License as published by the Free Software Foundation. * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA */ + + /** THE AUTHORS OF THIS LIBRARY ACCEPT ABSOLUTELY NO LIABILITY FOR * + * ANY HARM OR LOSS RESULTING FROM ITS USE. IT IS _EXTREMELY_ UNWISE * + * TO RELY ON SOFTWARE ALONE FOR SAFETY. Any machinery capable of * + * harming persons must have provisions for completely removing power * + * from all motors, etc, before persons enter any danger area. All * + * machinery must be designed to comply with local and national safety * + * codes, and the authors of this software can not, and do not, take * + * any responsibility for such compliance. */ + + /** This code was written as part of the EMC HAL project. For more * + * information, go to www.linuxcnc.org. */ + /** These status codes are returned by many ULAPI functions. */ *************** *** 17,21 **** /** Typedefs for object handles. The structs to which these handles * ! * refer are private, and may vary from one RTOS to another. */ typedef struct ulapi_shmem *ulapi_shmem_handle; --- 57,62 ---- /** Typedefs for object handles. The structs to which these handles * ! * refer are private, and may vary from one RTOS to another. * ! * In fact, don't even count on handles always being pointers. */ typedef struct ulapi_shmem *ulapi_shmem_handle; *************** *** 23,26 **** --- 64,71 ---- + /*********************************************************************** + * GENERAL PURPOSE FUNCTIONS * + ************************************************************************/ + /** 'ulapi_init() sets up the user space interface to the RTAPI. It * * must be called before calling any ulapi functions. Returns a statis * *************** *** 37,40 **** --- 82,89 ---- + /*********************************************************************** + * SHARED MEMORY RELATED FUNCTIONS * + ************************************************************************/ + /** 'ulapi_shmem_new()' allocates a block of shared memory. 'key' * * identifies the memory block, all modules wishing to access the same * *************** *** 61,64 **** --- 110,117 ---- extern int ulapi_shmem_delete(ulapi_shmem_handle shmem); + + /*********************************************************************** + * FIFO RELATED FUNCTIONS * + ************************************************************************/ /** 'ulapi_fifo_new()' opens a fifo for communication with realtime * |
|
From: <jmk...@us...> - 2003-08-10 21:13:07
|
Update of /cvsroot/emc/rtapi/examples/shmem In directory sc8-pr-cvs1:/tmp/cvs-serv11923/examples/shmem Modified Files: Makefile Log Message: misc changes, work in progress Index: Makefile =================================================================== RCS file: /cvsroot/emc/rtapi/examples/shmem/Makefile,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Makefile 5 Aug 2003 03:51:00 -0000 1.3 --- Makefile 10 Aug 2003 21:13:04 -0000 1.4 *************** *** 50,62 **** # DO NOT DELETE - /home/John/emcdev/rtapi/lib/shmemtask.o: /home/John/emcdev/rtapi/include/rtapi.h - /home/John/emcdev/rtapi/lib/shmemtask.o: /home/John/emcdev/rtapi/include/rtapi_app.h /home/John/emcdev/rtapi/lib/shmemtask.o: common.h - /home/John/emcdev/rtapi/lib/shmemusr.o: /home/John/emcdev/rtapi/include/ulapi.h /home/John/emcdev/rtapi/lib/shmemusr.o: common.h - /home/John/emcdev/rtapi/rtlib/shmemtask.o: /home/John/emcdev/rtapi/include/rtapi.h - /home/John/emcdev/rtapi/rtlib/shmemtask.o: /home/John/emcdev/rtapi/include/rtapi_app.h /home/John/emcdev/rtapi/rtlib/shmemtask.o: common.h - /home/John/emcdev/rtapi/rtlib/shmemusr.o: /home/John/emcdev/rtapi/include/ulapi.h /home/John/emcdev/rtapi/rtlib/shmemusr.o: common.h --- 50,56 ---- |
|
From: <jmk...@us...> - 2003-08-10 21:13:07
|
Update of /cvsroot/emc/rtapi/examples/timertask In directory sc8-pr-cvs1:/tmp/cvs-serv11923/examples/timertask Modified Files: Makefile Log Message: misc changes, work in progress Index: Makefile =================================================================== RCS file: /cvsroot/emc/rtapi/examples/timertask/Makefile,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Makefile 5 Aug 2003 03:51:00 -0000 1.3 --- Makefile 10 Aug 2003 21:13:04 -0000 1.4 *************** *** 32,36 **** # DO NOT DELETE - - /home/John/emcdev/rtapi/rtlib/timertask.o: /home/John/emcdev/rtapi/include/rtapi.h - /home/John/emcdev/rtapi/rtlib/timertask.o: /home/John/emcdev/rtapi/include/rtapi_app.h --- 32,33 ---- |
|
From: <jmk...@us...> - 2003-08-10 21:13:06
|
Update of /cvsroot/emc/rtapi/examples/fifo
In directory sc8-pr-cvs1:/tmp/cvs-serv11923/examples/fifo
Modified Files:
Makefile fifotask.c
Log Message:
misc changes, work in progress
Index: Makefile
===================================================================
RCS file: /cvsroot/emc/rtapi/examples/fifo/Makefile,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** Makefile 5 Aug 2003 03:51:00 -0000 1.3
--- Makefile 10 Aug 2003 21:13:03 -0000 1.4
***************
*** 50,62 ****
# DO NOT DELETE
- /home/John/emcdev/rtapi/lib/fifotask.o: /home/John/emcdev/rtapi/include/rtapi.h
- /home/John/emcdev/rtapi/lib/fifotask.o: /home/John/emcdev/rtapi/include/rtapi_app.h
/home/John/emcdev/rtapi/lib/fifotask.o: common.h
- /home/John/emcdev/rtapi/lib/fifousr.o: /home/John/emcdev/rtapi/include/ulapi.h
/home/John/emcdev/rtapi/lib/fifousr.o: common.h
- /home/John/emcdev/rtapi/rtlib/fifotask.o: /home/John/emcdev/rtapi/include/rtapi.h
- /home/John/emcdev/rtapi/rtlib/fifotask.o: /home/John/emcdev/rtapi/include/rtapi_app.h
/home/John/emcdev/rtapi/rtlib/fifotask.o: common.h
- /home/John/emcdev/rtapi/rtlib/fifousr.o: /home/John/emcdev/rtapi/include/ulapi.h
/home/John/emcdev/rtapi/rtlib/fifousr.o: common.h
--- 50,56 ----
Index: fifotask.c
===================================================================
RCS file: /cvsroot/emc/rtapi/examples/fifo/fifotask.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** fifotask.c 9 Aug 2003 19:35:28 -0000 1.9
--- fifotask.c 10 Aug 2003 21:13:03 -0000 1.10
***************
*** 15,36 ****
enum { FIFO_STACKSIZE = 1024 }; /* how big the stack is */
! static int count = 1;
/* task code, executed each timer interrupt */
void fifo_code(int arg)
{
! int n;
char buffer[FIFO_SIZE + 1] = { '\n' };
while (1) {
! for (n = 0; n < count; n++) {
! buffer[n] = '0' + count;
}
! rtapi_fifo_write(fifo, buffer, count);
! buffer[n] = '\0';
! rtapi_print_dbg(4, "fifotask: wrote '%s'\n", buffer);
count++;
! if (count > 9)
! count = 1;
rtapi_wait();
}
--- 15,48 ----
enum { FIFO_STACKSIZE = 1024 }; /* how big the stack is */
! static int count = 0;
! static int len = 0;
! static int total =0;
/* task code, executed each timer interrupt */
void fifo_code(int arg)
{
! int n, tmp;
char buffer[FIFO_SIZE + 1] = { '\n' };
while (1) {
! /* write count to buffer as a 3 digit number */
! tmp = count;
! for ( n = 0 ; n < 3 ; n++ ) {
! buffer[2-n] = '0' + ( tmp % 10 );
! tmp /= 10;
! }
! buffer[3] = ':';
! /* write 'len' digits of 'len' */
! for (n = 0; n < len; n++) {
! buffer[4+n] = '0' + len;
}
! rtapi_fifo_write(fifo, buffer, len+4);
! total += len+4;
! buffer[4+n] = '\0';
! rtapi_print("fifotask: total %d, wrote '%s',\n", total, buffer);
count++;
! len++;
! if (len > 9)
! len = 0;
rtapi_wait();
}
***************
*** 53,59 ****
}
/* set the base timer period */
retval = rtapi_clock_set_period(TIMER_PERIOD_NSEC);
! if (retval != RTAPI_SUCCESS) {
rtapi_print("fifotask init: rtapi_clock_set_period failed with %d\n",
retval);
--- 65,73 ----
}
+ rtapi_print("fifotask: created fifo\n");
+
/* set the base timer period */
retval = rtapi_clock_set_period(TIMER_PERIOD_NSEC);
! if (retval < 0) {
rtapi_print("fifotask init: rtapi_clock_set_period failed with %d\n",
retval);
|
|
From: <jmk...@us...> - 2003-08-10 21:13:06
|
Update of /cvsroot/emc/rtapi/examples/semaphore In directory sc8-pr-cvs1:/tmp/cvs-serv11923/examples/semaphore Modified Files: Makefile Log Message: misc changes, work in progress Index: Makefile =================================================================== RCS file: /cvsroot/emc/rtapi/examples/semaphore/Makefile,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Makefile 5 Aug 2003 03:51:00 -0000 1.3 --- Makefile 10 Aug 2003 21:13:04 -0000 1.4 *************** *** 43,50 **** # DO NOT DELETE - /home/John/emcdev/rtapi/rtlib/master.o: /home/John/emcdev/rtapi/include/rtapi.h - /home/John/emcdev/rtapi/rtlib/master.o: /home/John/emcdev/rtapi/include/rtapi_app.h /home/John/emcdev/rtapi/rtlib/master.o: common.h - /home/John/emcdev/rtapi/rtlib/slave.o: /home/John/emcdev/rtapi/include/rtapi.h - /home/John/emcdev/rtapi/rtlib/slave.o: /home/John/emcdev/rtapi/include/rtapi_app.h /home/John/emcdev/rtapi/rtlib/slave.o: common.h --- 43,46 ---- |
|
From: <jmk...@us...> - 2003-08-10 21:13:06
|
Update of /cvsroot/emc/rtapi/examples/extint In directory sc8-pr-cvs1:/tmp/cvs-serv11923/examples/extint Modified Files: Makefile Log Message: misc changes, work in progress Index: Makefile =================================================================== RCS file: /cvsroot/emc/rtapi/examples/extint/Makefile,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Makefile 5 Aug 2003 03:51:00 -0000 1.3 --- Makefile 10 Aug 2003 21:13:03 -0000 1.4 *************** *** 32,36 **** # DO NOT DELETE - - /home/John/emcdev/rtapi/rtlib/extint.o: /home/John/emcdev/rtapi/include/rtapi.h - /home/John/emcdev/rtapi/rtlib/extint.o: /home/John/emcdev/rtapi/include/rtapi_app.h --- 32,33 ---- |
|
From: <wsh...@us...> - 2003-08-10 12:49:50
|
Update of /cvsroot/emc/rcslib
In directory sc8-pr-cvs1:/tmp/cvs-serv31626
Modified Files:
Tag: wps_multiplat_dev_branch
Makefile.am Makefile.in
Log Message:
No more java/ste stuff.
Index: Makefile.am
===================================================================
RCS file: /cvsroot/emc/rcslib/Makefile.am,v
retrieving revision 1.7.2.4
retrieving revision 1.7.2.5
diff -C2 -d -r1.7.2.4 -r1.7.2.5
*** Makefile.am 10 Aug 2003 12:46:19 -0000 1.7.2.4
--- Makefile.am 10 Aug 2003 12:49:47 -0000 1.7.2.5
***************
*** 534,542 ****
src/java/rcsdesign/rcsdesignModuleInfo.java\
src/java/rcsdesign/resizingtrash.java\
- src/java/ste/StateDialog.java\
- src/java/ste/StateInfo.java\
- src/java/ste/StateTableEditor.java\
- src/java/ste/TransitionDialog.java\
- src/java/ste/TransitionInfo.java\
src/java/rcs/update_ver\
src/java/rcs/RCS_VERSION.java.perm\
--- 534,537 ----
***************
*** 559,563 ****
src/java/rcsdesign/MakeFileRunner.java\
src/java/rcsdesign/Makefile\
- src/java/ste/Makefile\
src/node/Makefile\
src/node/Makefile.lib\
--- 554,557 ----
Index: Makefile.in
===================================================================
RCS file: /cvsroot/emc/rcslib/Makefile.in,v
retrieving revision 1.7.2.4
retrieving revision 1.7.2.5
diff -C2 -d -r1.7.2.4 -r1.7.2.5
*** Makefile.in 10 Aug 2003 12:46:19 -0000 1.7.2.4
--- Makefile.in 10 Aug 2003 12:49:47 -0000 1.7.2.5
***************
*** 626,634 ****
src/java/rcsdesign/rcsdesignModuleInfo.java\
src/java/rcsdesign/resizingtrash.java\
- src/java/ste/StateDialog.java\
- src/java/ste/StateInfo.java\
- src/java/ste/StateTableEditor.java\
- src/java/ste/TransitionDialog.java\
- src/java/ste/TransitionInfo.java\
src/java/rcs/update_ver\
src/java/rcs/RCS_VERSION.java.perm\
--- 626,629 ----
***************
*** 651,655 ****
src/java/rcsdesign/MakeFileRunner.java\
src/java/rcsdesign/Makefile\
- src/java/ste/Makefile\
src/node/Makefile\
src/node/Makefile.lib\
--- 646,649 ----
***************
*** 5751,5755 ****
$(am__remove_distdir)
mkdir $(distdir)
! $(mkinstalldirs) $(distdir)/etc $(distdir)/src $(distdir)/src/ce_miss $(distdir)/src/cms $(distdir)/src/java $(distdir)/src/java/diagapplet $(distdir)/src/java/diagapplet/CodeGen $(distdir)/src/java/diagapplet/plotter $(distdir)/src/java/diagapplet/utils $(distdir)/src/java/rcs $(distdir)/src/java/rcs/nml $(distdir)/src/java/rcs/posemath $(distdir)/src/java/rcs/utils $(distdir)/src/java/rcsdesign $(distdir)/src/java/ste $(distdir)/src/node $(distdir)/src/nt_xdr $(distdir)/src/os_intf $(distdir)/src/posemath $(distdir)/src/print $(distdir)/src/stg_clss $(distdir)/src/test
@list='$(DISTFILES)'; for file in $$list; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
--- 5745,5749 ----
$(am__remove_distdir)
mkdir $(distdir)
! $(mkinstalldirs) $(distdir)/etc $(distdir)/src $(distdir)/src/ce_miss $(distdir)/src/cms $(distdir)/src/java $(distdir)/src/java/diagapplet $(distdir)/src/java/diagapplet/CodeGen $(distdir)/src/java/diagapplet/plotter $(distdir)/src/java/diagapplet/utils $(distdir)/src/java/rcs $(distdir)/src/java/rcs/nml $(distdir)/src/java/rcs/posemath $(distdir)/src/java/rcs/utils $(distdir)/src/java/rcsdesign $(distdir)/src/node $(distdir)/src/nt_xdr $(distdir)/src/os_intf $(distdir)/src/posemath $(distdir)/src/print $(distdir)/src/stg_clss $(distdir)/src/test
@list='$(DISTFILES)'; for file in $$list; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
Update of /cvsroot/emc/rcslib/src/java/ste
In directory sc8-pr-cvs1:/tmp/cvs-serv31437
Removed Files:
Tag: wps_multiplat_dev_branch
1332122.gif Makefile StateDialog.java StateInfo.java
StateTableEditor.java TransitionDialog.java
TransitionInfo.java meg144.thm.gif
Log Message:
No mor STE stuff.
--- 1332122.gif DELETED ---
--- Makefile DELETED ---
--- StateDialog.java DELETED ---
--- StateInfo.java DELETED ---
--- StateTableEditor.java DELETED ---
--- TransitionDialog.java DELETED ---
--- TransitionInfo.java DELETED ---
--- meg144.thm.gif DELETED ---
|
|
From: <wsh...@us...> - 2003-08-10 12:46:22
|
Update of /cvsroot/emc/rcslib
In directory sc8-pr-cvs1:/tmp/cvs-serv31146
Modified Files:
Tag: wps_multiplat_dev_branch
Makefile.am Makefile.in
Log Message:
get rid of pcio and pmac stuff
Index: Makefile.am
===================================================================
RCS file: /cvsroot/emc/rcslib/Makefile.am,v
retrieving revision 1.7.2.3
retrieving revision 1.7.2.4
diff -C2 -d -r1.7.2.3 -r1.7.2.4
*** Makefile.am 8 Aug 2003 17:31:01 -0000 1.7.2.3
--- Makefile.am 10 Aug 2003 12:46:19 -0000 1.7.2.4
***************
*** 566,571 ****
src/os_intf/Makefile\
src/os_intf/Makefile.lib\
- src/pcio/Makefile\
- src/pmac/Makefile\
src/posemath/Makefile\
src/posemath/Makefile.lib\
--- 566,569 ----
***************
*** 662,669 ****
src/os_intf/fileops.h\
src/os_intf/inifile.h\
- src/pcio/iodev.h\
- src/pcio/pcio.h\
- src/pcio/pcioDrv.h\
- src/pmac/pmac.h\
src/posemath/mathprnt.h\
src/posemath/posemath.h\
--- 660,663 ----
Index: Makefile.in
===================================================================
RCS file: /cvsroot/emc/rcslib/Makefile.in,v
retrieving revision 1.7.2.3
retrieving revision 1.7.2.4
diff -C2 -d -r1.7.2.3 -r1.7.2.4
*** Makefile.in 8 Aug 2003 17:31:01 -0000 1.7.2.3
--- Makefile.in 10 Aug 2003 12:46:19 -0000 1.7.2.4
***************
*** 658,663 ****
src/os_intf/Makefile\
src/os_intf/Makefile.lib\
- src/pcio/Makefile\
- src/pmac/Makefile\
src/posemath/Makefile\
src/posemath/Makefile.lib\
--- 658,661 ----
***************
*** 755,762 ****
src/os_intf/fileops.h\
src/os_intf/inifile.h\
- src/pcio/iodev.h\
- src/pcio/pcio.h\
- src/pcio/pcioDrv.h\
- src/pmac/pmac.h\
src/posemath/mathprnt.h\
src/posemath/posemath.h\
--- 753,756 ----
***************
*** 5757,5761 ****
$(am__remove_distdir)
mkdir $(distdir)
! $(mkinstalldirs) $(distdir)/etc $(distdir)/src $(distdir)/src/ce_miss $(distdir)/src/cms $(distdir)/src/java $(distdir)/src/java/diagapplet $(distdir)/src/java/diagapplet/CodeGen $(distdir)/src/java/diagapplet/plotter $(distdir)/src/java/diagapplet/utils $(distdir)/src/java/rcs $(distdir)/src/java/rcs/nml $(distdir)/src/java/rcs/posemath $(distdir)/src/java/rcs/utils $(distdir)/src/java/rcsdesign $(distdir)/src/java/ste $(distdir)/src/node $(distdir)/src/nt_xdr $(distdir)/src/os_intf $(distdir)/src/pcio $(distdir)/src/pmac $(distdir)/src/posemath $(distdir)/src/print $(distdir)/src/stg_clss $(distdir)/src/test
@list='$(DISTFILES)'; for file in $$list; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
--- 5751,5755 ----
$(am__remove_distdir)
mkdir $(distdir)
! $(mkinstalldirs) $(distdir)/etc $(distdir)/src $(distdir)/src/ce_miss $(distdir)/src/cms $(distdir)/src/java $(distdir)/src/java/diagapplet $(distdir)/src/java/diagapplet/CodeGen $(distdir)/src/java/diagapplet/plotter $(distdir)/src/java/diagapplet/utils $(distdir)/src/java/rcs $(distdir)/src/java/rcs/nml $(distdir)/src/java/rcs/posemath $(distdir)/src/java/rcs/utils $(distdir)/src/java/rcsdesign $(distdir)/src/java/ste $(distdir)/src/node $(distdir)/src/nt_xdr $(distdir)/src/os_intf $(distdir)/src/posemath $(distdir)/src/print $(distdir)/src/stg_clss $(distdir)/src/test
@list='$(DISTFILES)'; for file in $$list; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
|
From: <wsh...@us...> - 2003-08-10 12:43:30
|
Update of /cvsroot/emc/rcslib/src/pmac
In directory sc8-pr-cvs1:/tmp/cvs-serv30893
Removed Files:
Tag: wps_multiplat_dev_branch
Makefile demobox.pmc dinit.c dpeek.c dpoke.c kt800.pmc
mill.pmc peek.c pmac.cc pmac.h pmacexec.c pmacstat.c poke.c
testprobe.cc
Log Message:
No more PMAC stuff in rcslib
--- Makefile DELETED ---
--- demobox.pmc DELETED ---
--- dinit.c DELETED ---
--- dpeek.c DELETED ---
--- dpoke.c DELETED ---
--- kt800.pmc DELETED ---
--- mill.pmc DELETED ---
--- peek.c DELETED ---
--- pmac.cc DELETED ---
--- pmac.h DELETED ---
--- pmacexec.c DELETED ---
--- pmacstat.c DELETED ---
--- poke.c DELETED ---
--- testprobe.cc DELETED ---
|
|
From: <wsh...@us...> - 2003-08-10 12:42:23
|
Update of /cvsroot/emc/rcslib/src/pcio
In directory sc8-pr-cvs1:/tmp/cvs-serv30690
Removed Files:
Tag: wps_multiplat_dev_branch
Makefile Notes iodev.c iodev.h ioscan.c main.c pcio.cfg pcio.h
pcio.s pcioDrv.c pcioDrv.h pcioSim.cc pciotest.c
Log Message:
pcio has not been used for a long time.
--- Makefile DELETED ---
--- Notes DELETED ---
--- iodev.c DELETED ---
--- iodev.h DELETED ---
--- ioscan.c DELETED ---
--- main.c DELETED ---
--- pcio.cfg DELETED ---
--- pcio.h DELETED ---
--- pcio.s DELETED ---
--- pcioDrv.c DELETED ---
--- pcioDrv.h DELETED ---
--- pcioSim.cc DELETED ---
--- pciotest.c DELETED ---
|
|
From: <pa...@us...> - 2003-08-10 12:07:07
|
Update of /cvsroot/emc/rtapi/src/rtapi
In directory sc8-pr-cvs1:/tmp/cvs-serv26483
Modified Files:
rtai_ulapi.c
Log Message:
rtf reads do not return zero
Index: rtai_ulapi.c
===================================================================
RCS file: /cvsroot/emc/rtapi/src/rtapi/rtai_ulapi.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** rtai_ulapi.c 25 Jul 2003 22:04:20 -0000 1.3
--- rtai_ulapi.c 10 Aug 2003 12:07:05 -0000 1.4
***************
*** 207,211 ****
/* get whatever data is available */
retval = read(fifo->fd, buf, size);
! if (retval < 0) {
return ULAPI_FAIL;
}
--- 207,211 ----
/* get whatever data is available */
retval = read(fifo->fd, buf, size);
! if (retval <= 0) {
return ULAPI_FAIL;
}
|
|
From: <pa...@us...> - 2003-08-10 12:06:07
|
Update of /cvsroot/emc/rtapi/examples/fifo
In directory sc8-pr-cvs1:/tmp/cvs-serv26392
Modified Files:
fifousr.c
Log Message:
Oh how silly - retval will allways be 0
Index: fifousr.c
===================================================================
RCS file: /cvsroot/emc/rtapi/examples/fifo/fifousr.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** fifousr.c 27 Jul 2003 16:33:42 -0000 1.4
--- fifousr.c 10 Aug 2003 12:06:05 -0000 1.5
***************
*** 45,49 ****
while (1) {
nchars = ulapi_fifo_read(fifo, buffer, FIFO_SIZE);
! if (retval < 0) {
printf("fifousr main: ulapi_fifo_read returned %d\n", nchars);
} else {
--- 45,49 ----
while (1) {
nchars = ulapi_fifo_read(fifo, buffer, FIFO_SIZE);
! if (nchars <= 0) {
printf("fifousr main: ulapi_fifo_read returned %d\n", nchars);
} else {
|
|
From: <pa...@us...> - 2003-08-09 21:44:56
|
Update of /cvsroot/emc/rtapi/src/rtapi
In directory sc8-pr-cvs1:/tmp/cvs-serv19963
Modified Files:
rtai_rtapi.c
Log Message:
missing count to nano conversion
Index: rtai_rtapi.c
===================================================================
RCS file: /cvsroot/emc/rtapi/src/rtapi/rtai_rtapi.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -d -r1.14 -r1.15
*** rtai_rtapi.c 9 Aug 2003 19:43:09 -0000 1.14
--- rtai_rtapi.c 9 Aug 2003 21:44:53 -0000 1.15
***************
*** 233,237 ****
timer_running = 1;
rt_set_periodic_mode();
! timer_period = start_rt_timer(nano2count((RTIME) nsecs));
rtapi_print_dbg(VERBOSE,
--- 233,237 ----
timer_running = 1;
rt_set_periodic_mode();
! timer_period = count2nano(start_rt_timer(nano2count((RTIME) nsecs)));
rtapi_print_dbg(VERBOSE,
|
|
From: <pa...@us...> - 2003-08-09 19:43:13
|
Update of /cvsroot/emc/rtapi/src/rtapi
In directory sc8-pr-cvs1:/tmp/cvs-serv31130
Modified Files:
rtai_rtapi.c rtapi.h rtl_rtapi.c rtl_ulapi.c sim_rtapi.c
sim_ulapi.c ulapi.h
Log Message:
/proc entry added
Index: rtai_rtapi.c
===================================================================
RCS file: /cvsroot/emc/rtapi/src/rtapi/rtai_rtapi.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -C2 -d -r1.13 -r1.14
*** rtai_rtapi.c 5 Aug 2003 03:51:00 -0000 1.13
--- rtai_rtapi.c 9 Aug 2003 19:43:09 -0000 1.14
***************
*** 8,16 ****
#include <linux/module.h>
#include <linux/kernel.h>
! #include <linux/slab.h> /* replaces malloc.h in recent kernels */
#include <rtai.h>
#include <rtai_sched.h>
#include <rtai_shm.h>
#include <rtai_fifos.h>
#ifndef KERNEL_VERSION
--- 8,18 ----
#include <linux/module.h>
#include <linux/kernel.h>
! #include <linux/proc_fs.h> /* So we can use the /proc file system */
! #include <linux/slab.h> /* replaces malloc.h in recent kernels */
#include <rtai.h>
#include <rtai_sched.h>
#include <rtai_shm.h>
#include <rtai_fifos.h>
+ #include <rtai_proc_fs.h> /* handy proc_fs print macros */
#ifndef KERNEL_VERSION
***************
*** 72,79 ****
static int fifo_usage_count = 0;
static int int_usage_count = 0;
!
/* Flag used to keep track of timer state */
static int timer_running = 0;
/* Priority functions. RTAI uses 0 as the highest priority, as the
number increases, the actual priority of the task decreases. */
--- 74,105 ----
static int fifo_usage_count = 0;
static int int_usage_count = 0;
! static unsigned int timer_period = 0;
/* Flag used to keep track of timer state */
static int timer_running = 0;
+ int debug = 1;
+ MODULE_PARM(debug, "i");
+ MODULE_PARM_DESC(debug, "Sets the verbosity of the debug prints");
+
+ /* Internal function for the proc_fs system. */
+ #ifdef CONFIG_PROC_FS
+ static int proc_read(char *page, char **start, off_t off,
+ int count, int *eof, void *data)
+ {
+ PROC_PRINT_VARS;
+ PROC_PRINT("******* RTAI rtapi usage *******\n");
+ PROC_PRINT(" Version = $Revision$\n");
+ PROC_PRINT(" Tasks running = %i\n", task_usage_count);
+ PROC_PRINT(" Shared memory = %i\n", shmem_usage_count);
+ PROC_PRINT(" FIFO count = %i\n", fifo_usage_count);
+ PROC_PRINT(" Semaphores used = %i\n", sem_usage_count);
+ PROC_PRINT("Active Interrupts = %i\n", int_usage_count);
+ PROC_PRINT(" Timer period = %inSec\n", timer_period);
+ PROC_PRINT(" Timer status = %i\n", timer_running);
+ PROC_PRINT("\n");
+ PROC_PRINT_DONE;
+ }
+ #endif
+
/* Priority functions. RTAI uses 0 as the highest priority, as the
number increases, the actual priority of the task decreases. */
***************
*** 120,127 ****
-
static int rtapi_init(void)
{
! rtapi_print("RTAPI: Initing\n");
task_usage_count = 0;
shmem_usage_count = 0;
--- 146,161 ----
static int rtapi_init(void)
{
! /* register a proc entry */
! #ifdef CONFIG_PROC_FS
! create_proc_read_entry("rtai/rtapi", /* name */
! 0, /* default mode */
! NULL, /* parent dir */
! proc_read, /* function */
! NULL /* client data */
! );
! #endif
! rtapi_print_dbg(VERBOSE, "RTAPI: Initing\n");
task_usage_count = 0;
shmem_usage_count = 0;
***************
*** 137,157 ****
static int rtapi_exit(void)
{
! if (task_usage_count != 0 ) {
! rtapi_print("RTAPI: ERROR: %d task(s) allocated but not deleted", task_usage_count);
}
! if (shmem_usage_count != 0 ) {
! rtapi_print("RTAPI: ERROR: %d shared memory block(s) allocated but not deleted", shmem_usage_count);
}
! if (sem_usage_count != 0 ) {
! rtapi_print("RTAPI: ERROR: %d semaphores(s) allocated but not deleted", sem_usage_count);
}
! if (fifo_usage_count != 0 ) {
! rtapi_print("RTAPI: ERROR: %d fifo(s) allocated but not deleted", fifo_usage_count);
}
! if (int_usage_count != 0 ) {
! rtapi_print("RTAPI: ERROR: %d interrupt handler(s) installed but not removed", int_usage_count);
}
! if (timer_running != 0 ) {
stop_rt_timer();
}
rtapi_print("RTAPI: Shutting down\n");
--- 171,206 ----
static int rtapi_exit(void)
{
! /* Remove proc dir entry */
! #ifdef CONFIG_PROC_FS
! remove_proc_entry("rtai/rtapi", NULL);
! #endif
! if (task_usage_count != 0) {
! rtapi_print_dbg(VERBOSE,
! "RTAPI: ERROR: %d task(s) allocated but not deleted\n",
! task_usage_count);
}
! if (shmem_usage_count != 0) {
! rtapi_print_dbg(VERBOSE,
! "RTAPI: ERROR: %d shared memory block(s) allocated but not deleted\n",
! shmem_usage_count);
}
! if (sem_usage_count != 0) {
! rtapi_print_dbg(VERBOSE,
! "RTAPI: ERROR: %d semaphores(s) allocated but not deleted\n",
! sem_usage_count);
}
! if (fifo_usage_count != 0) {
! rtapi_print_dbg(VERBOSE,
! "RTAPI: ERROR: %d fifo(s) allocated but not deleted\n",
! fifo_usage_count);
}
! if (int_usage_count != 0) {
! rtapi_print_dbg(VERBOSE,
! "RTAPI: ERROR: %d interrupt handler(s) installed but not removed\n",
! int_usage_count);
}
! if (timer_running != 0) {
stop_rt_timer();
+ rt_free_timer();
}
rtapi_print("RTAPI: Shutting down\n");
***************
*** 175,191 ****
/* limit to a maximum of 1 second (note that RTLinux only
! allows 0.01 second, so for portability, callers should
! always ask for 0.01 second or less */
! if ( nsecs > 1000000000L ) {
return RTAPI_INVAL;
}
- if ( VERBOSE ) {
- rtapi_print ( "RTAPI: clock_set_period ( %ld )\n", nsecs );
- }
timer_running = 1;
rt_set_periodic_mode();
! start_rt_timer(nano2count((RTIME) nsecs));
return RTAPI_SUCCESS;
}
--- 224,242 ----
/* limit to a maximum of 1 second (note that RTLinux only
! allows 0.01 second, so for portability, callers should
! always ask for 0.01 second or less */
! if (nsecs > 1000000000L) {
return RTAPI_INVAL;
}
timer_running = 1;
rt_set_periodic_mode();
! timer_period = start_rt_timer(nano2count((RTIME) nsecs));
!
! rtapi_print_dbg(VERBOSE,
! "RTAPI: clock_set_period ( %ld ) - Actual = %inSec\n",
! nsecs, timer_period);
!
return RTAPI_SUCCESS;
}
***************
*** 219,225 ****
task_usage_count++;
! if ( VERBOSE ) {
! rtapi_print ( "RTAPI: new_task %p, count = %d\n", task, task_usage_count );
! }
return RTAPI_SUCCESS;
--- 270,275 ----
task_usage_count++;
! rtapi_print_dbg(VERBOSE, "RTAPI: new_task %p, count = %d\n", task,
! task_usage_count);
return RTAPI_SUCCESS;
***************
*** 243,249 ****
task_usage_count--;
! if ( VERBOSE ) {
! rtapi_print ( "RTAPI: delete_task %p, count = %d\n", task, task_usage_count );
! }
return RTAPI_SUCCESS;
--- 293,298 ----
task_usage_count--;
! rtapi_print_dbg(VERBOSE, "RTAPI: delete_task %p, count = %d\n", task,
! task_usage_count);
return RTAPI_SUCCESS;
***************
*** 301,307 ****
}
! if ( VERBOSE ) {
! rtapi_print ( "RTAPI: start_task %p\n", task );
! }
return RTAPI_SUCCESS;
--- 350,354 ----
}
! rtapi_print_dbg(VERBOSE, "RTAPI: start_task %p\n", task);
return RTAPI_SUCCESS;
***************
*** 325,331 ****
return RTAPI_FAIL;
}
! if ( VERBOSE ) {
! rtapi_print ( "RTAPI: stop_task %p\n", task );
! }
return RTAPI_SUCCESS;
--- 372,376 ----
return RTAPI_FAIL;
}
! rtapi_print_dbg(VERBOSE, "RTAPI: stop_task %p\n", task);
return RTAPI_SUCCESS;
***************
*** 465,471 ****
shmem_usage_count++;
! if ( VERBOSE ) {
! rtapi_print ( "RTAPI: new_shmem %p, key = %d, count = %d\n", shmem, key, shmem_usage_count );
! }
return RTAPI_SUCCESS;
--- 510,515 ----
shmem_usage_count++;
! rtapi_print_dbg(VERBOSE, "RTAPI: new_shmem %p, key = %d, count = %d\n",
! shmem, key, shmem_usage_count);
return RTAPI_SUCCESS;
***************
*** 508,514 ****
shmem_usage_count--;
! if ( VERBOSE ) {
! rtapi_print ( "RTAPI: delete_shmem %p, count = %d\n", shmem, shmem_usage_count );
! }
return RTAPI_SUCCESS;
--- 552,557 ----
shmem_usage_count--;
! rtapi_print_dbg(VERBOSE, "RTAPI: delete_shmem %p, count = %d\n", shmem,
! shmem_usage_count);
return RTAPI_SUCCESS;
***************
*** 532,535 ****
--- 575,592 ----
+ void rtapi_print_dbg(int dbg, const char *fmt, ...)
+ {
+ va_list args;
+ enum { BUFFERLEN = 256 };
+ static char buffer[BUFFERLEN];
+
+ if (dbg < debug) {
+ va_start(args, fmt);
+ vsprintf(buffer, fmt, args);
+ rt_printk(buffer);
+ va_end(args);
+ }
+ }
+
void rtapi_outb(unsigned char byte, unsigned int port)
{
***************
*** 556,566 ****
}
}
/* increment the usage counter */
int_usage_count++;
! if ( VERBOSE ) {
! rtapi_print ( "RTAPI: assign_interrupt_handler for int %d, count = %d\n", irq, int_usage_count );
! }
return RTAPI_SUCCESS;
--- 613,626 ----
}
}
+ rtapi_print_dbg(VERBOSE,
+ "\n\nRTAPI: assign_interrupt_handler for int %d, count = %d\n",
+ irq, int_usage_count);
/* increment the usage counter */
int_usage_count++;
! rtapi_print_dbg(VERBOSE,
! "RTAPI: assign_interrupt_handler for int %d, count = %d\n",
! irq, int_usage_count);
return RTAPI_SUCCESS;
***************
*** 581,587 ****
int_usage_count--;
! if ( VERBOSE ) {
! rtapi_print ( "RTAPI: free_interrupt_handler for int %d, count = %d\n", irq, int_usage_count );
! }
return RTAPI_SUCCESS;
--- 641,647 ----
int_usage_count--;
! rtapi_print_dbg(VERBOSE,
! "RTAPI: free_interrupt_handler for int %d, count = %d\n",
! irq, int_usage_count);
return RTAPI_SUCCESS;
***************
*** 642,648 ****
sem_usage_count++;
! if ( VERBOSE ) {
! rtapi_print ( "RTAPI: new_sem %p, count = %d\n", sem, sem_usage_count );
! }
return RTAPI_SUCCESS;
--- 702,707 ----
sem_usage_count++;
! rtapi_print_dbg(VERBOSE, "RTAPI: new_sem %p, count = %d\n", sem,
! sem_usage_count);
return RTAPI_SUCCESS;
***************
*** 669,675 ****
sem_usage_count--;
! if ( VERBOSE ) {
! rtapi_print ( "RTAPI: delete_sem %p, count = %d\n", sem, sem_usage_count );
! }
return RTAPI_SUCCESS;
--- 728,733 ----
sem_usage_count--;
! rtapi_print_dbg(VERBOSE, "RTAPI: delete_sem %p, count = %d\n", sem,
! sem_usage_count);
return RTAPI_SUCCESS;
***************
*** 767,773 ****
fifo_usage_count++;
! if ( VERBOSE ) {
! rtapi_print ( "RTAPI: new_fifo %p, count = %d\n", fifo, fifo_usage_count );
! }
return RTAPI_SUCCESS;
--- 825,830 ----
fifo_usage_count++;
! rtapi_print_dbg(VERBOSE, "RTAPI: new_fifo %p, count = %d\n", fifo,
! fifo_usage_count);
return RTAPI_SUCCESS;
***************
*** 794,800 ****
fifo_usage_count--;
! if ( VERBOSE ) {
! rtapi_print ( "RTAPI: delete_fifo %p, count = %d\n", fifo, fifo_usage_count );
! }
return RTAPI_SUCCESS;
--- 851,856 ----
fifo_usage_count--;
! rtapi_print_dbg(VERBOSE, "RTAPI: delete_fifo %p, count = %d\n", fifo,
! fifo_usage_count);
return RTAPI_SUCCESS;
Index: rtapi.h
===================================================================
RCS file: /cvsroot/emc/rtapi/src/rtapi/rtapi.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -d -r1.12 -r1.13
*** rtapi.h 5 Aug 2003 03:51:00 -0000 1.12
--- rtapi.h 9 Aug 2003 19:43:09 -0000 1.13
***************
*** 4,16 ****
/** These status codes are returned by many RTAPI functions. */
! #define RTAPI_SUCCESS 0 /* call successfull */
! #define RTAPI_UNSUP -1 /* function not supported */
! #define RTAPI_BADH -2 /* bad task, shmem, sem, or fifo handle */
! #define RTAPI_INVAL -3 /* invalid argument*/
! #define RTAPI_NOMEM -4 /* not enough memory */
! #define RTAPI_PERM -5 /* permission denied */
! #define RTAPI_BUSY -6 /* resource is busy or locked */
! #define RTAPI_NOTFND -7 /* object not found */
! #define RTAPI_FAIL -8 /* operation failed */
/* flags for the rtapi_task_start() call */
--- 4,16 ----
/** These status codes are returned by many RTAPI functions. */
! #define RTAPI_SUCCESS 0 /* call successfull */
! #define RTAPI_UNSUP -1 /* function not supported */
! #define RTAPI_BADH -2 /* bad task, shmem, sem, or fifo handle */
! #define RTAPI_INVAL -3 /* invalid argument */
! #define RTAPI_NOMEM -4 /* not enough memory */
! #define RTAPI_PERM -5 /* permission denied */
! #define RTAPI_BUSY -6 /* resource is busy or locked */
! #define RTAPI_NOTFND -7 /* object not found */
! #define RTAPI_FAIL -8 /* operation failed */
/* flags for the rtapi_task_start() call */
***************
*** 23,30 ****
* In fact, don't even count on handles always being pointers. */
! typedef struct rtapi_task *rtapi_task_handle;
! typedef struct rtapi_shmem *rtapi_shmem_handle;
! typedef struct rtapi_sem *rtapi_sem_handle;
! typedef struct rtapi_fifo *rtapi_fifo_handle;
--- 23,30 ----
* In fact, don't even count on handles always being pointers. */
! typedef struct rtapi_task *rtapi_task_handle;
! typedef struct rtapi_shmem *rtapi_shmem_handle;
! typedef struct rtapi_sem *rtapi_sem_handle;
! typedef struct rtapi_fifo *rtapi_fifo_handle;
***************
*** 56,63 ****
* 'rtapi_prio_next_lower(previous)'. */
! extern int rtapi_prio_highest( void );
! extern int rtapi_prio_lowest( void );
! extern int rtapi_prio_next_higher( int prio );
! extern int rtapi_prio_next_lower( int prio );
--- 56,63 ----
* 'rtapi_prio_next_lower(previous)'. */
! extern int rtapi_prio_highest(void);
! extern int rtapi_prio_lowest(void);
! extern int rtapi_prio_next_higher(int prio);
! extern int rtapi_prio_next_lower(int prio);
***************
*** 86,90 ****
* subsequent calls that need to act on the task. */
! extern int rtapi_task_new( rtapi_task_handle *taskptr );
--- 86,90 ----
* subsequent calls that need to act on the task. */
! extern int rtapi_task_new(rtapi_task_handle * taskptr);
***************
*** 96,100 ****
* should not attempt to delete itself! */
! extern int rtapi_task_delete( rtapi_task_handle task );
--- 96,100 ----
* should not attempt to delete itself! */
! extern int rtapi_task_delete(rtapi_task_handle task);
***************
*** 124,133 ****
*/
! extern int rtapi_task_start( rtapi_task_handle task,
! void (*taskcode)( int ),
! int arg, int prio,
! unsigned long int stacksize,
! unsigned long int period_nsec,
! unsigned char uses_fp );
--- 124,133 ----
*/
! extern int rtapi_task_start(rtapi_task_handle task,
! void (*taskcode) (int),
! int arg, int prio,
! unsigned long int stacksize,
! unsigned long int period_nsec,
! unsigned char uses_fp);
***************
*** 137,141 ****
* task - a task should not attempt to stop itself! */
! extern int rtapi_task_stop( rtapi_task_handle task );
--- 137,141 ----
* task - a task should not attempt to stop itself! */
! extern int rtapi_task_stop(rtapi_task_handle task);
***************
*** 145,150 ****
* itself. Returns a status code. */
! extern int rtapi_task_pause( rtapi_task_handle task );
! extern int rtapi_task_resume( rtapi_task_handle task );
--- 145,150 ----
* itself. Returns a status code. */
! extern int rtapi_task_pause(rtapi_task_handle task);
! extern int rtapi_task_resume(rtapi_task_handle task);
***************
*** 154,159 ****
* status code. */
! extern int rtapi_task_set_period( rtapi_task_handle task,
! unsigned long int period_nsec );
--- 154,159 ----
* status code. */
! extern int rtapi_task_set_period(rtapi_task_handle task,
! unsigned long int period_nsec);
***************
*** 164,168 ****
* Returns a status code. */
! extern int rtapi_wait( void );
--- 164,168 ----
* Returns a status code. */
! extern int rtapi_wait(void);
***************
*** 170,174 ****
/* the current task. Call only from a task. Returns a status code. */
! extern int rtapi_task_get_handle( rtapi_task_handle *taskptr );
--- 170,174 ----
/* the current task. Call only from a task. Returns a status code. */
! extern int rtapi_task_get_handle(rtapi_task_handle * taskptr);
***************
*** 184,189 ****
* Returns a status code. */
! extern int rtapi_shmem_new( int key, unsigned int size,
! rtapi_shmem_handle *shmemptr );
--- 184,189 ----
* Returns a status code. */
! extern int rtapi_shmem_new(int key, unsigned int size,
! rtapi_shmem_handle * shmemptr);
***************
*** 191,195 ****
* shared memory block 'mbuf'. Returns a status code. */
! extern int rtapi_shmem_getptr ( rtapi_shmem_handle shmem, void **ptr );
--- 191,195 ----
* shared memory block 'mbuf'. Returns a status code. */
! extern int rtapi_shmem_getptr(rtapi_shmem_handle shmem, void **ptr);
***************
*** 197,201 ****
* Returns a status code. */
! extern int rtapi_shmem_delete( rtapi_shmem_handle shmem );
--- 197,201 ----
* Returns a status code. */
! extern int rtapi_shmem_delete(rtapi_shmem_handle shmem);
***************
*** 208,212 ****
* can take a fairly long time, depending on the format string and OS. */
! extern void rtapi_print( const char *fmt, ... );
--- 208,219 ----
* can take a fairly long time, depending on the format string and OS. */
! extern void rtapi_print(const char *fmt, ...);
!
!
! /** 'rtapi_print_dbg()' prints a printf style message similar to *
! * to rtapi_print. If debug is less than the value used when the rtapi *
! * was loaded, then the message is printed. */
!
! extern void rtapi_print_dbg(int debug, const char *fmt, ...);
***************
*** 214,218 ****
* Note: This function does nothing on the simulated RTOS. */
! extern void rtapi_outb( unsigned char byte, unsigned int port );
--- 221,225 ----
* Note: This function does nothing on the simulated RTOS. */
! extern void rtapi_outb(unsigned char byte, unsigned int port);
***************
*** 220,224 ****
* Note: This function always returns zero on the simulated RTOS. */
! extern unsigned char rtapi_inb( unsigned int port );
--- 227,231 ----
* Note: This function always returns zero on the simulated RTOS. */
! extern unsigned char rtapi_inb(unsigned int port);
***************
*** 229,234 ****
* code. Note: The simulated RTOS does not support interrupts. */
! extern int rtapi_assign_interrupt_handler( unsigned int irq,
! void (*handler) (void) );
--- 236,241 ----
* code. Note: The simulated RTOS does not support interrupts. */
! extern int rtapi_assign_interrupt_handler(unsigned int irq,
! void (*handler) (void));
***************
*** 239,243 ****
* Returns RTAPI_SUCCESS or RTAPI_INVAL. */
! extern int rtapi_free_interrupt_handler( unsigned int irq );
--- 246,250 ----
* Returns RTAPI_SUCCESS or RTAPI_INVAL. */
! extern int rtapi_free_interrupt_handler(unsigned int irq);
***************
*** 246,251 ****
* handlers assigned to them. Returns a status code. */
! extern int rtapi_enable_interrupt( unsigned int irq );
! extern int rtapi_disable_interrupt( unsigned int irq );
--- 253,258 ----
* handlers assigned to them. Returns a status code. */
! extern int rtapi_enable_interrupt(unsigned int irq);
! extern int rtapi_disable_interrupt(unsigned int irq);
***************
*** 255,259 ****
* Returns a status code. */
! extern int rtapi_sem_new( rtapi_sem_handle *semptr );
--- 262,266 ----
* Returns a status code. */
! extern int rtapi_sem_new(rtapi_sem_handle * semptr);
***************
*** 262,266 ****
* resume execution. Returns a status code. */
! extern int rtapi_sem_delete( rtapi_sem_handle sem );
--- 269,273 ----
* resume execution. Returns a status code. */
! extern int rtapi_sem_delete(rtapi_sem_handle sem);
***************
*** 269,273 ****
* higher priority task will begin to run. Returns a status code. */
! extern int rtapi_sem_give( rtapi_sem_handle sem );
--- 276,280 ----
* higher priority task will begin to run. Returns a status code. */
! extern int rtapi_sem_give(rtapi_sem_handle sem);
***************
*** 277,281 ****
* until the semaphore is unlocked, then it returns RTAPI_SUCCESS. */
! extern int rtapi_sem_take( rtapi_sem_handle sem );
--- 284,288 ----
* until the semaphore is unlocked, then it returns RTAPI_SUCCESS. */
! extern int rtapi_sem_take(rtapi_sem_handle sem);
***************
*** 286,290 ****
* decide how to deal with the situation. */
! extern int rtapi_sem_try( rtapi_sem_handle sem );
--- 293,297 ----
* decide how to deal with the situation. */
! extern int rtapi_sem_try(rtapi_sem_handle sem);
***************
*** 296,301 ****
* code. */
! extern int rtapi_fifo_new( int key, unsigned long int size,
! rtapi_fifo_handle *fifoptr );
--- 303,308 ----
* code. */
! extern int rtapi_fifo_new(int key, unsigned long int size,
! rtapi_fifo_handle * fifoptr);
***************
*** 303,307 ****
* It destroys the fifo 'fifo'. Returns a status code. */
! extern int rtapi_fifo_delete( rtapi_fifo_handle fifo );
--- 310,314 ----
* It destroys the fifo 'fifo'. Returns a status code. */
! extern int rtapi_fifo_delete(rtapi_fifo_handle fifo);
***************
*** 312,317 ****
* available, and return that count (which could be zero). */
! extern int rtapi_fifo_read( rtapi_fifo_handle fifo,
! char *buf, unsigned long int size);
--- 319,324 ----
* available, and return that count (which could be zero). */
! extern int rtapi_fifo_read(rtapi_fifo_handle fifo,
! char *buf, unsigned long int size);
***************
*** 322,327 ****
* bytes as it can and return that count (which may be zero). */
! extern int rtapi_fifo_write( rtapi_fifo_handle fifo,
! char *buf, unsigned long int size);
--- 329,334 ----
* bytes as it can and return that count (which may be zero). */
! extern int rtapi_fifo_write(rtapi_fifo_handle fifo,
! char *buf, unsigned long int size);
Index: rtl_rtapi.c
===================================================================
RCS file: /cvsroot/emc/rtapi/src/rtapi/rtl_rtapi.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** rtl_rtapi.c 5 Aug 2003 03:51:00 -0000 1.3
--- rtl_rtapi.c 9 Aug 2003 19:43:09 -0000 1.4
***************
*** 8,12 ****
#include <linux/module.h>
#include <linux/kernel.h>
! #include <linux/slab.h> /* replaces malloc.h in recent kernels */
#include <rtl.h> /* top level config */
#include <rtl_sched.h> /* rtl_getschedclock(),
--- 8,12 ----
#include <linux/module.h>
#include <linux/kernel.h>
! #include <linux/slab.h> /* replaces malloc.h in recent kernels */
#include <rtl.h> /* top level config */
#include <rtl_sched.h> /* rtl_getschedclock(),
***************
*** 48,53 ****
int magic; /* to check for valid handle */
pthread_t ostask; /* OS specific task data */
! int arg; /* argument for task function */
! void (*taskcode)( int ); /* pointer to task function */
};
--- 48,53 ----
int magic; /* to check for valid handle */
pthread_t ostask; /* OS specific task data */
! int arg; /* argument for task function */
! void (*taskcode) (int); /* pointer to task function */
};
***************
*** 86,89 ****
--- 86,93 ----
static int timer_running = 0;
+ int debug = 1;
+ MODULE_PARM(debug, "i");
+ MODULE_PARM_DESC(debug, "Sets the verbosity of the debug prints");
+
/* maximum number of tasks */
#define RTAPI_MAX_TASKS 64
***************
*** 150,154 ****
int_usage_count = 0;
timer_running = 0;
! for ( n = 0 ; n < RTAPI_MAX_TASKS ; n++ ) {
task_array[n] = NULL;
}
--- 154,158 ----
int_usage_count = 0;
timer_running = 0;
! for (n = 0; n < RTAPI_MAX_TASKS; n++) {
task_array[n] = NULL;
}
***************
*** 159,181 ****
static int rtapi_exit(void)
{
! if (task_usage_count != 0 ) {
rtapi_print("RTAPI: ERROR: %d task(s) allocated but not deleted",
! task_usage_count);
}
! if (shmem_usage_count != 0 ) {
rtapi_print("RTAPI: ERROR: %d shmem block(s) allocated but not deleted",
! shmem_usage_count);
}
! if (sem_usage_count != 0 ) {
rtapi_print("RTAPI: ERROR: %d semaphores(s) allocated but not deleted",
! sem_usage_count);
}
! if (fifo_usage_count != 0 ) {
rtapi_print("RTAPI: ERROR: %d fifo(s) allocated but not deleted",
! fifo_usage_count);
}
! if (int_usage_count != 0 ) {
rtapi_print("RTAPI: ERROR: %d IRQ handler(s) installed but not removed",
! int_usage_count);
}
rtapi_print("RTAPI: Shutting down\n");
--- 163,185 ----
static int rtapi_exit(void)
{
! if (task_usage_count != 0) {
rtapi_print("RTAPI: ERROR: %d task(s) allocated but not deleted",
! task_usage_count);
}
! if (shmem_usage_count != 0) {
rtapi_print("RTAPI: ERROR: %d shmem block(s) allocated but not deleted",
! shmem_usage_count);
}
! if (sem_usage_count != 0) {
rtapi_print("RTAPI: ERROR: %d semaphores(s) allocated but not deleted",
! sem_usage_count);
}
! if (fifo_usage_count != 0) {
rtapi_print("RTAPI: ERROR: %d fifo(s) allocated but not deleted",
! fifo_usage_count);
}
! if (int_usage_count != 0) {
rtapi_print("RTAPI: ERROR: %d IRQ handler(s) installed but not removed",
! int_usage_count);
}
rtapi_print("RTAPI: Shutting down\n");
***************
*** 197,226 ****
int rtapi_clock_set_period(unsigned long int nsecs)
{
! int retval;
/* The RTL implementation of setclockmode is lame. If you
! specify a period that is too high, (like 1 second) it prints
! a message to the system log file, but instead of returning
! an error code, it sets the timer to 100Hz and returns success!
! If that's not bad enough, subsequent calls to set the period
! of a task are corrupted, such that you can ask for a 1 second
! task, and instead get one that runs every 0.01 sec, with no
! error codes or other way of detecting it. Stupid! To avoid
! this we only allow a timer period of 0.01 seconds or less.
! Note that you can still run tasks at slower rates, but the
! timer must run at least 100Hz. */
! if ( nsecs > 10000000L ) {
return RTAPI_INVAL;
}
! if ( VERBOSE ) {
! rtapi_print ( "RTAPI: clock_set_period ( %ld )\n", nsecs );
! }
timer_running = 1;
retval = rtl_setclockmode(rtl_getschedclock(),
! RTL_CLOCK_MODE_PERIODIC, nsecs);
! if ( retval != 0 ) {
return RTAPI_INVAL;
}
--- 201,229 ----
int rtapi_clock_set_period(unsigned long int nsecs)
{
! int retval;
/* The RTL implementation of setclockmode is lame. If you
! specify a period that is too high, (like 1 second) it prints
! a message to the system log file, but instead of returning
! an error code, it sets the timer to 100Hz and returns success!
! If that's not bad enough, subsequent calls to set the period
! of a task are corrupted, such that you can ask for a 1 second
! task, and instead get one that runs every 0.01 sec, with no
! error codes or other way of detecting it. Stupid! To avoid
! this we only allow a timer period of 0.01 seconds or less.
! Note that you can still run tasks at slower rates, but the
! timer must run at least 100Hz. */
! if (nsecs > 10000000L) {
return RTAPI_INVAL;
}
! rtapi_print_dbg(VERBOSE, "RTAPI: clock_set_period ( %ld )\n", nsecs);
!
timer_running = 1;
retval = rtl_setclockmode(rtl_getschedclock(),
! RTL_CLOCK_MODE_PERIODIC, nsecs);
! if (retval != 0) {
return RTAPI_INVAL;
}
***************
*** 246,253 ****
/* find empty spot in task array */
n = 0;
! while ( ( n < RTAPI_MAX_TASKS ) && ( task_array[n] != NULL ) ) {
n++;
}
! if ( n == RTAPI_MAX_TASKS ) {
return RTAPI_NOMEM;
}
--- 249,256 ----
/* find empty spot in task array */
n = 0;
! while ((n < RTAPI_MAX_TASKS) && (task_array[n] != NULL)) {
n++;
}
! if (n == RTAPI_MAX_TASKS) {
return RTAPI_NOMEM;
}
***************
*** 271,278 ****
task_usage_count++;
! if ( VERBOSE ) {
! rtapi_print ( "RTAPI: new_task %p, count = %d\n",
! task, task_usage_count );
! }
return RTAPI_SUCCESS;
--- 274,279 ----
task_usage_count++;
! rtapi_print_dbg(VERBOSE, "RTAPI: new_task %p, count = %d\n", task,
! task_usage_count);
return RTAPI_SUCCESS;
***************
*** 294,306 ****
/* find entry in task array */
n = 0;
! while ( ( n < RTAPI_MAX_TASKS ) && ( task_array[n] != task ) ) {
n++;
}
! if ( n == RTAPI_MAX_TASKS ) {
return RTAPI_INVAL;
}
/* this is from Fred's original code - it appears to stop the
! task, but the task should already be stopped... is it needed? */
pthread_cancel(task->ostask);
pthread_join(task->ostask, NULL);
--- 295,307 ----
/* find entry in task array */
n = 0;
! while ((n < RTAPI_MAX_TASKS) && (task_array[n] != task)) {
n++;
}
! if (n == RTAPI_MAX_TASKS) {
return RTAPI_INVAL;
}
/* this is from Fred's original code - it appears to stop the
! task, but the task should already be stopped... is it needed? */
pthread_cancel(task->ostask);
pthread_join(task->ostask, NULL);
***************
*** 316,323 ****
task_usage_count--;
! if ( VERBOSE ) {
! rtapi_print ( "RTAPI: delete_task %p, count = %d\n",
! task, task_usage_count );
! }
return RTAPI_SUCCESS;
--- 317,322 ----
task_usage_count--;
! rtapi_print_dbg(VERBOSE, "RTAPI: delete_task %p, count = %d\n",
! task, task_usage_count);
return RTAPI_SUCCESS;
***************
*** 329,340 ****
/* we solve this with a wrapper function that meets pthread's needs */
! static void *wrapper ( void *arg )
{
! rtapi_task_handle task;
/* use the argument to point to the task data */
task = arg;
/* call the task function with the task argument */
! (task->taskcode)( task->arg );
/* done */
return NULL;
--- 328,339 ----
/* we solve this with a wrapper function that meets pthread's needs */
! static void *wrapper(void *arg)
{
! rtapi_task_handle task;
/* use the argument to point to the task data */
task = arg;
/* call the task function with the task argument */
! (task->taskcode) (task->arg);
/* done */
return NULL;
***************
*** 366,370 ****
/* set up task attributes */
retval = pthread_attr_init(&attr);
! if ( retval != 0 ) {
return RTAPI_NOMEM;
}
--- 365,369 ----
/* set up task attributes */
retval = pthread_attr_init(&attr);
! if (retval != 0) {
return RTAPI_NOMEM;
}
***************
*** 372,389 ****
sched_param.sched_priority = prio;
retval = pthread_attr_setschedparam(&attr, &sched_param);
! if ( retval != 0 ) {
return RTAPI_INVAL;
}
/* set up the task itself */
/* create the thread - use the wrapper function, pass it a pointer
! to the task structure so it can call the actual task function */
task->taskcode = taskcode;
task->arg = arg;
! retval = pthread_create(&(task->ostask), &attr, wrapper, (void *)task );
! if ( retval != 0 ) {
! if ( retval == EAGAIN ) {
return RTAPI_NOMEM;
}
! if ( retval == EPERM ) {
return RTAPI_PERM;
}
--- 371,388 ----
sched_param.sched_priority = prio;
retval = pthread_attr_setschedparam(&attr, &sched_param);
! if (retval != 0) {
return RTAPI_INVAL;
}
/* set up the task itself */
/* create the thread - use the wrapper function, pass it a pointer
! to the task structure so it can call the actual task function */
task->taskcode = taskcode;
task->arg = arg;
! retval = pthread_create(&(task->ostask), &attr, wrapper, (void *) task);
! if (retval != 0) {
! if (retval == EAGAIN) {
return RTAPI_NOMEM;
}
! if (retval == EPERM) {
return RTAPI_PERM;
}
***************
*** 392,396 ****
pthread_setfp_np(task->ostask, (int) uses_fp);
retval = pthread_setschedparam(task->ostask, SCHED_FIFO, &sched_param);
! if ( retval != 0 ) {
return RTAPI_FAIL;
}
--- 391,395 ----
pthread_setfp_np(task->ostask, (int) uses_fp);
retval = pthread_setschedparam(task->ostask, SCHED_FIFO, &sched_param);
! if (retval != 0) {
return RTAPI_FAIL;
}
***************
*** 400,404 ****
/* start the task in periodic mode */
retval = pthread_make_periodic_np(task->ostask,
! gethrtime()+period_nsec, (hrtime_t)period_nsec);
if (retval != 0) {
return RTAPI_FAIL;
--- 399,404 ----
/* start the task in periodic mode */
retval = pthread_make_periodic_np(task->ostask,
! gethrtime() + period_nsec,
! (hrtime_t) period_nsec);
if (retval != 0) {
return RTAPI_FAIL;
***************
*** 412,418 ****
}
! if ( VERBOSE ) {
! rtapi_print ( "RTAPI: start_task %p\n", task );
! }
return RTAPI_SUCCESS;
--- 412,416 ----
}
! rtapi_print_dbg(VERBOSE, "RTAPI: start_task %p\n", task);
return RTAPI_SUCCESS;
***************
*** 437,443 ****
}
! if ( VERBOSE ) {
! rtapi_print ( "RTAPI: stop_task %p\n", task );
! }
return RTAPI_SUCCESS;
--- 435,439 ----
}
! rtapi_print_dbg(VERBOSE, "RTAPI: stop_task %p\n", task);
return RTAPI_SUCCESS;
***************
*** 497,501 ****
retval = pthread_make_periodic_np(*((pthread_t *) task),
! gethrtime() + period_nsec, period_nsec);
if (retval != 0) {
return RTAPI_FAIL;
--- 493,497 ----
retval = pthread_make_periodic_np(*((pthread_t *) task),
! gethrtime() + period_nsec, period_nsec);
if (retval != 0) {
return RTAPI_FAIL;
***************
*** 512,516 ****
! int rtapi_task_get_handle(rtapi_task_handle *taskptr)
{
int n;
--- 508,512 ----
! int rtapi_task_get_handle(rtapi_task_handle * taskptr)
{
int n;
***************
*** 526,533 ****
/* find entry in task array */
n = 0;
! while ( ( n < RTAPI_MAX_TASKS ) && ( task_array[n]->ostask != task_id ) ) {
n++;
}
! if ( n == RTAPI_MAX_TASKS ) {
return RTAPI_INVAL;
}
--- 522,529 ----
/* find entry in task array */
n = 0;
! while ((n < RTAPI_MAX_TASKS) && (task_array[n]->ostask != task_id)) {
n++;
}
! if (n == RTAPI_MAX_TASKS) {
return RTAPI_INVAL;
}
***************
*** 551,555 ****
*/
! #define KEYSTR_LEN 16 /* larger than number of digits in MAX_INT */
static void genstr(unsigned int i, char *str)
--- 547,551 ----
*/
! #define KEYSTR_LEN 16 /* larger than number of digits in MAX_INT */
static void genstr(unsigned int i, char *str)
***************
*** 612,619 ****
shmem_usage_count++;
! if ( VERBOSE ) {
! rtapi_print ( "RTAPI: new_shmem %p, key = %d, count = %d\n",
! shmem, key, shmem_usage_count );
! }
return RTAPI_SUCCESS;
--- 608,613 ----
shmem_usage_count++;
! rtapi_print_dbg(VERBOSE, "RTAPI: new_shmem %p, key = %d, count = %d\n",
! shmem, key, shmem_usage_count);
return RTAPI_SUCCESS;
***************
*** 661,668 ****
shmem_usage_count--;
! if ( VERBOSE ) {
! rtapi_print ( "RTAPI: delete_shmem %p, count = %d\n",
! shmem, shmem_usage_count );
! }
return RTAPI_SUCCESS;
--- 655,660 ----
shmem_usage_count--;
! rtapi_print_dbg(VERBOSE, "RTAPI: delete_shmem %p, count = %d\n",
! shmem, shmem_usage_count);
return RTAPI_SUCCESS;
***************
*** 686,689 ****
--- 678,696 ----
+ void rtapi_print_dbg(int dbg, const char *fmt, ...)
+ {
+ va_list args;
+ enum { BUFFERLEN = 256 };
+ static char buffer[BUFFERLEN];
+
+ if (dbg < debug) {
+ va_start(args, fmt);
+ vsprintf(buffer, fmt, args);
+ rtl_printf(buffer);
+ va_end(args);
+ }
+ }
+
+
void rtapi_outb(unsigned char byte, unsigned int port)
{
***************
*** 702,706 ****
! int rtapi_assign_interrupt_handler(unsigned int irq, void (*handler)(void) )
{
int retval;
--- 709,713 ----
! int rtapi_assign_interrupt_handler(unsigned int irq, void (*handler) (void))
{
int retval;
***************
*** 724,731 ****
int_usage_count++;
! if ( VERBOSE ) {
! rtapi_print ( "RTAPI: assign_intr_handler for int %d, count = %d\n",
! irq, int_usage_count );
! }
return RTAPI_SUCCESS;
--- 731,737 ----
int_usage_count++;
! rtapi_print_dbg(VERBOSE,
! "RTAPI: assign_intr_handler for int %d, count = %d\n", irq,
! int_usage_count);
return RTAPI_SUCCESS;
***************
*** 751,758 ****
int_usage_count--;
! if ( VERBOSE ) {
! rtapi_print ( "RTAPI: free_intr_handler for int %d, count = %d\n",
! irq, int_usage_count );
! }
return RTAPI_SUCCESS;
--- 757,763 ----
int_usage_count--;
! rtapi_print_dbg(VERBOSE,
! "RTAPI: free_intr_handler for int %d, count = %d\n", irq,
! int_usage_count);
return RTAPI_SUCCESS;
***************
*** 805,809 ****
/* ask the OS to initialize the semaphore */
retval = sem_init(&(sem->ossem), 0, 0);
! if ( retval != 0 ) {
kfree(sem);
return RTAPI_FAIL;
--- 810,814 ----
/* ask the OS to initialize the semaphore */
retval = sem_init(&(sem->ossem), 0, 0);
! if (retval != 0) {
kfree(sem);
return RTAPI_FAIL;
***************
*** 819,826 ****
sem_usage_count++;
! if ( VERBOSE ) {
! rtapi_print ( "RTAPI: new_sem %p, count = %d\n",
! sem, sem_usage_count );
! }
return RTAPI_SUCCESS;
--- 824,829 ----
sem_usage_count++;
! rtapi_print_dbg(VERBOSE, "RTAPI: new_sem %p, count = %d\n", sem,
! sem_usage_count);
return RTAPI_SUCCESS;
***************
*** 847,854 ****
sem_usage_count--;
! if ( VERBOSE ) {
! rtapi_print ( "RTAPI: delete_sem %p, count = %d\n",
! sem, sem_usage_count );
! }
return RTAPI_SUCCESS;
--- 850,855 ----
sem_usage_count--;
! rtapi_print_dbg(VERBOSE, "RTAPI: delete_sem %p, count = %d\n", sem,
! sem_usage_count);
return RTAPI_SUCCESS;
***************
*** 946,953 ****
fifo_usage_count++;
! if ( VERBOSE ) {
! rtapi_print ( "RTAPI: new_fifo %p, count = %d\n",
! fifo, fifo_usage_count );
! }
return RTAPI_SUCCESS;
--- 947,952 ----
fifo_usage_count++;
! rtapi_print_dbg(VERBOSE, "RTAPI: new_fifo %p, count = %d\n", fifo,
! fifo_usage_count);
return RTAPI_SUCCESS;
***************
*** 974,981 ****
fifo_usage_count--;
! if ( VERBOSE ) {
! rtapi_print ( "RTAPI: delete_fifo %p, count = %d\n",
! fifo, fifo_usage_count );
! }
return RTAPI_SUCCESS;
--- 973,978 ----
fifo_usage_count--;
! rtapi_print_dbg(VERBOSE, "RTAPI: delete_fifo %p, count = %d\n",
! fifo, fifo_usage_count);
return RTAPI_SUCCESS;
Index: rtl_ulapi.c
===================================================================
RCS file: /cvsroot/emc/rtapi/src/rtapi/rtl_ulapi.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** rtl_ulapi.c 5 Aug 2003 03:51:00 -0000 1.3
--- rtl_ulapi.c 9 Aug 2003 19:43:09 -0000 1.4
***************
*** 90,99 ****
char keystr[KEYSTR_LEN];
! printf ( "ulapi_shmem_new: entry\n" );
/* validate shmemptr */
if (shmemptr == NULL) {
return ULAPI_INVAL;
}
! printf ( "ulapi_shmem_new: pointer OK\n" );
/* alloc space for shmem structure */
shmem = malloc(sizeof(struct ulapi_shmem));
--- 90,99 ----
char keystr[KEYSTR_LEN];
! printf("ulapi_shmem_new: entry\n");
/* validate shmemptr */
if (shmemptr == NULL) {
return ULAPI_INVAL;
}
! printf("ulapi_shmem_new: pointer OK\n");
/* alloc space for shmem structure */
shmem = malloc(sizeof(struct ulapi_shmem));
***************
*** 101,110 ****
return ULAPI_NOMEM;
}
! printf ( "ulapi_shmem_new: allocated struct\n" );
/* convert key to a string */
genstr((unsigned int) key, keystr);
/* now get shared memory block from OS */
! printf ( "ulapi_shmem_new: converted key\n" );
shmem->mem = mbuff_alloc(keystr, size);
if (shmem->mem == NULL) {
--- 101,110 ----
return ULAPI_NOMEM;
}
! printf("ulapi_shmem_new: allocated struct\n");
/* convert key to a string */
genstr((unsigned int) key, keystr);
/* now get shared memory block from OS */
! printf("ulapi_shmem_new: converted key\n");
shmem->mem = mbuff_alloc(keystr, size);
if (shmem->mem == NULL) {
***************
*** 112,116 ****
return ULAPI_NOMEM;
}
! printf ( "ulapi_shmem_new: opened shmbuf\n" );
/* label as a valid shmem structure */
--- 112,116 ----
return ULAPI_NOMEM;
}
! printf("ulapi_shmem_new: opened shmbuf\n");
/* label as a valid shmem structure */
Index: sim_rtapi.c
===================================================================
RCS file: /cvsroot/emc/rtapi/src/rtapi/sim_rtapi.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** sim_rtapi.c 4 Aug 2003 06:00:25 -0000 1.5
--- sim_rtapi.c 9 Aug 2003 19:43:09 -0000 1.6
***************
*** 20,38 ****
struct rtapi_task {
! int magic; /* to check for valid handle */
! pthread_t id; /* OS specific task identifier */
! int arg; /* argument for task function */
! void (*taskcode)( int ); /* pointer to task function */
! };
struct rtapi_shmem {
! int magic; /* to check for valid handle */
! int key; /* key to shared memory area */
! int id; /* OS identifier for shmem */
! unsigned long int size; /* size of shared memory area */
! void *mem; /* pointer to the memory */
! };
! #define TASK_MAGIC 21979 /* random numbers used as signatures */
#define SHMEM_MAGIC 25453
--- 20,38 ----
struct rtapi_task {
! int magic; /* to check for valid handle */
! pthread_t id; /* OS specific task identifier */
! int arg; /* argument for task function */
! void (*taskcode) (int); /* pointer to task function */
! };
struct rtapi_shmem {
! int magic; /* to check for valid handle */
! int key; /* key to shared memory area */
! int id; /* OS identifier for shmem */
! unsigned long int size; /* size of shared memory area */
! void *mem; /* pointer to the memory */
! };
! #define TASK_MAGIC 21979 /* random numbers used as signatures */
#define SHMEM_MAGIC 25453
***************
*** 82,89 ****
int rtapi_init(void)
{
! int n;
/* clear the task array - if magic doesn't contain the magic
number, that means that array entry is empty */
! for ( n = 0 ; n < MAX_TASKS ; n++ )
task_array[n].magic = 0;
--- 82,89 ----
int rtapi_init(void)
{
! int n;
/* clear the task array - if magic doesn't contain the magic
number, that means that array entry is empty */
! for (n = 0; n < MAX_TASKS; n++)
task_array[n].magic = 0;
***************
*** 104,114 ****
! int rtapi_task_new( rtapi_task_handle *taskptr )
{
! int n;
! rtapi_task_handle task;
/* validate taskptr */
! if ( taskptr == NULL )
return RTAPI_INVAL;
--- 104,114 ----
! int rtapi_task_new(rtapi_task_handle * taskptr)
{
! int n;
! rtapi_task_handle task;
/* validate taskptr */
! if (taskptr == NULL)
return RTAPI_INVAL;
***************
*** 120,127 ****
atomic test and set for the magic number. Not tonight! */
n = 0;
! while ( ( n < MAX_TASKS ) &&
! ( task_array[n].magic == TASK_MAGIC ) )
n++;
! if ( n == MAX_TASKS )
return RTAPI_NOMEM;
task = &(task_array[n]);
--- 120,126 ----
atomic test and set for the magic number. Not tonight! */
n = 0;
! while ((n < MAX_TASKS) && (task_array[n].magic == TASK_MAGIC))
n++;
! if (n == MAX_TASKS)
return RTAPI_NOMEM;
task = &(task_array[n]);
***************
*** 138,147 ****
! int rtapi_task_delete( rtapi_task_handle task )
{
/* validate task handle */
! if ( task == NULL )
return RTAPI_BADH;
! if ( task->magic != TASK_MAGIC )
return RTAPI_BADH;
--- 137,146 ----
! int rtapi_task_delete(rtapi_task_handle task)
{
/* validate task handle */
! if (task == NULL)
return RTAPI_BADH;
! if (task->magic != TASK_MAGIC)
return RTAPI_BADH;
***************
*** 156,167 ****
/* we solve this with a wrapper function that meets pthread's needs */
! static void *wrapper ( void *arg )
{
! rtapi_task_handle task;
/* use the argument to point to the task data */
task = arg;
/* call the task function with the task argument */
! (task->taskcode)( task->arg );
/* done */
return NULL;
--- 155,166 ----
/* we solve this with a wrapper function that meets pthread's needs */
! static void *wrapper(void *arg)
{
! rtapi_task_handle task;
/* use the argument to point to the task data */
task = arg;
/* call the task function with the task argument */
! (task->taskcode) (task->arg);
/* done */
return NULL;
***************
*** 169,178 ****
! int rtapi_task_start( rtapi_task_handle task,
! void (*taskcode)( int ),
! int arg, int prio,
! unsigned long int stacksize,
! unsigned long int period_nsec,
! unsigned char uses_fp )
{
int retval;
--- 168,176 ----
! int rtapi_task_start(rtapi_task_handle task,
! void (*taskcode) (int),
! int arg, int prio,
! unsigned long int stacksize,
! unsigned long int period_nsec, unsigned char uses_fp)
{
int retval;
***************
*** 181,210 ****
/* validate task handle */
! if ( task == NULL )
return RTAPI_BADH;
! if ( task->magic != TASK_MAGIC )
return RTAPI_BADH;
/* check requested priority */
! if ( ( prio < rtapi_prio_highest() ) ||
! ( prio > rtapi_prio_lowest() ) )
return RTAPI_INVAL;
/* get default thread attributes */
! pthread_attr_init( &attr );
/* set priority */
sched_param.sched_priority = prio;
! pthread_attr_setschedparam( &attr, &sched_param );
/* create the thread - use the wrapper function, pass it a pointer
! to the task structure so it can call the actual task function */
task->taskcode = taskcode;
task->arg = arg;
! retval = pthread_create( &(task->id), &attr, wrapper, (void *)task );
! if ( retval != 0 )
return RTAPI_NOMEM;
! retval = pthread_setschedparam( task->id, SCHED_FIFO, &sched_param);
! if ( retval != 0 )
/* need to be root to set SCHED_FIFO */
return RTAPI_PERM;
--- 179,207 ----
/* validate task handle */
! if (task == NULL)
return RTAPI_BADH;
! if (task->magic != TASK_MAGIC)
return RTAPI_BADH;
/* check requested priority */
! if ((prio < rtapi_prio_highest()) || (prio > rtapi_prio_lowest()))
return RTAPI_INVAL;
/* get default thread attributes */
! pthread_attr_init(&attr);
/* set priority */
sched_param.sched_priority = prio;
! pthread_attr_setschedparam(&attr, &sched_param);
/* create the thread - use the wrapper function, pass it a pointer
! to the task structure so it can call the actual task function */
task->taskcode = taskcode;
task->arg = arg;
! retval = pthread_create(&(task->id), &attr, wrapper, (void *) task);
! if (retval != 0)
return RTAPI_NOMEM;
! retval = pthread_setschedparam(task->id, SCHED_FIFO, &sched_param);
! if (retval != 0)
/* need to be root to set SCHED_FIFO */
return RTAPI_PERM;
***************
*** 213,272 ****
! int rtapi_task_stop( rtapi_task_handle task )
{
! int retval;
/* validate task handle */
! if ( task == NULL )
return RTAPI_BADH;
! if ( task->magic != TASK_MAGIC )
return RTAPI_BADH;
! retval = pthread_cancel( task->id );
! if ( retval != 0 )
return RTAPI_FAIL;
return RTAPI_SUCCESS;
}
! int rtapi_task_pause( rtapi_task_handle task )
{
/* validate task handle */
! if ( task == NULL )
return RTAPI_BADH;
! if ( task->magic != TASK_MAGIC )
return RTAPI_BADH;
/* FIXME - Fred originally had this function return success.
! I changed it to return Not Supported. Is that right? */
return RTAPI_UNSUP;
}
! int rtapi_task_resume( rtapi_task_handle task )
{
/* validate task handle */
! if ( task == NULL )
return RTAPI_BADH;
! if ( task->magic != TASK_MAGIC )
return RTAPI_BADH;
/* FIXME - Fred originally had this function return success.
! I changed it to return Not Supported. Is that right? */
return RTAPI_UNSUP;
}
! int rtapi_task_set_period( rtapi_task_handle task,
! unsigned long int period_nsec )
{
/* validate task handle */
! if ( task == NULL )
return RTAPI_BADH;
! if ( task->magic != TASK_MAGIC )
return RTAPI_BADH;
/* FIXME - Fred originally had this function return success.
! I changed it to return Not Supported. Is that right? */
return RTAPI_UNSUP;
}
--- 210,269 ----
! int rtapi_task_stop(rtapi_task_handle task)
{
! int retval;
/* validate task handle */
! if (task == NULL)
return RTAPI_BADH;
! if (task->magic != TASK_MAGIC)
return RTAPI_BADH;
! retval = pthread_cancel(task->id);
! if (retval != 0)
return RTAPI_FAIL;
return RTAPI_SUCCESS;
}
! int rtapi_task_pause(rtapi_task_handle task)
{
/* validate task handle */
! if (task == NULL)
return RTAPI_BADH;
! if (task->magic != TASK_MAGIC)
return RTAPI_BADH;
/* FIXME - Fred originally had this function return success.
! I changed it to return Not Supported. Is that right? */
return RTAPI_UNSUP;
}
! int rtapi_task_resume(rtapi_task_handle task)
{
/* validate task handle */
! if (task == NULL)
return RTAPI_BADH;
! if (task->magic != TASK_MAGIC)
return RTAPI_BADH;
/* FIXME - Fred originally had this function return success.
! I changed it to return Not Supported. Is that right? */
return RTAPI_UNSUP;
}
! int rtapi_task_set_period(rtapi_task_handle task,
! unsigned long int period_nsec)
{
/* validate task handle */
! if (task == NULL)
return RTAPI_BADH;
! if (task->magic != TASK_MAGIC)
return RTAPI_BADH;
/* FIXME - Fred originally had this function return success.
! I changed it to return Not Supported. Is that right? */
return RTAPI_UNSUP;
}
***************
*** 282,292 ****
! int rtapi_task_get_handle( rtapi_task_handle *taskptr )
{
! int n;
! pthread_t task_id;
/* validate taskptr */
! if ( taskptr == NULL )
return RTAPI_INVAL;
--- 279,289 ----
! int rtapi_task_get_handle(rtapi_task_handle * taskptr)
{
! int n;
! pthread_t task_id;
/* validate taskptr */
! if (taskptr == NULL)
return RTAPI_INVAL;
***************
*** 296,302 ****
/* search task array for a matching entry */
n = 0;
! while ( n < MAX_TASKS ) {
! if ( ( task_array[n].magic == TASK_MAGIC ) &&
! ( task_array[n].id == task_id ) ) {
/* found it */
*taskptr = &(task_array[n]);
--- 293,298 ----
/* search task array for a matching entry */
n = 0;
! while (n < MAX_TASKS) {
! if ((task_array[n].magic == TASK_MAGIC) && (task_array[n].id == task_id)) {
/* found it */
*taskptr = &(task_array[n]);
***************
*** 309,336 ****
! int rtapi_shmem_new( int key, unsigned int size,
! rtapi_shmem_handle *shmemptr )
{
! rtapi_shmem_handle shmem;
/* validate shmemptr */
! if ( shmemptr == NULL )
return RTAPI_INVAL;
/* alloc space for shmem structure */
! shmem = malloc( sizeof(struct rtapi_shmem) );
! if ( shmem == NULL )
return RTAPI_NOMEM;
/* now get shared memory block from OS */
! shmem->id = shmget( (key_t) key, (int) size, IPC_CREAT | 0666 );
! if ( shmem->id == -1 ) {
! free ( shmem );
return RTAPI_NOMEM;
}
/* and map it into process space */
! shmem->mem = shmat( shmem->id, 0, 0);
! if ( (int)(shmem->mem) == -1 ) {
! free ( shmem );
return RTAPI_NOMEM;
}
--- 305,331 ----
! int rtapi_shmem_new(int key, unsigned int size, rtapi_shmem_handle * shmemptr)
{
! rtapi_shmem_handle shmem;
/* validate shmemptr */
! if (shmemptr == NULL)
return RTAPI_INVAL;
/* alloc space for shmem structure */
! shmem = malloc(sizeof(struct rtapi_shmem));
! if (shmem == NULL)
return RTAPI_NOMEM;
/* now get shared memory block from OS */
! shmem->id = shmget((key_t) key, (int) size, IPC_CREAT | 0666);
! if (shmem->id == -1) {
! free(shmem);
return RTAPI_NOMEM;
}
/* and map it into process space */
! shmem->mem = shmat(shmem->id, 0, 0);
! if ((int) (shmem->mem) == -1) {
! free(shmem);
return RTAPI_NOMEM;
}
***************
*** 348,357 ****
! int rtapi_shmem_getptr ( rtapi_shmem_handle shmem, void **ptr )
{
/* validate shmem handle */
! if ( shmem == NULL )
return RTAPI_BADH;
! if ( shmem->magic != SHMEM_MAGIC )
return RTAPI_BADH;
--- 343,352 ----
! int rtapi_shmem_getptr(rtapi_shmem_handle shmem, void **ptr)
{
/* validate shmem handle */
! if (shmem == NULL)
return RTAPI_BADH;
! if (shmem->magic != SHMEM_MAGIC)
return RTAPI_BADH;
***************
*** 362,381 ****
! int rtapi_shmem_delete( rtapi_shmem_handle shmem )
{
! struct shmid_ds d;
! int r1, r2;
/* validate shmem handle */
! if ( shmem == NULL )
return RTAPI_BADH;
! if ( shmem->magic != SHMEM_MAGIC )
return RTAPI_BADH;
/* unmap the shared memory */
! r1 = shmdt( shmem->mem );
/* destroy the shared memory */
! r2 = shmctl( shmem->id, IPC_RMID, &d );
/* FIXME - Fred had the first two arguments reversed. I changed
them to match the shmctl man page on my machine. Since his way
--- 357,376 ----
! int rtapi_shmem_delete(rtapi_shmem_handle shmem)
{
! struct shmid_ds d;
! int r1, r2;
/* validate shmem handle */
! if (shmem == NULL)
return RTAPI_BADH;
! if (shmem->magic != SHMEM_MAGIC)
return RTAPI_BADH;
/* unmap the shared memory */
! r1 = shmdt(shmem->mem);
/* destroy the shared memory */
! r2 = shmctl(shmem->id, IPC_RMID, &d);
/* FIXME - Fred had the first two arguments reversed. I changed
them to match the shmctl man page on my machine. Since his way
***************
*** 385,391 ****
/* free the shmem structure */
shmem->magic = 0;
! free ( shmem );
! if ( ( r1 != 0 ) || ( r2 != 0 ) )
return RTAPI_FAIL;
return RTAPI_SUCCESS;
--- 380,386 ----
/* free the shmem structure */
shmem->magic = 0;
! free(shmem);
! if ((r1 != 0) || (r2 != 0))
return RTAPI_FAIL;
return RTAPI_SUCCESS;
***************
*** 402,405 ****
--- 397,411 ----
}
+
+ void rtapi_print_dbg(int dbg, const char *fmt, ...)
+ {
+ va_list args;
+
+ va_start(args, fmt);
+ vprintf(fmt, args);
+ va_end(args);
+ }
+
+
void rtapi_outb(unsigned char byte, unsigned int port)
{
***************
*** 426,435 ****
}
! int rtapi_enable_interrupt( unsigned int irq )
{
return RTAPI_UNSUP;
}
! int rtapi_disable_interrupt( unsigned int irq )
{
return RTAPI_UNSUP;
--- 432,441 ----
}
! int rtapi_enable_interrupt(unsigned int irq)
{
return RTAPI_UNSUP;
}
! int rtapi_disable_interrupt(unsigned int irq)
{
return RTAPI_UNSUP;
***************
*** 439,463 ****
/* FIXME - no support for semaphores */
! int rtapi_sem_new( rtapi_sem_handle *semptr )
{
return RTAPI_UNSUP;
}
! int rtapi_sem_delete( rtapi_sem_handle sem )
{
return RTAPI_UNSUP;
}
! int rtapi_sem_give( rtapi_sem_handle sem )
{
return RTAPI_UNSUP;
}
! int rtapi_sem_take( rtapi_sem_handle sem )
{
return RTAPI_UNSUP;
}
! int rtapi_sem_try( rtapi_sem_handle sem )
{
return RTAPI_UNSUP;
--- 445,469 ----
/* FIXME - no support for semaphores */
! int rtapi_sem_new(rtapi_sem_handle * semptr)
{
return RTAPI_UNSUP;
}
! int rtapi_sem_delete(rtapi_sem_handle sem)
{
return RTAPI_UNSUP;
}
! int rtapi_sem_give(rtapi_sem_handle sem)
{
return RTAPI_UNSUP;
}
! int rtapi_sem_take(rtapi_sem_handle sem)
{
return RTAPI_UNSUP;
}
! int rtapi_sem_try(rtapi_sem_handle sem)
{
return RTAPI_UNSUP;
***************
*** 467,493 ****
/* FIXME - no support for fifos */
! int rtapi_fifo_new( int key, unsigned long int size,
! rtapi_fifo_handle *fifoptr )
{
return RTAPI_UNSUP;
}
! int rtapi_fifo_delete( rtapi_fifo_handle fifo )
{
return RTAPI_UNSUP;
}
! int rtapi_fifo_read( rtapi_fifo_handle fifo,
! char *buf, unsigned long int size)
{
return RTAPI_UNSUP;
}
! int rtapi_fifo_write( rtapi_fifo_handle fifo,
! char *buf, unsigned long int size)
{
return RTAPI_UNSUP;
}
-
-
-
--- 473,495 ----
/* FIXME - no support for fifos */
! int rtapi_fifo_new(int key, unsigned long int size,
! rtapi_fifo_handle * fifoptr)
{
return RTAPI_UNSUP;
}
! int rtapi_fifo_delete(rtapi_fifo_handle fifo)
{
return RTAPI_UNSUP;
}
! int rtapi_fifo_read(rtapi_fifo_handle fifo, char *buf, unsigned long int size)
{
return RTAPI_UNSUP;
}
! int rtapi_fifo_write(rtapi_fifo_handle fifo,
! char *buf, unsigned long int size)
{
return RTAPI_UNS...
[truncated message content] |
|
From: <pa...@us...> - 2003-08-09 19:35:31
|
Update of /cvsroot/emc/rtapi/examples/fifo
In directory sc8-pr-cvs1:/tmp/cvs-serv30095
Modified Files:
fifotask.c
Log Message:
Started using rtapi_print_dbg
Index: fifotask.c
===================================================================
RCS file: /cvsroot/emc/rtapi/examples/fifo/fifotask.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** fifotask.c 5 Aug 2003 03:51:00 -0000 1.8
--- fifotask.c 9 Aug 2003 19:35:28 -0000 1.9
***************
*** 11,15 ****
static rtapi_task_handle fifo_task = 0; /* the task structure */
static rtapi_fifo_handle fifo;
! enum { TIMER_PERIOD_NSEC = 10000000 }; /* timer period, in nanoseconds */
enum { FIFO_PERIOD_NSEC = 1000000000 }; /* timer period, in nanoseconds */
enum { FIFO_STACKSIZE = 1024 }; /* how big the stack is */
--- 11,15 ----
static rtapi_task_handle fifo_task = 0; /* the task structure */
static rtapi_fifo_handle fifo;
! enum { TIMER_PERIOD_NSEC = 10000000 }; /* timer period, in nanoseconds */
enum { FIFO_PERIOD_NSEC = 1000000000 }; /* timer period, in nanoseconds */
enum { FIFO_STACKSIZE = 1024 }; /* how big the stack is */
***************
*** 29,33 ****
rtapi_fifo_write(fifo, buffer, count);
buffer[n] = '\0';
! rtapi_print("fifotask: wrote '%s'\n", buffer);
count++;
if (count > 9)
--- 29,33 ----
rtapi_fifo_write(fifo, buffer, count);
buffer[n] = '\0';
! rtapi_print_dbg(4, "fifotask: wrote '%s'\n", buffer);
count++;
if (count > 9)
***************
*** 39,42 ****
--- 39,43 ----
}
+
/* part of the Linux kernel module that kicks off the fifo task */
int rtapi_app_main(void)
***************
*** 48,53 ****
retval = rtapi_fifo_new(FIFO_KEY, FIFO_SIZE, &fifo);
if (retval != RTAPI_SUCCESS) {
! rtapi_print("fifotask init: rtapi_fifo_new returned %d\n", retval);
! return -1;
}
--- 49,54 ----
retval = rtapi_fifo_new(FIFO_KEY, FIFO_SIZE, &fifo);
if (retval != RTAPI_SUCCESS) {
! rtapi_print("fifotask init: rtapi_fifo_new failed with %d\n", retval);
! goto no_fifo;
}
***************
*** 55,60 ****
retval = rtapi_clock_set_period(TIMER_PERIOD_NSEC);
if (retval != RTAPI_SUCCESS) {
! rtapi_print("fifotask init: rtapi_clock_set_period returned %d\n", retval);
! return -1;
}
--- 56,62 ----
retval = rtapi_clock_set_period(TIMER_PERIOD_NSEC);
if (retval != RTAPI_SUCCESS) {
! rtapi_print("fifotask init: rtapi_clock_set_period failed with %d\n",
! retval);
! goto no_task;
}
***************
*** 65,70 ****
retval = rtapi_task_new(&fifo_task);
if (retval != RTAPI_SUCCESS) {
! rtapi_print("fifotask init: rtapi_task_new returned %d\n", retval);
! return -1;
}
--- 67,72 ----
retval = rtapi_task_new(&fifo_task);
if (retval != RTAPI_SUCCESS) {
! rtapi_print("fifotask init: rtapi_task_new failed with %d\n", retval);
! goto no_task;
}
***************
*** 74,79 ****
FIFO_STACKSIZE, FIFO_PERIOD_NSEC, RTAPI_NO_FP);
if (retval != RTAPI_SUCCESS) {
! rtapi_print("fifotask init: rtapi_task_start returned %d\n", retval);
! return -1;
}
--- 76,81 ----
FIFO_STACKSIZE, FIFO_PERIOD_NSEC, RTAPI_NO_FP);
if (retval != RTAPI_SUCCESS) {
! rtapi_print("fifotask init: rtapi_task_start failed with %d\n", retval);
! goto no_start;
}
***************
*** 81,84 ****
--- 83,94 ----
return 0;
+
+ /* clean up after failures so that the rtapi can be removed cleanly */
+ no_start:
+ rtapi_task_delete(fifo_task);
+ no_task:
+ rtapi_fifo_delete(fifo);
+ no_fifo:
+ return retval;
}
***************
*** 90,106 ****
retval = rtapi_task_stop(fifo_task);
if (retval != RTAPI_SUCCESS) {
! rtapi_print("fifotask exit: rtapi_task_stop returned %d\n", retval);
! return;
}
retval = rtapi_task_delete(fifo_task);
if (retval != RTAPI_SUCCESS) {
! rtapi_print("fifotask exit: rtapi_task_delete returned %d\n", retval);
! return;
}
retval = rtapi_fifo_delete(fifo);
if (retval != RTAPI_SUCCESS) {
! rtapi_print("fifotask exit: rtapi_fifo_delete returned %d\n", retval);
! return;
}
--- 100,114 ----
retval = rtapi_task_stop(fifo_task);
if (retval != RTAPI_SUCCESS) {
! rtapi_print("fifotask exit: rtapi_task_stop failed with %d\n", retval);
}
+
retval = rtapi_task_delete(fifo_task);
if (retval != RTAPI_SUCCESS) {
! rtapi_print("fifotask exit: rtapi_task_delete failed with %d\n", retval);
}
retval = rtapi_fifo_delete(fifo);
if (retval != RTAPI_SUCCESS) {
! rtapi_print("fifotask exit: rtapi_fifo_delete failed with %d\n", retval);
}
|
|
From: <wsh...@us...> - 2003-08-08 17:31:04
|
Update of /cvsroot/emc/rcslib
In directory sc8-pr-cvs1:/tmp/cvs-serv32172
Modified Files:
Tag: wps_multiplat_dev_branch
Makefile.am Makefile.in
Log Message:
Remove omac.hh
Index: Makefile.am
===================================================================
RCS file: /cvsroot/emc/rcslib/Makefile.am,v
retrieving revision 1.7.2.2
retrieving revision 1.7.2.3
diff -C2 -d -r1.7.2.2 -r1.7.2.3
*** Makefile.am 8 Aug 2003 16:38:58 -0000 1.7.2.2
--- Makefile.am 8 Aug 2003 17:31:01 -0000 1.7.2.3
***************
*** 722,726 ****
src/cms/udpmem.hh\
src/cms/xdr_msg.hh\
- src/cms/omac.hh\
src/cms/httpnml.hh\
src/node/cmd_msg.hh\
--- 722,725 ----
Index: Makefile.in
===================================================================
RCS file: /cvsroot/emc/rcslib/Makefile.in,v
retrieving revision 1.7.2.2
retrieving revision 1.7.2.3
diff -C2 -d -r1.7.2.2 -r1.7.2.3
*** Makefile.in 8 Aug 2003 16:38:58 -0000 1.7.2.2
--- Makefile.in 8 Aug 2003 17:31:01 -0000 1.7.2.3
***************
*** 815,819 ****
src/cms/udpmem.hh\
src/cms/xdr_msg.hh\
- src/cms/omac.hh\
src/cms/httpnml.hh\
src/node/cmd_msg.hh\
--- 815,818 ----
|
|
From: <wsh...@us...> - 2003-08-08 16:39:02
|
Update of /cvsroot/emc/rcslib
In directory sc8-pr-cvs1:/tmp/cvs-serv23060
Modified Files:
Tag: wps_multiplat_dev_branch
Makefile.am Makefile.in configure rcs_config.h.in
Log Message:
Remove w3c stuff
Index: Makefile.am
===================================================================
RCS file: /cvsroot/emc/rcslib/Makefile.am,v
retrieving revision 1.7.2.1
retrieving revision 1.7.2.2
diff -C2 -d -r1.7.2.1 -r1.7.2.2
*** Makefile.am 8 Aug 2003 14:21:04 -0000 1.7.2.1
--- Makefile.am 8 Aug 2003 16:38:58 -0000 1.7.2.2
***************
*** 575,580 ****
src/stg_clss/Makefile.lib\
src/test/Makefile\
- src/w3c/Makefile\
- src/w3c/Makefile.lib\
src/java/test.nml\
src/test/cgtest.nml\
--- 575,578 ----
***************
*** 671,804 ****
src/posemath/posemath.h\
src/posemath/sincos.h\
- src/w3c/HTAABrow.h\
- src/w3c/HTAAUtil.h\
- src/w3c/HTANSI.h\
- src/w3c/HTAccess.h\
- src/w3c/HTAlert.h\
- src/w3c/HTAncMan.h\
- src/w3c/HTAnchor.h\
- src/w3c/HTArray.h\
- src/w3c/HTAssoc.h\
- src/w3c/HTAtom.h\
- src/w3c/HTBInit.h\
- src/w3c/HTBTree.h\
- src/w3c/HTBind.h\
- src/w3c/HTBound.h\
- src/w3c/HTBufWrt.h\
- src/w3c/HTCache.h\
- src/w3c/HTChannl.h\
- src/w3c/HTChunk.h\
- src/w3c/HTConLen.h\
- src/w3c/HTDNS.h\
- src/w3c/HTDescpt.h\
- src/w3c/HTDialog.h\
- src/w3c/HTDir.h\
- src/w3c/HTEPtoCl.h\
- src/w3c/HTError.h\
- src/w3c/HTEscape.h\
- src/w3c/HTEvent.h\
- src/w3c/HTEvntrg.h\
- src/w3c/HTFTP.h\
- src/w3c/HTFTPDir.h\
- src/w3c/HTFWrite.h\
- src/w3c/HTFile.h\
- src/w3c/HTFilter.h\
- src/w3c/HTFormat.h\
- src/w3c/HTGopher.h\
- src/w3c/HTGuess.h\
- src/w3c/HTHInit.h\
- src/w3c/HTHeader.h\
- src/w3c/HTHist.h\
- src/w3c/HTHome.h\
- src/w3c/HTHost.h\
- src/w3c/HTIOStream.h\
- src/w3c/HTIcons.h\
- src/w3c/HTInet.h\
- src/w3c/HTInit.h\
- src/w3c/HTLib.h\
- src/w3c/HTLink.h\
- src/w3c/HTList.h\
- src/w3c/HTLocal.h\
- src/w3c/HTLog.h\
- src/w3c/HTMIME.h\
- src/w3c/HTMIMERq.h\
- src/w3c/HTMIMImp.h\
- src/w3c/HTMIMPrs.h\
- src/w3c/HTML.h\
- src/w3c/HTMLGen.h\
- src/w3c/HTMLPDTD.h\
- src/w3c/HTMemory.h\
- src/w3c/HTMerge.h\
- src/w3c/HTMethod.h\
- src/w3c/HTMulpar.h\
- src/w3c/HTMulti.h\
- src/w3c/HTMux.h\
- src/w3c/HTNDir.h\
- src/w3c/HTNet.h\
- src/w3c/HTNetMan.h\
- src/w3c/HTNetTxt.h\
- src/w3c/HTNews.h\
- src/w3c/HTNewsLs.h\
- src/w3c/HTNewsRq.h\
- src/w3c/HTPEP.h\
- src/w3c/HTParse.h\
- src/w3c/HTPlain.h\
- src/w3c/HTProfil.h\
- src/w3c/HTProt.h\
- src/w3c/HTProxy.h\
- src/w3c/HTReader.h\
- src/w3c/HTReq.h\
- src/w3c/HTReqMan.h\
- src/w3c/HTResMan.h\
- src/w3c/HTResponse.h\
- src/w3c/HTRules.h\
- src/w3c/HTSChunk.h\
- src/w3c/HTSocket.h\
- src/w3c/HTStream.h\
- src/w3c/HTString.h\
- src/w3c/HTStruct.h\
- src/w3c/HTStyle.h\
- src/w3c/HTTCP.h\
- src/w3c/HTTChunk.h\
- src/w3c/HTTP.h\
- src/w3c/HTTPGen.h\
- src/w3c/HTTPReq.h\
- src/w3c/HTTPRes.h\
- src/w3c/HTTPServ.h\
- src/w3c/HTTPUtil.h\
- src/w3c/HTTeXGen.h\
- src/w3c/HTTee.h\
- src/w3c/HTTelnet.h\
- src/w3c/HTTrans.h\
- src/w3c/HTUTree.h\
- src/w3c/HTUU.h\
- src/w3c/HTUser.h\
- src/w3c/HTUtils.h\
- src/w3c/HTWSRC.h\
- src/w3c/HTWWWStr.h\
- src/w3c/HTWriter.h\
- src/w3c/HTXParse.h\
- src/w3c/HText.h\
- src/w3c/SGML.h\
- src/w3c/WWWApp.h\
- src/w3c/WWWCache.h\
- src/w3c/WWWCore.h\
- src/w3c/WWWDir.h\
- src/w3c/WWWFTP.h\
- src/w3c/WWWFile.h\
- src/w3c/WWWGophe.h\
- src/w3c/WWWHTML.h\
- src/w3c/WWWHTTP.h\
- src/w3c/WWWInit.h\
- src/w3c/WWWLib.h\
- src/w3c/WWWMIME.h\
- src/w3c/WWWNews.h\
- src/w3c/WWWStream.h\
- src/w3c/WWWTelnt.h\
- src/w3c/WWWTrans.h\
- src/w3c/WWWUtil.h\
- src/w3c/WWWWAIS.h\
- src/w3c/sysdep.h\
- src/w3c/w3cconf.h\
src/rcs.hh\
src/rcs_defs.hh\
--- 669,672 ----
Index: Makefile.in
===================================================================
RCS file: /cvsroot/emc/rcslib/Makefile.in,v
retrieving revision 1.7.2.1
retrieving revision 1.7.2.2
diff -C2 -d -r1.7.2.1 -r1.7.2.2
*** Makefile.in 8 Aug 2003 14:21:04 -0000 1.7.2.1
--- Makefile.in 8 Aug 2003 16:38:58 -0000 1.7.2.2
***************
*** 667,672 ****
src/stg_clss/Makefile.lib\
src/test/Makefile\
- src/w3c/Makefile\
- src/w3c/Makefile.lib\
src/java/test.nml\
src/test/cgtest.nml\
--- 667,670 ----
***************
*** 764,897 ****
src/posemath/posemath.h\
src/posemath/sincos.h\
- src/w3c/HTAABrow.h\
- src/w3c/HTAAUtil.h\
- src/w3c/HTANSI.h\
- src/w3c/HTAccess.h\
- src/w3c/HTAlert.h\
- src/w3c/HTAncMan.h\
- src/w3c/HTAnchor.h\
- src/w3c/HTArray.h\
- src/w3c/HTAssoc.h\
- src/w3c/HTAtom.h\
- src/w3c/HTBInit.h\
- src/w3c/HTBTree.h\
- src/w3c/HTBind.h\
- src/w3c/HTBound.h\
- src/w3c/HTBufWrt.h\
- src/w3c/HTCache.h\
- src/w3c/HTChannl.h\
- src/w3c/HTChunk.h\
- src/w3c/HTConLen.h\
- src/w3c/HTDNS.h\
- src/w3c/HTDescpt.h\
- src/w3c/HTDialog.h\
- src/w3c/HTDir.h\
- src/w3c/HTEPtoCl.h\
- src/w3c/HTError.h\
- src/w3c/HTEscape.h\
- src/w3c/HTEvent.h\
- src/w3c/HTEvntrg.h\
- src/w3c/HTFTP.h\
- src/w3c/HTFTPDir.h\
- src/w3c/HTFWrite.h\
- src/w3c/HTFile.h\
- src/w3c/HTFilter.h\
- src/w3c/HTFormat.h\
- src/w3c/HTGopher.h\
- src/w3c/HTGuess.h\
- src/w3c/HTHInit.h\
- src/w3c/HTHeader.h\
- src/w3c/HTHist.h\
- src/w3c/HTHome.h\
- src/w3c/HTHost.h\
- src/w3c/HTIOStream.h\
- src/w3c/HTIcons.h\
- src/w3c/HTInet.h\
- src/w3c/HTInit.h\
- src/w3c/HTLib.h\
- src/w3c/HTLink.h\
- src/w3c/HTList.h\
- src/w3c/HTLocal.h\
- src/w3c/HTLog.h\
- src/w3c/HTMIME.h\
- src/w3c/HTMIMERq.h\
- src/w3c/HTMIMImp.h\
- src/w3c/HTMIMPrs.h\
- src/w3c/HTML.h\
- src/w3c/HTMLGen.h\
- src/w3c/HTMLPDTD.h\
- src/w3c/HTMemory.h\
- src/w3c/HTMerge.h\
- src/w3c/HTMethod.h\
- src/w3c/HTMulpar.h\
- src/w3c/HTMulti.h\
- src/w3c/HTMux.h\
- src/w3c/HTNDir.h\
- src/w3c/HTNet.h\
- src/w3c/HTNetMan.h\
- src/w3c/HTNetTxt.h\
- src/w3c/HTNews.h\
- src/w3c/HTNewsLs.h\
- src/w3c/HTNewsRq.h\
- src/w3c/HTPEP.h\
- src/w3c/HTParse.h\
- src/w3c/HTPlain.h\
- src/w3c/HTProfil.h\
- src/w3c/HTProt.h\
- src/w3c/HTProxy.h\
- src/w3c/HTReader.h\
- src/w3c/HTReq.h\
- src/w3c/HTReqMan.h\
- src/w3c/HTResMan.h\
- src/w3c/HTResponse.h\
- src/w3c/HTRules.h\
- src/w3c/HTSChunk.h\
- src/w3c/HTSocket.h\
- src/w3c/HTStream.h\
- src/w3c/HTString.h\
- src/w3c/HTStruct.h\
- src/w3c/HTStyle.h\
- src/w3c/HTTCP.h\
- src/w3c/HTTChunk.h\
- src/w3c/HTTP.h\
- src/w3c/HTTPGen.h\
- src/w3c/HTTPReq.h\
- src/w3c/HTTPRes.h\
- src/w3c/HTTPServ.h\
- src/w3c/HTTPUtil.h\
- src/w3c/HTTeXGen.h\
- src/w3c/HTTee.h\
- src/w3c/HTTelnet.h\
- src/w3c/HTTrans.h\
- src/w3c/HTUTree.h\
- src/w3c/HTUU.h\
- src/w3c/HTUser.h\
- src/w3c/HTUtils.h\
- src/w3c/HTWSRC.h\
- src/w3c/HTWWWStr.h\
- src/w3c/HTWriter.h\
- src/w3c/HTXParse.h\
- src/w3c/HText.h\
- src/w3c/SGML.h\
- src/w3c/WWWApp.h\
- src/w3c/WWWCache.h\
- src/w3c/WWWCore.h\
- src/w3c/WWWDir.h\
- src/w3c/WWWFTP.h\
- src/w3c/WWWFile.h\
- src/w3c/WWWGophe.h\
- src/w3c/WWWHTML.h\
- src/w3c/WWWHTTP.h\
- src/w3c/WWWInit.h\
- src/w3c/WWWLib.h\
- src/w3c/WWWMIME.h\
- src/w3c/WWWNews.h\
- src/w3c/WWWStream.h\
- src/w3c/WWWTelnt.h\
- src/w3c/WWWTrans.h\
- src/w3c/WWWUtil.h\
- src/w3c/WWWWAIS.h\
- src/w3c/sysdep.h\
- src/w3c/w3cconf.h\
src/rcs.hh\
src/rcs_defs.hh\
--- 762,765 ----
***************
*** 5890,5894 ****
$(am__remove_distdir)
mkdir $(distdir)
! $(mkinstalldirs) $(distdir)/etc $(distdir)/src $(distdir)/src/ce_miss $(distdir)/src/cms $(distdir)/src/java $(distdir)/src/java/diagapplet $(distdir)/src/java/diagapplet/CodeGen $(distdir)/src/java/diagapplet/plotter $(distdir)/src/java/diagapplet/utils $(distdir)/src/java/rcs $(distdir)/src/java/rcs/nml $(distdir)/src/java/rcs/posemath $(distdir)/src/java/rcs/utils $(distdir)/src/java/rcsdesign $(distdir)/src/java/ste $(distdir)/src/node $(distdir)/src/nt_xdr $(distdir)/src/os_intf $(distdir)/src/pcio $(distdir)/src/pmac $(distdir)/src/posemath $(distdir)/src/print $(distdir)/src/stg_clss $(distdir)/src/test $(distdir)/src/w3c
@list='$(DISTFILES)'; for file in $$list; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
--- 5758,5762 ----
$(am__remove_distdir)
mkdir $(distdir)
! $(mkinstalldirs) $(distdir)/etc $(distdir)/src $(distdir)/src/ce_miss $(distdir)/src/cms $(distdir)/src/java $(distdir)/src/java/diagapplet $(distdir)/src/java/diagapplet/CodeGen $(distdir)/src/java/diagapplet/plotter $(distdir)/src/java/diagapplet/utils $(distdir)/src/java/rcs $(distdir)/src/java/rcs/nml $(distdir)/src/java/rcs/posemath $(distdir)/src/java/rcs/utils $(distdir)/src/java/rcsdesign $(distdir)/src/java/ste $(distdir)/src/node $(distdir)/src/nt_xdr $(distdir)/src/os_intf $(distdir)/src/pcio $(distdir)/src/pmac $(distdir)/src/posemath $(distdir)/src/print $(distdir)/src/stg_clss $(distdir)/src/test
@list='$(DISTFILES)'; for file in $$list; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
Index: configure
===================================================================
RCS file: /cvsroot/emc/rcslib/configure,v
retrieving revision 1.3.2.1
retrieving revision 1.3.2.2
diff -C2 -d -r1.3.2.1 -r1.3.2.2
*** configure 8 Aug 2003 14:21:06 -0000 1.3.2.1
--- configure 8 Aug 2003 16:38:59 -0000 1.3.2.2
***************
*** 1019,1022 ****
--- 1019,1023 ----
--enable-shmem Add shared memory support to CMS (default=yes)
--enable-filemem Add filemem support to CMS (default=no)
+ --enable-rtlmem Add rtlmem support to CMS (default=no)
--enable-locmem Add locmem support to CMS (default=no)
--enable-phantom Add phantom support to CMS (default=no)
***************
*** 2001,2004 ****
--- 2002,2015 ----
+ # Check whether --enable-rtlmem or --disable-rtlmem was given.
+ if test "${enable_rtlmem+set}" = set; then
+ enableval="$enable_rtlmem"
+ enable_rtlmem=$enableval;
+ { echo "$as_me:$LINENO: enable_rtlmem=$enableval" >&5
+ echo "$as_me: enable_rtlmem=$enableval" >&6;}
+ else
+ enable_rtlmem=no
+ fi;
+
# Check whether --enable-locmem or --disable-locmem was given.
***************
*** 2225,2229 ****
if test "${enable_ALL+set}" = set; then
enableval="$enable_ALL"
! enable_nml_codegen=${enableval};enable_rcs_jar=${enableval};enable_codegen_jar=${enableval};enable_diagapplet_jar=${enableval};enable_filemem=${enableval};enable_xml=${enableval};enable_xdr=${enableval};enable_disp=${enableval};enable_diag=${enableval};enable_print=${enableval};enable_nmlqr=${enableval};enable_xsd2nmlh=${enableval};enable_locmem=${enableval};enable_phantom=${enableval};enable_shmem=${enableval};enable_stcp=${enableval};enable_tcp=${enableval};enable_udp=${enableval};enable_tty=${enableval};enable_crypt=${enableval};enable_http=${enableval};enable_posemath_in_rcslib=${enableval};enable_nmlmod_in_rcslib=${enableval};enable_server=${enableval};enable_sokintrf=${enable_val}
fi;
--- 2236,2240 ----
if test "${enable_ALL+set}" = set; then
enableval="$enable_ALL"
! enable_nml_codegen=${enableval};enable_rcs_jar=${enableval};enable_codegen_jar=${enableval};enable_diagapplet_jar=${enableval};enable_filemem=${enableval};enable_xml=${enableval};enable_xdr=${enableval};enable_disp=${enableval};enable_diag=${enableval};enable_print=${enableval};enable_nmlqr=${enableval};enable_xsd2nmlh=${enableval};enable_locmem=${enableval};enable_phantom=${enableval};enable_shmem=${enableval};enable_stcp=${enableval};enable_tcp=${enableval};enable_udp=${enableval};enable_tty=${enableval};enable_crypt=${enableval};enable_http=${enableval};enable_posemath_in_rcslib=${enableval};enable_nmlmod_in_rcslib=${enableval};enable_server=${enableval};enable_sokintrf=${enable_val};enable_rtlmem=${enableval}
fi;
***************
*** 5205,5209 ****
*-*-irix6*)
# Find out which ABI we are using.
! echo '#line 5207 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
--- 5216,5220 ----
*-*-irix6*)
# Find out which ABI we are using.
! echo '#line 5218 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
***************
*** 5741,5745 ****
CFLAGS="$CFLAGS -o out/conftest2.$ac_objext"
compiler_c_o=no
! if { (eval echo configure:5743: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.$ac_objext; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings
--- 5752,5756 ----
CFLAGS="$CFLAGS -o out/conftest2.$ac_objext"
compiler_c_o=no
! if { (eval echo configure:5754: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.$ac_objext; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings
***************
*** 7534,7538 ****
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
! #line 7536 "configure"
#include "confdefs.h"
--- 7545,7549 ----
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
! #line 7547 "configure"
#include "confdefs.h"
***************
*** 7632,7636 ****
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
! #line 7634 "configure"
#include "confdefs.h"
--- 7643,7647 ----
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
! #line 7645 "configure"
#include "confdefs.h"
***************
*** 8653,8659 ****
{ echo "$as_me:$LINENO: CONFIGURED_STATIC_LIBRARIES : ${CONFIGURED_STATIC_LIBRARIES}" >&5
echo "$as_me: CONFIGURED_STATIC_LIBRARIES : ${CONFIGURED_STATIC_LIBRARIES}" >&6;};
! LTLIBOBJS="${LTLIBOBJS} rtlnml.lo rtlmem.lo rtlinux_user_api_implement.lo"
! { echo "$as_me:$LINENO: LTLIBOBJS=${LTLIBOBJS}" >&5
echo "$as_me: LTLIBOBJS=${LTLIBOBJS}" >&6;}
else
--- 8664,8675 ----
{ echo "$as_me:$LINENO: CONFIGURED_STATIC_LIBRARIES : ${CONFIGURED_STATIC_LIBRARIES}" >&5
echo "$as_me: CONFIGURED_STATIC_LIBRARIES : ${CONFIGURED_STATIC_LIBRARIES}" >&6;};
! if test "x${enable_rtlmem}" = "xyes" ; then
! LTLIBOBJS="${LTLIBOBJS} rtlnml.lo rtlmem.lo rtlinux_user_api_implement.lo"
! { echo "$as_me:$LINENO: LTLIBOBJS=${LTLIBOBJS}" >&5
echo "$as_me: LTLIBOBJS=${LTLIBOBJS}" >&6;}
+ CPPFLAGS="${CPPFLAGS} -DCMS_USE_RTLMEM"
+ { echo "$as_me:$LINENO: CPPFLAGS : ${CPPFLAGS}" >&5
+ echo "$as_me: CPPFLAGS : ${CPPFLAGS}" >&6;}
+ fi
else
***************
*** 8810,8817 ****
{ echo "$as_me:$LINENO: CONFIGURED_STATIC_LIBRARIES : ${CONFIGURED_STATIC_LIBRARIES}" >&5
echo "$as_me: CONFIGURED_STATIC_LIBRARIES : ${CONFIGURED_STATIC_LIBRARIES}" >&6;};
! LTLIBOBJS="${LTLIBOBJS} rtlnml.lo rtlmem.lo rtai_user_api_implement.lo"
! { echo "$as_me:$LINENO: LTLIBOBJS=${LTLIBOBJS}" >&5
! echo "$as_me: LTLIBOBJS=${LTLIBOBJS}" >&6;}
fi
--- 8826,8838 ----
{ echo "$as_me:$LINENO: CONFIGURED_STATIC_LIBRARIES : ${CONFIGURED_STATIC_LIBRARIES}" >&5
echo "$as_me: CONFIGURED_STATIC_LIBRARIES : ${CONFIGURED_STATIC_LIBRARIES}" >&6;};
! if test "x${enable_rtlmem}" = "xyes" ; then
+ LTLIBOBJS="${LTLIBOBJS} rtlnml.lo rtlmem.lo rtai_user_api_implement.lo"
+ { echo "$as_me:$LINENO: LTLIBOBJS=${LTLIBOBJS}" >&5
+ echo "$as_me: LTLIBOBJS=${LTLIBOBJS}" >&6;}
+ CPPFLAGS="${CPPFLAGS} -DCMS_USE_RTLMEM"
+ { echo "$as_me:$LINENO: CPPFLAGS : ${CPPFLAGS}" >&5
+ echo "$as_me: CPPFLAGS : ${CPPFLAGS}" >&6;}
+ fi
fi
Index: rcs_config.h.in
===================================================================
RCS file: /cvsroot/emc/rcslib/rcs_config.h.in,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -C2 -d -r1.1.2.1 -r1.1.2.2
*** rcs_config.h.in 8 Aug 2003 14:21:06 -0000 1.1.2.1
--- rcs_config.h.in 8 Aug 2003 16:38:59 -0000 1.1.2.2
***************
*** 4,14 ****
#undef BUILD_PLATFORM
- /* Define to the type of elements in the array set by `getgroups'. Usually
- this is either `int' or `gid_t'. */
- #undef GETGROUPS_T
-
- /* Define to 1 if you have the `alarm' function. */
- #undef HAVE_ALARM
-
/* Define to 1 if you have the <arpa/inet.h> header file. */
#undef HAVE_ARPA_INET_H
--- 4,7 ----
***************
*** 32,38 ****
#undef HAVE_DLFCN_H
- /* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */
- #undef HAVE_DOPRNT
-
/* Define to 1 if you have the <errno.h> header file. */
#undef HAVE_ERRNO_H
--- 25,28 ----
***************
*** 44,50 ****
#undef HAVE_FLOOR
- /* Define to 1 if you have the `fork' function. */
- #undef HAVE_FORK
-
/* Define to 1 if you have the `fstat' function. */
#undef HAVE_FSTAT
--- 34,37 ----
***************
*** 53,59 ****
#undef HAVE_GETCWD
- /* Define to 1 if your system has a working `getgroups' function. */
- #undef HAVE_GETGROUPS
-
/* Define to 1 if you have the `gethostbyaddr' function. */
#undef HAVE_GETHOSTBYADDR
--- 40,43 ----
***************
*** 65,71 ****
#undef HAVE_GETHOSTNAME
- /* Define to 1 if you have the `getpagesize' function. */
- #undef HAVE_GETPAGESIZE
-
/* Define to 1 if you have the `getpass' function. */
#undef HAVE_GETPASS
--- 49,52 ----
***************
*** 95,105 ****
#undef HAVE_LOCALTIME_R
- /* Define to 1 if `lstat' has the bug that it succeeds when given the
- zero-length file name argument. */
- #undef HAVE_LSTAT_EMPTY_STRING_BUG
-
- /* Define to 1 if your system has a working `malloc' function. */
- #undef HAVE_MALLOC
-
/* Define to 1 if you have the <math.h> header file. */
#undef HAVE_MATH_H
--- 76,79 ----
***************
*** 114,120 ****
#undef HAVE_MEMSET
- /* Define to 1 if you have a working `mmap' system call. */
- #undef HAVE_MMAP
-
/* define if the compiler implements namespaces */
#undef HAVE_NAMESPACES
--- 88,91 ----
***************
*** 177,184 ****
#undef HAVE_STANDARDS_H
- /* Define to 1 if `stat' has the bug that it succeeds when given the
- zero-length file name argument. */
- #undef HAVE_STAT_EMPTY_STRING_BUG
-
/* define if the compiler supports ISO C++ standard library */
#undef HAVE_STD
--- 148,151 ----
***************
*** 202,208 ****
#undef HAVE_STRERROR
- /* Define to 1 if you have the `strftime' function. */
- #undef HAVE_STRFTIME
-
/* Define to 1 if you have the <strings.h> header file. */
#undef HAVE_STRINGS_H
--- 169,172 ----
***************
*** 315,337 ****
#undef HAVE_USLEEP
- /* Define to 1 if you have the `vfork' function. */
- #undef HAVE_VFORK
-
- /* Define to 1 if you have the <vfork.h> header file. */
- #undef HAVE_VFORK_H
-
- /* Define to 1 if you have the `vprintf' function. */
- #undef HAVE_VPRINTF
-
- /* Define to 1 if `fork' works. */
- #undef HAVE_WORKING_FORK
-
- /* Define to 1 if `vfork' works. */
- #undef HAVE_WORKING_VFORK
-
- /* Define to 1 if `lstat' dereferences a symlink specified with a trailing
- slash. */
- #undef LSTAT_FOLLOWS_SLASHED_SYMLINK
-
/* if no thread system is available */
#undef NO_THREADS
--- 279,282 ----
***************
*** 370,376 ****
#undef POSIX_THREADS
- /* Define as the return type of signal handlers (`int' or `void'). */
- #undef RETSIGTYPE
-
/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS
--- 315,318 ----
***************
*** 421,425 ****
/* Define to `int' if <sys/types.h> doesn't define. */
#undef uid_t
-
- /* Define as `fork' if `vfork' does not work. */
- #undef vfork
--- 363,364 ----
|