diff options
author | Charles Manning <cdhmanning@gmail.com> | 2011-01-13 13:23:15 +1300 |
---|---|---|
committer | Charles Manning <cdhmanning@gmail.com> | 2011-01-13 13:23:15 +1300 |
commit | 511baf572f96c689043518d443086b8dd6751089 (patch) | |
tree | 6ff8749f66d52396c9518e9c5ddeb0a27d7f9356 /direct | |
parent | 46eb953ecab322d3385ccf84c75d969de8542317 (diff) | |
parent | 6820610d6b3ea887af57fbd9706fff78923a2115 (diff) |
Merge branch 'master' of ssh://www.aleph1.co.uk/home/aleph1/git/yaffs2
Diffstat (limited to 'direct')
-rw-r--r-- | direct/timothy_tests/threading/lib.c | 4 | ||||
-rw-r--r-- | direct/timothy_tests/threading/test_a.c | 130 | ||||
-rw-r--r-- | direct/timothy_tests/threading/threading.c | 1 |
3 files changed, 130 insertions, 5 deletions
diff --git a/direct/timothy_tests/threading/lib.c b/direct/timothy_tests/threading/lib.c index 6456958..55084a2 100644 --- a/direct/timothy_tests/threading/lib.c +++ b/direct/timothy_tests/threading/lib.c @@ -12,7 +12,7 @@ */ #include "lib.h" -static unsigned int *p_counter; +static volatile unsigned int *p_counter; static unsigned int numberOfThreads=5; unsigned int get_num_of_threads(void) @@ -37,6 +37,6 @@ void set_counter(int x, unsigned int value) void init_counter(unsigned int size_of_counter) { - p_counter=malloc(size_of_counter*sizeof(int)); + p_counter=malloc(size_of_counter*sizeof(unsigned int)); } diff --git a/direct/timothy_tests/threading/test_a.c b/direct/timothy_tests/threading/test_a.c index 391530c..5e1af54 100644 --- a/direct/timothy_tests/threading/test_a.c +++ b/direct/timothy_tests/threading/test_a.c @@ -26,7 +26,7 @@ void test_a(void *x) int pos; int n; int n1; - + struct yaffs_stat stat_buffer; char name[200]; char name1[200]; @@ -90,9 +90,133 @@ void test_a(void *x) yaffs_rmdir(name); return; } + op-=1; + if(op < 0){ + yaffs_rmdir(name); + return; + } + op -=1; + if(op < 0){ + if(bc->h[i]>= 0){ + yaffs_fsync(bc->h[i]); + return; + } + } + op -=1; + if(op < 0){ + if(bc->h[i]>= 0){ + yaffs_fdatasync(bc->h[i]); + return; + } + } + op -=1; + if(op < 0){ + if(bc->h[i]>= 0){ + yaffs_flush(bc->h[i]); + return; + } + } - bc->opMax = (start_op - op -1); - + op -=1; + if(op < 0){ + if((bc->h[i]>= 0) && (bc->h[i+1] < 0)){ + bc->h[i+1]=yaffs_dup(bc->h[i]); + return; + } + } + op -=1; + if(op < 0){ + if(bc->h[i]>= 0){ + yaffs_ftruncate(bc->h[i],n); + return; + } + } + + op -=1; + if(op < 0){ + if(bc->h[i]>= 0){ + yaffs_fstat(bc->h[i],&stat_buffer); + yaffs_fchmod(bc->h[i], n); + yaffs_fchmod(bc->h[i], ((S_IREAD|S_IWRITE)&(stat_buffer.st_mode))); + } + } + op -=1; + if(op < 0){ + if(bc->h[i]>= 0){ + yaffs_stat(name,&stat_buffer); + yaffs_chmod(name, n); + yaffs_chmod(name, ((S_IREAD|S_IWRITE)&(stat_buffer.st_mode))); + } + } + op -=1; + if(op < 0){ + if(bc->h[i]>= 0){ + yaffs_lstat(name,&stat_buffer); + } + } + op -=1; + if(op < 0){ + if(bc->h[i]>= 0){ + yaffs_read(bc->h[i],name,n); + return; + } + } + op -=1; + if(op < 0){ + if(bc->h[i]>= 0){ + yaffs_pread(bc->h[i],name,n,n1); + return; + } + } + op -=1; + if(op < 0){ + if(bc->h[i]>= 0){ + yaffs_write(bc->h[i],name,n); + return; + } + } + op -=1; + if(op < 0){ + if(bc->h[i]>= 0){ + yaffs_pwrite(bc->h[i],name,n,n1); + return; + } + } + op -=1; + if(op < 0){ + if(bc->h[i]>= 0){ + yaffs_truncate(name,n); + return; + } + } + op -=1; + if(op < 0){ + if(bc->h[i]>= 0){ + yaffs_access(name,n); + return; + } + } + op -=1; + if(op < 0){ + if(bc->h[i]>= 0){ + yaffs_symlink(name,name1); + return; + } + } + op -=1; + if(op < 0){ + if(bc->h[i]>= 0){ + yaffs_link(name,name1); + return; + } + } + op -=1; + if(op < 0){ + if(bc->h[i]>= 0){ + yaffs_unlink(name); + return; + } + } return; } diff --git a/direct/timothy_tests/threading/threading.c b/direct/timothy_tests/threading/threading.c index 4b65e38..d4f584b 100644 --- a/direct/timothy_tests/threading/threading.c +++ b/direct/timothy_tests/threading/threading.c @@ -74,6 +74,7 @@ int main(int argc, char *argv[]) printf("| %d ",get_counter(y)); } printf("\n"); + sleep(1); } } |