annotate packages/fs/yaffs/current/tests/yaffs5.c @ 336:38a956139d12

Import tests from eCosPro
author Ross Younger <wry@ecoscentric.com>
date Tue, 03 Nov 2009 18:00:39 +0000
parents
children b254764fbeac
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
336
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
1 //==========================================================================
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
2 //
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
3 // yaffs5.c
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
4 //
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
5 // Test FAT filesystem
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
6 //
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
7 //==========================================================================
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
8 // ####ECOSGPLCOPYRIGHTBEGIN####
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
9 // -------------------------------------------
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
10 // This file is part of eCos, the Embedded Configurable Operating System.
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
11 // Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2006, 2007 Free Software Foundation, Inc.
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
12 // Copyright (C) 2004, 2006, 2007 eCosCentric Limited
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
13 //
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
14 // eCos is free software; you can redistribute it and/or modify it under
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
15 // the terms of the GNU General Public License as published by the Free
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
16 // Software Foundation; either version 2 or (at your option) any later
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
17 // version.
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
18 //
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
19 // eCos is distributed in the hope that it will be useful, but WITHOUT
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
20 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
21 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
22 // for more details.
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
23 //
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
24 // You should have received a copy of the GNU General Public License
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
25 // along with eCos; if not, write to the Free Software Foundation, Inc.,
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
26 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
27 //
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
28 // As a special exception, if other files instantiate templates or use
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
29 // macros or inline functions from this file, or you compile this file
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
30 // and link it with other works to produce a work based on this file,
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
31 // this file does not by itself cause the resulting work to be covered by
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
32 // the GNU General Public License. However the source code for this file
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
33 // must still be made available in accordance with section (3) of the GNU
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
34 // General Public License v2.
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
35 //
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
36 // This exception does not invalidate any other reasons why a work based
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
37 // on this file might be covered by the GNU General Public License.
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
38 // -------------------------------------------
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
39 // ####ECOSGPLCOPYRIGHTEND####
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
40 //==========================================================================
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
41 //#####DESCRIPTIONBEGIN####
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
42 //
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
43 // Author(s): nickg
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
44 // Contributors: nickg
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
45 // Date: 2007-03-28
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
46 // Purpose: Test FAT system
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
47 // Description: This test gets some performance figures from the
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
48 // FAT filesystem.
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
49 //
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
50 //####DESCRIPTIONEND####
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
51 //
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
52 //==========================================================================
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
53
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
54 #include <pkgconf/hal.h>
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
55 #include <pkgconf/kernel.h>
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
56 #include <pkgconf/io_fileio.h>
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
57
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
58 #include CYGDAT_DEVS_DISK_CFG // testing config defines
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
59
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
60 #include <cyg/kernel/ktypes.h> // base kernel types
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
61 #include <cyg/infra/cyg_trac.h> // tracing macros
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
62 #include <cyg/infra/cyg_ass.h> // assertion macros
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
63
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
64 #include <unistd.h>
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
65 #include <fcntl.h>
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
66 #include <sys/stat.h>
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
67 #include <errno.h>
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
68 #include <string.h>
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
69 #include <dirent.h>
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
70 #include <stdlib.h>
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
71
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
72 #include <cyg/fileio/fileio.h>
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
73
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
74 #include <cyg/infra/testcase.h>
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
75 #include <cyg/infra/diag.h> // HAL polled output
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
76
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
77 //==========================================================================
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
78 // Config options
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
79
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
80 #define TEST_DEVICE CYGDAT_DEVS_DISK_TEST_DEVICE
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
81
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
82 #define TEST_MOUNTPOINT CYGDAT_DEVS_DISK_TEST_MOUNTPOINT
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
83
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
84 #define TEST_DIRECTORY CYGDAT_DEVS_DISK_TEST_DIRECTORY
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
85
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
86 #define TEST_FSTYPE "yaffs"
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
87
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
88 #ifdef CYGDAT_DEVS_DISK_TEST_MOUNTPOINT2
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
89
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
90 #define TEST_DEVICE2 CYGDAT_DEVS_DISK_TEST_DEVICE2
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
91
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
92 #define TEST_MOUNTPOINT2 CYGDAT_DEVS_DISK_TEST_MOUNTPOINT2
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
93
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
94 #define TEST_DIRECTORY2 CYGDAT_DEVS_DISK_TEST_DIRECTORY2
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
95
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
96 #define TEST_FSTYPE2 "yaffs"
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
97
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
98 #endif
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
99
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
100 //==========================================================================
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
101
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
102 #define SHOW_RESULT( _fn, _res ) \
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
103 { \
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
104 diag_printf("<FAIL>: " #_fn "() returned %ld %s\n", (long)_res, _res<0?strerror(errno):""); \
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
105 }
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
106
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
107 //==========================================================================
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
108
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
109 typedef struct
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
110 {
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
111 cyg_int64 ticks;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
112 cyg_int32 halticks;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
113 } timestamp;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
114
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
115 typedef struct
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
116 {
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
117 timestamp start;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
118 timestamp end;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
119 cyg_int64 interval; // In HAL ticks
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
120 cyg_int64 us_interval; // Interval in microseconds
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
121 } timing;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
122
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
123 static cyg_int64 ticks_overhead = 0;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
124 static cyg_int32 us_per_haltick = 0;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
125 static cyg_int32 halticks_per_us = 0;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
126
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
127 static cyg_int64 rtc_resolution[] = CYGNUM_KERNEL_COUNTERS_RTC_RESOLUTION;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
128 static cyg_int64 rtc_period = CYGNUM_KERNEL_COUNTERS_RTC_PERIOD;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
129 static cyg_int32 ticks_per_second;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
130
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
131 //==========================================================================
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
132
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
133 static char date_string[] = __DATE__;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
134 static char time_string[] = __TIME__;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
135
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
136 cyg_uint32 timehash;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
137
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
138 //==========================================================================
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
139
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
140 static void wait_for_tick( void )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
141 {
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
142 cyg_tick_count_t now = cyg_current_time();
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
143
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
144 while( cyg_current_time() == now )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
145 continue;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
146 }
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
147
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
148 static void get_timestamp( timestamp *ts )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
149 {
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
150 ts->ticks = cyg_current_time();
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
151 HAL_CLOCK_READ( (cyg_uint32 *)&ts->halticks );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
152 }
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
153
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
154 static cyg_int64 ticks_to_us( cyg_int64 ticks )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
155 {
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
156 cyg_int64 us;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
157
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
158 if( us_per_haltick != 0 )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
159 us = ticks * us_per_haltick;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
160 else
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
161 us = ticks / halticks_per_us;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
162
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
163 return us;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
164 }
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
165
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
166 static void calculate_interval( timing *t )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
167 {
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
168 t->interval = t->end.halticks - t->start.halticks;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
169
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
170 t->interval += (t->end.ticks - t->start.ticks) * rtc_period;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
171
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
172 t->interval -= ticks_overhead;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
173
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
174 t->us_interval = ticks_to_us( t->interval );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
175 }
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
176
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
177 static void init_timing( void )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
178 {
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
179 timing t;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
180
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
181 ticks_per_second = (1000000000ULL*rtc_resolution[1])/rtc_resolution[0];
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
182 us_per_haltick = 1000000/(rtc_period * rtc_resolution[1]);
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
183 halticks_per_us = (rtc_period * rtc_resolution[1])/1000000;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
184
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
185 wait_for_tick();
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
186
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
187 get_timestamp( &t.start );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
188 get_timestamp( &t.end );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
189
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
190 calculate_interval( &t );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
191
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
192 ticks_overhead = t.interval;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
193
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
194 diag_printf("Timing overhead %lld ticks\n", ticks_overhead );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
195
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
196 }
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
197
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
198 //==========================================================================
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
199
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
200 #ifndef CYGPKG_LIBC_STRING
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
201
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
202 char *strcat( char *s1, const char *s2 )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
203 {
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
204 char *s = s1;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
205 while( *s1 ) s1++;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
206 while( (*s1++ = *s2++) != 0);
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
207 return s;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
208 }
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
209
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
210 #endif
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
211
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
212 __externC int
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
213 rename( const char * /* oldpath */, const char * /* newpath */ ) __THROW;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
214
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
215 //==========================================================================
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
216
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
217 static void listdir( char *name, int statp, int numexpected, int *numgot )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
218 {
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
219 int err;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
220 DIR *dirp;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
221 int num=0;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
222
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
223 diag_printf("<INFO>: reading directory %s\n",name);
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
224
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
225 // diag_printf("<INFO>: opendir(%s)\n",name);
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
226 dirp = opendir( name );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
227 if( dirp == NULL ) SHOW_RESULT( opendir, -1 );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
228
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
229 for(;;)
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
230 {
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
231 struct dirent *entry = readdir( dirp );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
232
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
233 if( entry == NULL )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
234 break;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
235 num++;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
236 diag_printf("<INFO>: entry %14s",entry->d_name);
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
237 if( statp )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
238 {
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
239 char fullname[PATH_MAX];
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
240 struct stat sbuf;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
241
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
242 if( name[0] )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
243 {
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
244 strcpy(fullname, name );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
245 if( !(name[0] == '/' && name[1] == 0 ) )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
246 strcat(fullname, "/" );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
247 }
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
248 else fullname[0] = 0;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
249
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
250 strcat(fullname, entry->d_name );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
251
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
252 err = stat( fullname, &sbuf );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
253 if( err < 0 )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
254 {
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
255 if( errno == ENOSYS )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
256 diag_printf(" <no status available>");
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
257 else SHOW_RESULT( stat, err );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
258 }
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
259 else
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
260 {
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
261 diag_printf(" [mode %08x ino %08x nlink %d size %ld]",
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
262 sbuf.st_mode,sbuf.st_ino,sbuf.st_nlink,sbuf.st_size);
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
263 }
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
264 }
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
265
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
266 diag_printf("\n");
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
267 }
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
268
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
269 // diag_printf("<INFO>: closedir(%s)\n",name);
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
270 err = closedir( dirp );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
271 if( err < 0 ) SHOW_RESULT( stat, err );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
272 if (numexpected >= 0 && num != numexpected)
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
273 CYG_TEST_FAIL("Wrong number of dir entries\n");
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
274 if ( numgot != NULL )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
275 *numgot = num;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
276 }
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
277
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
278 //==========================================================================
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
279
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
280 static void createfile( char *name, size_t asize, size_t block_size )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
281 {
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
282 size_t size = asize;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
283 cyg_uint8 *buf;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
284 cyg_uint32 *b;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
285 int fd;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
286 ssize_t wrote;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
287 int i;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
288 int err;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
289 timing opent, writet;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
290
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
291 diag_printf("\n--------------------------------------------------------------------\n");
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
292 diag_printf("<INFO>: create file %s size %ld block_size %ld\n",name, (long)size, (long)block_size);
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
293
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
294 buf = malloc( block_size );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
295 if( buf == NULL )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
296 {
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
297 SHOW_RESULT( malloc, -1 );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
298 return;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
299 }
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
300 b = (cyg_uint32 *)buf;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
301
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
302 err = access( name, F_OK );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
303 if( err < 0 && errno != EACCES ) SHOW_RESULT( access, err );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
304
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
305 i = 0;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
306 while( i < block_size/sizeof(cyg_uint32) )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
307 {
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
308 b[i] = i;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
309 i++;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
310 b[i++] = 0;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
311 b[i++] = timehash;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
312 b[i++] = 0x12345678;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
313 }
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
314
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
315
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
316 get_timestamp( &opent.start );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
317 fd = open( name, O_WRONLY|O_CREAT );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
318 get_timestamp( &opent.end );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
319 if( fd < 0 ) SHOW_RESULT( open, fd );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
320
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
321 get_timestamp( &writet.start );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
322 while( size > 0 )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
323 {
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
324 ssize_t len = size;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
325 if ( len > block_size ) len = block_size;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
326
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
327 b[1] = asize-size;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
328 b[block_size/sizeof(cyg_uint32)-3] = asize-size;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
329 wrote = write( fd, buf, len );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
330 if( wrote != len ) SHOW_RESULT( write, wrote );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
331
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
332 size -= wrote;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
333 }
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
334 get_timestamp( &writet.end );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
335
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
336 free( buf );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
337
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
338 err = close( fd );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
339 if( err < 0 ) SHOW_RESULT( close, err );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
340
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
341 calculate_interval( &opent );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
342 calculate_interval( &writet );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
343
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
344 diag_printf("CreateFile Results: %s size %ld\n", name, (long)asize);
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
345 diag_printf(" Open %8d.%03d ms\n", (int)(opent.us_interval/1000), (int)(opent.us_interval%1000) );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
346 diag_printf(" Write %8d.%03d ms\n", (int)(writet.us_interval/1000), (int)(writet.us_interval%1000) );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
347 diag_printf(" Data Rate %10lld KiB/s\n", (1000000LL*asize)/1024/writet.us_interval);
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
348 }
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
349
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
350 //==========================================================================
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
351
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
352 static void checkfile( char *name, size_t block_size )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
353 {
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
354 cyg_uint8 *buf;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
355 cyg_uint32 *b;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
356 int fd;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
357 ssize_t done;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
358 int err;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
359 off_t pos = 0;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
360 timing opent, readt;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
361
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
362 diag_printf("\n--------------------------------------------------------------------\n");
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
363 diag_printf("<INFO>: check file %s\n",name);
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
364
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
365 buf = malloc( block_size );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
366 if( buf == NULL )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
367 {
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
368 SHOW_RESULT( malloc, -1 );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
369 return;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
370 }
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
371 b = (cyg_uint32 *)buf;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
372
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
373 err = access( name, F_OK );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
374 if( err != 0 ) SHOW_RESULT( access, err );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
375
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
376 get_timestamp( &opent.start );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
377 fd = open( name, O_RDONLY );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
378 get_timestamp( &opent.end );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
379 if( fd < 0 ) SHOW_RESULT( open, fd );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
380
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
381 get_timestamp( &readt.start );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
382 for(;;)
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
383 {
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
384 done = read( fd, buf, block_size );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
385 if( done < 0 ) SHOW_RESULT( read, done );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
386
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
387 if( done == 0 ) break;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
388
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
389 // Check that this is the block we wrote
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
390 if( b[0] != 0 )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
391 diag_printf("b[%d] != %08x\n", 0, 0 );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
392
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
393 if( b[1] != pos )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
394 diag_printf("b[%d] != %08x\n", 1, (unsigned)pos );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
395
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
396 if( b[2] != timehash )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
397 diag_printf("b[%d] != %08x\n", 2, timehash );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
398
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
399 if( b[3] != 0x12345678 )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
400 diag_printf("b[%d] != %08x\n", 3, 0x12345678 );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
401
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
402 if( b[(block_size/sizeof(cyg_uint32))-4] != (block_size/sizeof(cyg_uint32)-4) )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
403 diag_printf("b[%lu](%08x) != %08x\n", (long)block_size/sizeof(cyg_uint32)-4,
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
404 b[(block_size/sizeof(cyg_uint32))-4],
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
405 (unsigned)(block_size/sizeof(cyg_uint32)-4) );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
406
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
407 if( b[block_size/sizeof(cyg_uint32)-3] != pos )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
408 diag_printf("b[%lu] != %08x\n", (long)block_size/sizeof(cyg_uint32)-3, (unsigned)pos );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
409
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
410 if( b[block_size/sizeof(cyg_uint32)-2] != timehash )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
411 diag_printf("b[%lu] != %08x\n", (long)block_size/sizeof(cyg_uint32)-2, timehash );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
412
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
413 if( b[block_size/sizeof(cyg_uint32)-1] != 0x12345678 )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
414 diag_printf("b[%lu] != %08x\n", (long)block_size/sizeof(cyg_uint32)-1, 0x12345678 );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
415
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
416 pos += done;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
417 }
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
418 get_timestamp( &readt.end );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
419
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
420 free( buf );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
421
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
422 err = close( fd );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
423 if( err < 0 ) SHOW_RESULT( close, err );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
424
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
425 calculate_interval( &opent );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
426 calculate_interval( &readt );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
427
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
428 diag_printf("CheckFile Results: %s size %ld\n", name, pos);
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
429 diag_printf(" Open %8d.%03d ms\n", (int)(opent.us_interval/1000), (int)(opent.us_interval%1000) );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
430 diag_printf(" Read %8d.%03d ms\n", (int)(readt.us_interval/1000), (int)(readt.us_interval%1000) );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
431 diag_printf(" Data Rate %10lld KiB/s\n", (1000000LL*pos)/1024/readt.us_interval);
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
432 }
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
433
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
434 //==========================================================================
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
435
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
436 #define TIME_DATA_MAX 20
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
437
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
438 static void checkfile1( char *name, size_t block_size )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
439 {
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
440 cyg_uint8 *buf;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
441 cyg_uint32 *b;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
442 int fd;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
443 ssize_t done;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
444 int err;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
445 off_t pos = 0;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
446 timing totalt;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
447
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
448 struct
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
449 {
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
450 int valid;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
451 timing mountt;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
452 timing opent;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
453 timing seekt;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
454 timing readt;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
455 timing closet;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
456 timing umountt;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
457 } time_data[TIME_DATA_MAX];
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
458 int td;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
459
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
460 for( td = 0; td < TIME_DATA_MAX; td++ )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
461 time_data[td].valid = 0;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
462 td = 0;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
463
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
464 diag_printf("\n--------------------------------------------------------------------\n");
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
465 diag_printf("<INFO>: check file1 %s\n",name);
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
466
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
467 buf = malloc( block_size );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
468 if( buf == NULL )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
469 {
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
470 SHOW_RESULT( malloc, -1 );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
471 return;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
472 }
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
473 b = (cyg_uint32 *)buf;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
474
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
475 get_timestamp( &totalt.start );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
476 for(;;)
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
477 {
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
478 get_timestamp( &time_data[td].mountt.start );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
479 err = mount( TEST_DEVICE, TEST_MOUNTPOINT, TEST_FSTYPE );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
480 get_timestamp( &time_data[td].mountt.end );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
481 if( err < 0 ) SHOW_RESULT( mount, err );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
482
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
483 get_timestamp( &time_data[td].opent.start );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
484 fd = open( name, O_RDONLY );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
485 get_timestamp( &time_data[td].opent.end );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
486 if( fd < 0 ) SHOW_RESULT( open, fd );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
487
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
488 get_timestamp( &time_data[td].seekt.start );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
489 err = lseek( fd, pos, SEEK_SET );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
490 get_timestamp( &time_data[td].seekt.end );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
491 if( err < 0 ) SHOW_RESULT( lseek, err );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
492
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
493 get_timestamp( &time_data[td].readt.start );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
494 done = read( fd, buf, block_size );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
495 get_timestamp( &time_data[td].readt.end );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
496 if( done < 0 ) SHOW_RESULT( read, done );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
497
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
498 get_timestamp( &time_data[td].closet.start );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
499 err = close( fd );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
500 get_timestamp( &time_data[td].closet.end );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
501 if( err < 0 ) SHOW_RESULT( close, err );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
502
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
503 get_timestamp( &time_data[td].umountt.start );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
504 err = umount( TEST_MOUNTPOINT );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
505 get_timestamp( &time_data[td].umountt.end );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
506 if( err < 0 ) SHOW_RESULT( umount, err );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
507
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
508 if( done == 0 ) break;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
509
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
510 // Check that this is the block we wrote
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
511 if( b[0] != 0 )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
512 diag_printf("b[%d] != %08x\n", 0, 0 );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
513
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
514 if( b[1] != pos )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
515 diag_printf("b[%d] != %08x\n", 1, (unsigned)pos );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
516
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
517 // if( b[2] != timehash )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
518 // diag_printf("b[%d] != %08x\n", 2, timehash );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
519
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
520 if( b[3] != 0x12345678 )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
521 diag_printf("b[%d] != %08x\n", 3, 0x12345678 );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
522
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
523 if( b[(block_size/sizeof(cyg_uint32))-4] != (block_size/sizeof(cyg_uint32)-4) )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
524 diag_printf("b[%lu](%08x) != %08x\n", (long)block_size/sizeof(cyg_uint32)-4,
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
525 b[(block_size/sizeof(cyg_uint32))-4],
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
526 (unsigned)(block_size/sizeof(cyg_uint32)-4) );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
527
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
528 if( b[block_size/sizeof(cyg_uint32)-3] != pos )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
529 diag_printf("b[%lu] != %08x\n", (long)block_size/sizeof(cyg_uint32)-3, (unsigned)pos );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
530
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
531 // if( b[block_size/sizeof(cyg_uint32)-2] != timehash )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
532 // diag_printf("b[%d] != %08x\n", block_size/sizeof(cyg_uint32)-2, timehash );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
533
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
534 if( b[block_size/sizeof(cyg_uint32)-1] != 0x12345678 )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
535 diag_printf("b[%lu] != %08x\n", (long)block_size/sizeof(cyg_uint32)-1, 0x12345678 );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
536
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
537 pos += done;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
538
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
539 time_data[td].valid = 1;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
540 if( td < (TIME_DATA_MAX-1) )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
541 td++;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
542 }
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
543 get_timestamp( &totalt.end );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
544
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
545 free( buf );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
546
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
547 diag_printf("Block Mount Open Seek Read Close Umount\n");
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
548
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
549 for( td = 0; td < TIME_DATA_MAX; td++ )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
550 {
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
551 if( !time_data[td].valid )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
552 continue;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
553
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
554 calculate_interval( &time_data[td].mountt );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
555 calculate_interval( &time_data[td].opent );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
556 calculate_interval( &time_data[td].seekt );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
557 calculate_interval( &time_data[td].readt );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
558 calculate_interval( &time_data[td].closet );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
559 calculate_interval( &time_data[td].umountt );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
560
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
561 diag_printf("%2d:", td);
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
562 diag_printf(" %8d.%03d", (int)(time_data[td].mountt.us_interval/1000), (int)(time_data[td].mountt.us_interval%1000) );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
563 diag_printf(" %8d.%03d", (int)(time_data[td].opent.us_interval/1000), (int)(time_data[td].opent.us_interval%1000) );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
564 diag_printf(" %8d.%03d", (int)(time_data[td].seekt.us_interval/1000), (int)(time_data[td].seekt.us_interval%1000) );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
565 diag_printf(" %8d.%03d", (int)(time_data[td].readt.us_interval/1000), (int)(time_data[td].readt.us_interval%1000) );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
566 diag_printf(" %8d.%03d", (int)(time_data[td].closet.us_interval/1000), (int)(time_data[td].closet.us_interval%1000) );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
567 diag_printf(" %8d.%03d", (int)(time_data[td].umountt.us_interval/1000), (int)(time_data[td].umountt.us_interval%1000) );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
568 diag_printf("\n");
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
569 }
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
570
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
571 calculate_interval( &totalt );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
572 diag_printf("CheckFile1 Results: %s size %ld\n", name, pos);
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
573 diag_printf(" Total %8d.%03d ms\n", (int)(totalt.us_interval/1000), (int)(totalt.us_interval%1000) );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
574 diag_printf(" Data Rate %10lld KiB/s\n", (1000000LL*pos)/1024/totalt.us_interval);
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
575
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
576 }
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
577
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
578 //==========================================================================
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
579
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
580 void checkcwd( const char *cwd )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
581 {
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
582 static char cwdbuf[PATH_MAX];
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
583 char *ret;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
584
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
585 ret = getcwd( cwdbuf, sizeof(cwdbuf));
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
586 if( ret == NULL ) SHOW_RESULT( getcwd, ret );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
587
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
588 if( strcmp( cwdbuf, cwd ) != 0 )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
589 {
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
590 diag_printf( "cwdbuf %s cwd %s\n",cwdbuf, cwd );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
591 CYG_TEST_FAIL( "Current directory mismatch");
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
592 }
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
593 }
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
594
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
595 //==========================================================================
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
596
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
597 void fs_callback( cyg_int32 event, CYG_ADDRWORD data )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
598 {
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
599 #if 1
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
600 diag_printf("Filesystem %sSAFE\n",
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
601 event==CYG_FS_CALLBACK_UNSAFE?"UN":"");
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
602 #endif
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
603 }
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
604
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
605
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
606 //==========================================================================
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
607 // main
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
608
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
609 void yaffs5_main( CYG_ADDRESS id )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
610 {
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
611 int err;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
612 int existingdirents=-1;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
613 int i;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
614 timing mountt, umountt;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
615
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
616 #if defined(CYGSEM_FILEIO_BLOCK_USAGE)
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
617 struct cyg_fs_block_usage usage;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
618 #endif
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
619 // struct cyg_fs_callback_info callback;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
620
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
621 CYG_TEST_INIT();
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
622
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
623 init_timing();
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
624
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
625 for( i = 0 ; date_string[i] != 0 ; i++ )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
626 timehash = (timehash<<1) ^ date_string[i];
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
627 for( i = 0 ; time_string[i] != 0 ; i++ )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
628 timehash = (timehash<<1) ^ time_string[i];
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
629
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
630 // --------------------------------------------------------------
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
631
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
632 #if 1
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
633 #define DO_UMOUNT
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
634 get_timestamp( &mountt.start );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
635 err = mount( TEST_DEVICE, TEST_MOUNTPOINT, TEST_FSTYPE );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
636 // err = mount( TEST_DEVICE, TEST_MOUNTPOINT, "yaffs:sync=write" );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
637 // err = mount( TEST_DEVICE, TEST_MOUNTPOINT, "yaffs:sync=close" );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
638 // err = mount( TEST_DEVICE, TEST_MOUNTPOINT, "yaffs:sync=data" );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
639 get_timestamp( &mountt.end );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
640 if( err < 0 ) {
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
641 SHOW_RESULT( mount, err );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
642 CYG_TEST_FAIL_FINISH("yaffs5");
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
643 }
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
644
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
645 #if 0
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
646 callback.callback = fs_callback;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
647 callback.data = 0;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
648 err = cyg_fs_setinfo(TEST_MOUNTPOINT, FS_INFO_CALLBACK,
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
649 &callback, sizeof(callback));
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
650 if( err < 0 ) SHOW_RESULT( cyg_fs_setinfo, err );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
651 #endif
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
652
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
653 calculate_interval( &mountt );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
654 diag_printf(" Mount %8d.%03d ms\n", (int)(mountt.us_interval/1000), (int)(mountt.us_interval%1000) );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
655
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
656 err = access( TEST_MOUNTPOINT TEST_DIRECTORY, F_OK );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
657 if( err < 0 && errno != EACCES ) SHOW_RESULT( access, err );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
658
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
659 if( err < 0 && errno == EACCES )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
660 {
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
661 diag_printf("<INFO>: create %s\n",
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
662 TEST_MOUNTPOINT TEST_DIRECTORY);
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
663 err = mkdir( TEST_MOUNTPOINT TEST_DIRECTORY, 0 );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
664 if( err < 0 ) SHOW_RESULT( mkdir, err );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
665 }
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
666
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
667 err = chdir( TEST_MOUNTPOINT TEST_DIRECTORY );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
668 if( err < 0 ) SHOW_RESULT( chdir, err );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
669
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
670 checkcwd( TEST_MOUNTPOINT TEST_DIRECTORY );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
671
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
672 listdir( TEST_MOUNTPOINT TEST_DIRECTORY, true, -1, &existingdirents );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
673
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
674 // --------------------------------------------------------------
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
675 #if defined(CYGSEM_FILEIO_BLOCK_USAGE)
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
676 err = cyg_fs_getinfo(TEST_MOUNTPOINT, FS_INFO_BLOCK_USAGE,
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
677 &usage, sizeof(usage));
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
678 if( err < 0 ) SHOW_RESULT( cyg_fs_getinfo, err );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
679 diag_printf("<INFO>: total size: %6lld blocks, %10lld bytes\n",
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
680 usage.total_blocks, usage.total_blocks * usage.block_size);
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
681 diag_printf("<INFO>: free size: %6lld blocks, %10lld bytes\n",
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
682 usage.free_blocks, usage.free_blocks * usage.block_size);
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
683 diag_printf("<INFO>: block size: %6u bytes\n", usage.block_size);
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
684 #endif
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
685 // --------------------------------------------------------------
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
686
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
687 #endif
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
688
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
689 #if 1
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
690 createfile( "yaffs5.0", 1024*1024, 16*1024 );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
691 checkfile( "yaffs5.0",16*1024 );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
692 err = unlink( "yaffs5.0" );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
693 sync();
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
694 #endif
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
695
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
696 #if 1
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
697 createfile( "yaffs5.0", 200*1024, 1024 );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
698 checkfile( "yaffs5.0", 1024 );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
699 err = unlink( "yaffs5.0" );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
700 #endif
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
701
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
702 #if 1
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
703 createfile( "yaffs5.1", 1024*1024, 1024 );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
704 createfile( "yaffs5.2", 1024*1024, 4*1024 );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
705 sync();
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
706 createfile( "yaffs5.3", 8*1024*1024, 32*1024 );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
707
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
708 checkfile( "yaffs5.1", 1024 );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
709 checkfile( "yaffs5.2", 4*1024 );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
710 checkfile( "yaffs5.3", 32*1024 );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
711
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
712 diag_printf("\n--------------------------------------------------------------------\n");
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
713
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
714 listdir( "." , true, existingdirents+3, NULL );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
715
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
716 // --------------------------------------------------------------
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
717
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
718 diag_printf("<INFO>: unlink yaffs5.1\n");
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
719 err = unlink( "yaffs5.1" );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
720 if( err < 0 ) SHOW_RESULT( unlink, err );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
721
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
722 diag_printf("<INFO>: unlink yaffs5.2\n");
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
723 err = unlink( "yaffs5.2" );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
724 if( err < 0 ) SHOW_RESULT( unlink, err );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
725
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
726 diag_printf("<INFO>: unlink yaffs5.3\n");
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
727 err = unlink( "yaffs5.3" );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
728 if( err < 0 ) SHOW_RESULT( unlink, err );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
729 #endif
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
730
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
731 // --------------------------------------------------------------
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
732
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
733 #if 1 && defined(DO_UMOUNT)
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
734
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
735 diag_printf("<INFO>: unlink yaffs5.4\n");
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
736 err = unlink( "yaffs5.4" );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
737
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
738 createfile( "yaffs5.4", 5*1024*1024, 32*1024 );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
739 #endif
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
740
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
741 // --------------------------------------------------------------
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
742
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
743 #ifdef DO_UMOUNT
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
744 diag_printf("<INFO>: cd /\n");
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
745 err = chdir( "/" );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
746 if( err == 0 )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
747 {
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
748 checkcwd( "/" );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
749
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
750 diag_printf("<INFO>: umount %s\n",TEST_MOUNTPOINT);
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
751 get_timestamp( &umountt.start );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
752 err = umount( TEST_MOUNTPOINT );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
753 get_timestamp( &umountt.end );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
754 if( err < 0 ) SHOW_RESULT( umount, err );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
755
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
756 calculate_interval( &umountt );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
757 diag_printf(" Umount %8d.%03d ms\n", (int)(umountt.us_interval/1000), (int)(umountt.us_interval%1000) );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
758
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
759 }
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
760 #endif
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
761
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
762 #if 1
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
763
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
764 diag_printf("<INFO>: syncing\n");
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
765 sync();
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
766
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
767 checkfile1(TEST_MOUNTPOINT TEST_DIRECTORY "/yaffs5.4", 32*1024 );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
768
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
769 // Remount just to remove yaffs5.4
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
770 err = mount( TEST_DEVICE, TEST_MOUNTPOINT, TEST_FSTYPE );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
771 if( err < 0 ) {
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
772 SHOW_RESULT( mount, err );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
773 CYG_TEST_FAIL_FINISH("yaffs5");
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
774 }
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
775 err = unlink( TEST_MOUNTPOINT TEST_DIRECTORY "/yaffs5.4" );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
776 if( err < 0 ) SHOW_RESULT( unlink, err );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
777 err = umount( TEST_MOUNTPOINT );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
778 if( err < 0 ) SHOW_RESULT( umount, err );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
779
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
780 #endif
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
781
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
782 diag_printf("<INFO>: syncing\n");
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
783 sync();
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
784
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
785 CYG_TEST_PASS_FINISH("yaffs5");
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
786 }
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
787
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
788 // -------------------------------------------------------------------------
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
789
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
790 #include <cyg/kernel/kapi.h>
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
791
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
792 static cyg_handle_t thread_handle;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
793 static cyg_thread thread;
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
794 static char stack[CYGNUM_HAL_STACK_SIZE_TYPICAL+8*1024];
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
795 //static char stack[64*1024];
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
796
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
797 externC void
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
798 cyg_start( void )
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
799 {
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
800 cyg_thread_create(3, // Priority - just a number
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
801 yaffs5_main, // entry
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
802 0, // index
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
803 0, // no name
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
804 &stack[0], // Stack
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
805 sizeof(stack), // Size
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
806 &thread_handle, // Handle
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
807 &thread // Thread data structure
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
808 );
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
809 cyg_thread_resume(thread_handle);
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
810
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
811 cyg_scheduler_start();
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
812 }
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
813
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
814 // -------------------------------------------------------------------------
38a956139d12 Import tests from eCosPro
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
815 // EOF yaffs5.c