Mercurial > ecos
annotate packages/kernel/current/tests/klock.c @ 208:e0c0827131d1 ecos
Merge from eCos master repository on 2002-05-20-20:11:54-BST
| author | jlarmour |
|---|---|
| date | Mon, 20 May 2002 22:19:26 +0000 |
| parents | 51b34619b677 |
| children | d2c90368aeef |
| rev | line source |
|---|---|
|
124
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
1 /*================================================================= |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
2 // |
|
132
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
124
diff
changeset
|
3 // klock.c |
|
124
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
4 // |
|
132
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
124
diff
changeset
|
5 // Kernel lock test |
|
124
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
6 // |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
7 //========================================================================== |
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
197
diff
changeset
|
8 //####ECOSGPLCOPYRIGHTBEGIN#### |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
197
diff
changeset
|
9 // ------------------------------------------- |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
197
diff
changeset
|
10 // This file is part of eCos, the Embedded Configurable Operating System. |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
197
diff
changeset
|
11 // Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
197
diff
changeset
|
12 // |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
197
diff
changeset
|
13 // eCos is free software; you can redistribute it and/or modify it under |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
197
diff
changeset
|
14 // the terms of the GNU General Public License as published by the Free |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
197
diff
changeset
|
15 // Software Foundation; either version 2 or (at your option) any later version. |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
197
diff
changeset
|
16 // |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
197
diff
changeset
|
17 // eCos is distributed in the hope that it will be useful, but WITHOUT ANY |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
197
diff
changeset
|
18 // WARRANTY; without even the implied warranty of MERCHANTABILITY or |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
197
diff
changeset
|
19 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
197
diff
changeset
|
20 // for more details. |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
197
diff
changeset
|
21 // |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
197
diff
changeset
|
22 // You should have received a copy of the GNU General Public License along |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
197
diff
changeset
|
23 // with eCos; if not, write to the Free Software Foundation, Inc., |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
197
diff
changeset
|
24 // 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
197
diff
changeset
|
25 // |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
197
diff
changeset
|
26 // As a special exception, if other files instantiate templates or use macros |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
197
diff
changeset
|
27 // or inline functions from this file, or you compile this file and link it |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
197
diff
changeset
|
28 // with other works to produce a work based on this file, this file does not |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
197
diff
changeset
|
29 // by itself cause the resulting work to be covered by the GNU General Public |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
197
diff
changeset
|
30 // License. However the source code for this file must still be made available |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
197
diff
changeset
|
31 // in accordance with section (3) of the GNU General Public License. |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
197
diff
changeset
|
32 // |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
197
diff
changeset
|
33 // This exception does not invalidate any other reasons why a work based on |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
197
diff
changeset
|
34 // this file might be covered by the GNU General Public License. |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
197
diff
changeset
|
35 // |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
197
diff
changeset
|
36 // Alternative licenses for eCos may be arranged by contacting Red Hat, Inc. |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
197
diff
changeset
|
37 // at http://sources.redhat.com/ecos/ecos-license |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
197
diff
changeset
|
38 // ------------------------------------------- |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
197
diff
changeset
|
39 //####ECOSGPLCOPYRIGHTEND#### |
|
124
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
40 //========================================================================== |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
41 //#####DESCRIPTIONBEGIN#### |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
42 // |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
43 // Author(s): dsm |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
44 // Contributors: dsm |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
45 // Date: 1998-03-18 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
46 // Description: Tests some basic thread functions. |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
47 //####DESCRIPTIONEND#### |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
48 */ |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
49 //========================================================================== |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
50 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
51 #include <cyg/kernel/kapi.h> |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
52 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
53 #include <cyg/infra/testcase.h> |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
54 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
55 //========================================================================== |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
56 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
57 #ifdef CYGFUN_KERNEL_API_C |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
58 |
|
132
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
124
diff
changeset
|
59 #if (CYGINT_KERNEL_SCHEDULER_UNIQUE_PRIORITIES == 0) |
|
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
124
diff
changeset
|
60 |
|
124
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
61 //========================================================================== |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
62 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
63 #include "testaux.h" |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
64 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
65 #include <cyg/hal/hal_arch.h> // for CYGNUM_HAL_STACK_SIZE_TYPICAL |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
66 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
67 //========================================================================== |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
68 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
69 #ifdef CYGNUM_HAL_STACK_SIZE_TYPICAL |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
70 #define STACKSIZE CYGNUM_HAL_STACK_SIZE_TYPICAL |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
71 #else |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
72 #define STACKSIZE 2000 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
73 #endif |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
74 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
75 //========================================================================== |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
76 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
77 static char stack[2][STACKSIZE]; |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
78 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
79 static cyg_thread thread[2]; |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
80 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
81 static cyg_handle_t pt0,pt1; |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
82 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
83 static cyg_mutex_t mx; |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
84 static cyg_cond_t cv; |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
85 static cyg_sem_t sem; |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
86 static cyg_flag_t fl; |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
87 static cyg_mbox mbox; |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
88 static cyg_handle_t mbh; |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
89 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
90 volatile static int thread0_state = 0; |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
91 volatile static int thread1_state = 0; |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
92 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
93 //========================================================================== |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
94 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
95 static void entry0( cyg_addrword_t data ) |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
96 { |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
97 CHECK( 222 == (int)data ); |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
98 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
99 // Do everything with the scheduler locked. |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
100 cyg_scheduler_lock(); |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
101 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
102 // -------------------------------------------------- |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
103 // Mutex test |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
104 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
105 cyg_mutex_lock( &mx ); |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
106 thread0_state = 1; |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
107 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
108 // Get thread 2 running. |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
109 cyg_thread_resume(pt1); |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
110 thread0_state = 2; |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
111 |
|
132
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
124
diff
changeset
|
112 #ifdef CYGMFN_KERNEL_SYNCH_CONDVAR_TIMED_WAIT |
|
124
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
113 cyg_cond_wait( &cv ); |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
114 thread0_state = 3; |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
115 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
116 while( thread1_state < 2 ) cyg_thread_yield(); |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
117 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
118 cyg_cond_broadcast( &cv ); |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
119 thread0_state = 4; |
|
132
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
124
diff
changeset
|
120 #endif |
|
124
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
121 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
122 cyg_mutex_unlock( &mx ); |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
123 thread0_state = 5; |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
124 |
|
132
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
124
diff
changeset
|
125 |
|
124
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
126 // -------------------------------------------------- |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
127 // Semaphore test |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
128 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
129 cyg_semaphore_wait( &sem ); |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
130 thread0_state = 6; |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
131 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
132 cyg_semaphore_post( &sem ); |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
133 thread0_state = 7; |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
134 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
135 while( thread1_state < 7 ) cyg_thread_yield(); |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
136 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
137 // -------------------------------------------------- |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
138 // Flags test |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
139 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
140 cyg_flag_wait( &fl, 1, CYG_FLAG_WAITMODE_OR|CYG_FLAG_WAITMODE_CLR); |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
141 thread0_state = 8; |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
142 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
143 cyg_flag_setbits( &fl, 2 ); |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
144 thread0_state = 9; |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
145 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
146 // -------------------------------------------------- |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
147 // Message box test |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
148 |
|
132
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
124
diff
changeset
|
149 #ifdef CYGMFN_KERNEL_SYNCH_MBOXT_PUT_CAN_WAIT |
|
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
124
diff
changeset
|
150 { |
|
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
124
diff
changeset
|
151 void *mbret; |
|
124
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
152 |
|
132
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
124
diff
changeset
|
153 mbret = cyg_mbox_get( mbh ); |
|
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
124
diff
changeset
|
154 CYG_TEST_CHECK( mbret == (void *)0xAAAAAAAA , "bad result from cyg_mbox_timed_get()"); |
|
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
124
diff
changeset
|
155 thread0_state = 10; |
|
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
124
diff
changeset
|
156 |
|
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
124
diff
changeset
|
157 cyg_mbox_put( mbh, (void *)0xBBBBBBBB ); |
|
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
124
diff
changeset
|
158 thread0_state = 11; |
|
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
124
diff
changeset
|
159 } |
|
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
124
diff
changeset
|
160 #endif |
|
124
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
161 // -------------------------------------------------- |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
162 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
163 thread0_state = 999; |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
164 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
165 cyg_thread_yield(); |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
166 cyg_thread_yield(); |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
167 cyg_thread_yield(); |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
168 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
169 CYG_TEST_CHECK( thread0_state == 999, "thread 0 not in exit state"); |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
170 CYG_TEST_CHECK( thread1_state == 999, "thread 1 not in exit state"); |
|
132
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
124
diff
changeset
|
171 CYG_TEST_PASS_FINISH("Kernel lock test OK"); |
|
124
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
172 } |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
173 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
174 //========================================================================== |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
175 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
176 static void entry1( cyg_addrword_t data ) |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
177 { |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
178 cyg_bool res; |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
179 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
180 CHECK( 333 == (int)data ); |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
181 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
182 // Do everything with the scheduler locked. |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
183 cyg_scheduler_lock(); |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
184 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
185 // -------------------------------------------------- |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
186 // Mutex test |
|
132
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
124
diff
changeset
|
187 #ifdef CYGMFN_KERNEL_SYNCH_CONDVAR_TIMED_WAIT |
|
124
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
188 cyg_mutex_lock( &mx ); |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
189 thread1_state = 1; |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
190 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
191 while( thread0_state < 2 ) cyg_thread_yield(); |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
192 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
193 cyg_cond_signal( &cv ); |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
194 thread1_state = 2; |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
195 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
196 res = cyg_cond_timed_wait( &cv, cyg_current_time()+10 ); |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
197 CYG_TEST_CHECK( res , "FALSE result from cyg_cond_timed_wait()" ); |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
198 thread1_state = 3; |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
199 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
200 cyg_mutex_unlock( &mx ); |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
201 thread1_state = 4; |
|
132
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
124
diff
changeset
|
202 #endif |
|
124
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
203 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
204 // -------------------------------------------------- |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
205 // Semaphore test |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
206 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
207 while( thread0_state < 5 ) cyg_thread_yield(); |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
208 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
209 cyg_semaphore_post( &sem ); |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
210 thread1_state = 5; |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
211 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
212 while( thread0_state < 6 ) cyg_thread_yield(); |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
213 thread1_state = 6; |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
214 |
|
197
51b34619b677
Merge from eCos master repository on 2001-11-30-11:22:06-GMT
jlarmour
parents:
132
diff
changeset
|
215 #ifdef CYGFUN_KERNEL_THREADS_TIMER |
|
124
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
216 res = cyg_semaphore_timed_wait( &sem, cyg_current_time()+10 ); |
|
197
51b34619b677
Merge from eCos master repository on 2001-11-30-11:22:06-GMT
jlarmour
parents:
132
diff
changeset
|
217 #else |
|
51b34619b677
Merge from eCos master repository on 2001-11-30-11:22:06-GMT
jlarmour
parents:
132
diff
changeset
|
218 res = cyg_semaphore_wait( &sem ); |
|
51b34619b677
Merge from eCos master repository on 2001-11-30-11:22:06-GMT
jlarmour
parents:
132
diff
changeset
|
219 #endif |
|
51b34619b677
Merge from eCos master repository on 2001-11-30-11:22:06-GMT
jlarmour
parents:
132
diff
changeset
|
220 CYG_TEST_CHECK( res , "FALSE result from cyg_semaphore[_timed]_wait()" ); |
|
124
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
221 thread1_state = 7; |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
222 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
223 // -------------------------------------------------- |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
224 // Flags test |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
225 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
226 cyg_flag_setbits( &fl, 1 ); |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
227 thread1_state = 8; |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
228 |
|
197
51b34619b677
Merge from eCos master repository on 2001-11-30-11:22:06-GMT
jlarmour
parents:
132
diff
changeset
|
229 #ifdef CYGFUN_KERNEL_THREADS_TIMER |
|
124
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
230 cyg_flag_timed_wait( &fl, 2, CYG_FLAG_WAITMODE_OR|CYG_FLAG_WAITMODE_CLR, |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
231 cyg_current_time()+10 ); |
|
197
51b34619b677
Merge from eCos master repository on 2001-11-30-11:22:06-GMT
jlarmour
parents:
132
diff
changeset
|
232 #else |
|
51b34619b677
Merge from eCos master repository on 2001-11-30-11:22:06-GMT
jlarmour
parents:
132
diff
changeset
|
233 cyg_flag_wait( &fl, 2, CYG_FLAG_WAITMODE_OR|CYG_FLAG_WAITMODE_CLR ); |
|
51b34619b677
Merge from eCos master repository on 2001-11-30-11:22:06-GMT
jlarmour
parents:
132
diff
changeset
|
234 #endif |
|
124
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
235 thread1_state = 9; |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
236 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
237 // -------------------------------------------------- |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
238 // Message box test |
|
132
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
124
diff
changeset
|
239 #ifdef CYGMFN_KERNEL_SYNCH_MBOXT_PUT_CAN_WAIT |
|
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
124
diff
changeset
|
240 { |
|
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
124
diff
changeset
|
241 void *mbret; |
|
197
51b34619b677
Merge from eCos master repository on 2001-11-30-11:22:06-GMT
jlarmour
parents:
132
diff
changeset
|
242 #ifdef CYGFUN_KERNEL_THREADS_TIMER |
|
132
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
124
diff
changeset
|
243 cyg_mbox_timed_put( mbh, (void *)0xAAAAAAAA, cyg_current_time()+10 ); |
|
197
51b34619b677
Merge from eCos master repository on 2001-11-30-11:22:06-GMT
jlarmour
parents:
132
diff
changeset
|
244 #else |
|
51b34619b677
Merge from eCos master repository on 2001-11-30-11:22:06-GMT
jlarmour
parents:
132
diff
changeset
|
245 cyg_mbox_put( mbh, (void *)0xAAAAAAAA ); |
|
51b34619b677
Merge from eCos master repository on 2001-11-30-11:22:06-GMT
jlarmour
parents:
132
diff
changeset
|
246 #endif |
|
132
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
124
diff
changeset
|
247 thread1_state = 10; |
|
124
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
248 |
|
197
51b34619b677
Merge from eCos master repository on 2001-11-30-11:22:06-GMT
jlarmour
parents:
132
diff
changeset
|
249 #ifdef CYGFUN_KERNEL_THREADS_TIMER |
|
132
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
124
diff
changeset
|
250 mbret = cyg_mbox_timed_get( mbh, cyg_current_time()+10); |
|
197
51b34619b677
Merge from eCos master repository on 2001-11-30-11:22:06-GMT
jlarmour
parents:
132
diff
changeset
|
251 #else |
|
51b34619b677
Merge from eCos master repository on 2001-11-30-11:22:06-GMT
jlarmour
parents:
132
diff
changeset
|
252 mbret = cyg_mbox_get( mbh ); |
|
51b34619b677
Merge from eCos master repository on 2001-11-30-11:22:06-GMT
jlarmour
parents:
132
diff
changeset
|
253 #endif |
|
51b34619b677
Merge from eCos master repository on 2001-11-30-11:22:06-GMT
jlarmour
parents:
132
diff
changeset
|
254 CYG_TEST_CHECK( mbret == (void *)0xBBBBBBBB , "bad result from cyg_mbox[_timed]_get()"); |
|
132
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
124
diff
changeset
|
255 thread1_state = 9; |
|
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
124
diff
changeset
|
256 } |
|
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
124
diff
changeset
|
257 #endif |
|
124
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
258 // -------------------------------------------------- |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
259 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
260 thread1_state = 999; |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
261 cyg_thread_exit(); |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
262 } |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
263 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
264 //========================================================================== |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
265 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
266 void kthread1_main( void ) |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
267 { |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
268 CYG_TEST_INIT(); |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
269 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
270 cyg_thread_create(4, entry0, (cyg_addrword_t)222, "kthread1-0", |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
271 (void *)stack[0], STACKSIZE, &pt0, &thread[0] ); |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
272 cyg_thread_create(4, entry1, (cyg_addrword_t)333, "kthread1-1", |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
273 (void *)stack[1], STACKSIZE, &pt1, &thread[1] ); |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
274 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
275 // Init all the objects |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
276 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
277 cyg_mutex_init( &mx ); |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
278 cyg_cond_init( &cv, &mx ); |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
279 cyg_semaphore_init( &sem, 0 ); |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
280 cyg_flag_init( &fl ); |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
281 cyg_mbox_create( &mbh, &mbox ); |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
282 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
283 cyg_thread_resume(pt0); |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
284 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
285 cyg_scheduler_start(); |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
286 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
287 CYG_TEST_FAIL_FINISH("Not reached"); |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
288 } |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
289 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
290 //========================================================================== |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
291 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
292 externC void |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
293 cyg_start( void ) |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
294 { |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
295 kthread1_main(); |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
296 } |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
297 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
298 //========================================================================== |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
299 |
|
132
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
124
diff
changeset
|
300 #else /* CYGINT_KERNEL_SCHEDULER_UNIQUE_PRIORITIES == 0 */ |
|
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
124
diff
changeset
|
301 # define NA_MSG "Schedule has unique priorities" |
|
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
124
diff
changeset
|
302 #endif |
|
124
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
303 |
|
132
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
124
diff
changeset
|
304 #else /* def CYGFUN_KERNEL_API_C */ |
|
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
124
diff
changeset
|
305 # define NA_MSG "Kernel C API layer disabled" |
|
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
124
diff
changeset
|
306 #endif |
|
124
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
307 |
|
132
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
124
diff
changeset
|
308 #ifdef NA_MSG |
|
124
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
309 externC void |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
310 cyg_start( void ) |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
311 { |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
312 CYG_TEST_INIT(); |
|
132
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
124
diff
changeset
|
313 CYG_TEST_NA(NA_MSG); |
|
124
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
314 } |
|
132
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
124
diff
changeset
|
315 #endif |
|
124
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
316 |
|
0ec04793409a
Merge from eCos master repository on 2000-09-11-03:00:13-BST
jlarmour
parents:
diff
changeset
|
317 //========================================================================== |
|
132
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
124
diff
changeset
|
318 /* EOF klock.c */ |
