X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;ds=sidebyside;f=bertos%2Fkern%2Fsignal_test.c;h=6734347b0e345089a0c7dbf8ff725b0f9023027f;hb=088cc866a57a0402f6ba3f232fcf8f59c79626d1;hp=484c0338e1c2c783a77aa30407866b4b9a2fda08;hpb=32d1445272120a254d77ce8d1af1f527da7a2c17;p=bertos.git diff --git a/bertos/kern/signal_test.c b/bertos/kern/signal_test.c index 484c0338..6734347b 100644 --- a/bertos/kern/signal_test.c +++ b/bertos/kern/signal_test.c @@ -32,7 +32,6 @@ * * \brief Signals test. * - * \version $Id$ * * \author Daniele Basile * @@ -76,29 +75,43 @@ sigmask_t sig_to_slave; * These macros generate the code needed to create the test process functions. */ #define PROC_TEST_SLAVE(index, signal) \ -static void NORETURN proc_signalTest##index(void) \ +static void proc_signalTest##index(void) \ { \ - for(;;) \ - { \ - kputs("> Slave [" #index "]: Wait signal [" #signal "]\n"); \ - sig_wait(signal); \ - kputs("> Slave [" #index "]: send signal [" #signal "]\n"); \ - sig_signal(proc_currentUserData(), signal); \ - } \ + kputs("> Slave [" #index "]: Wait signal [" #signal "]\n"); \ + sig_wait(signal); \ + kputs("> Slave [" #index "]: send signal [" #signal "]\n"); \ + sig_send(proc_currentUserData(), signal); \ } #define MAIN_CHECK_SIGNAL(index, slave) \ do { \ kprintf("> Main: send signal [%d]\n", test_signal[index]); \ - sig_signal(slave, test_signal[index]); \ + sig_send(slave, test_signal[index]); \ kprintf("> Main: wait signal [%d]\n", test_signal[index]); \ sig_wait(test_signal[index]); \ count++; \ } while(0) \ -#define PROC_TEST_SLAVE_STACK(index) PROC_DEFINE_STACK(proc_signal_test##index##_stack, KERN_MINSTACKSIZE); +#if CONFIG_KERN_HEAP + +#define PROC_TEST_SLAVE_INIT(index, master_process) proc_new(proc_signalTest##index, master_process, KERN_MINSTACKSIZE * 2, NULL) + +#else + +#define PROC_TEST_SLAVE_STACK(index) PROC_DEFINE_STACK(proc_signal_test##index##_stack, KERN_MINSTACKSIZE * 2); #define PROC_TEST_SLAVE_INIT(index, master_process) proc_new(proc_signalTest##index, master_process, sizeof(proc_signal_test##index##_stack), proc_signal_test##index##_stack) +PROC_TEST_SLAVE_STACK(0) +PROC_TEST_SLAVE_STACK(1) +PROC_TEST_SLAVE_STACK(2) +PROC_TEST_SLAVE_STACK(3) +PROC_TEST_SLAVE_STACK(4) +PROC_TEST_SLAVE_STACK(5) +PROC_TEST_SLAVE_STACK(6) +PROC_TEST_SLAVE_STACK(7) + +#endif + // Generate the code for signal test. PROC_TEST_SLAVE(0, SIG_USER0) PROC_TEST_SLAVE(1, SIG_USER1) @@ -109,15 +122,6 @@ PROC_TEST_SLAVE(5, SIG_SYSTEM5) PROC_TEST_SLAVE(6, SIG_SYSTEM6) PROC_TEST_SLAVE(7, SIG_SINGLE) -PROC_TEST_SLAVE_STACK(0) -PROC_TEST_SLAVE_STACK(1) -PROC_TEST_SLAVE_STACK(2) -PROC_TEST_SLAVE_STACK(3) -PROC_TEST_SLAVE_STACK(4) -PROC_TEST_SLAVE_STACK(5) -PROC_TEST_SLAVE_STACK(6) -PROC_TEST_SLAVE_STACK(7) - /** * Run signal test */