annotate packages/fs/yaffs/current/src/direct/python/examples.py @ 425:dea4d7d250ad ecos

Move sources into packages/fs/yaffs/current/src/
author Ross Younger <wry@ecoscentric.com>
date Fri, 14 May 2010 16:03:09 +0100
parents direct/python/examples.py@50d5730d01a5
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
298
2cb3c22ed0a0 Add some python examples
charles <charles>
parents:
diff changeset
1 from yaffsfs import *
2cb3c22ed0a0 Add some python examples
charles <charles>
parents:
diff changeset
2
2cb3c22ed0a0 Add some python examples
charles <charles>
parents:
diff changeset
3 def yaffs_ls(dname):
2cb3c22ed0a0 Add some python examples
charles <charles>
parents:
diff changeset
4 if dname[-1] != "/": dname = dname + "/"
2cb3c22ed0a0 Add some python examples
charles <charles>
parents:
diff changeset
5 dc = yaffs_opendir(dname)
2cb3c22ed0a0 Add some python examples
charles <charles>
parents:
diff changeset
6 if dc != 0 :
2cb3c22ed0a0 Add some python examples
charles <charles>
parents:
diff changeset
7 sep = yaffs_readdir(dc)
2cb3c22ed0a0 Add some python examples
charles <charles>
parents:
diff changeset
8 while bool(sep):
2cb3c22ed0a0 Add some python examples
charles <charles>
parents:
diff changeset
9 se = sep.contents
2cb3c22ed0a0 Add some python examples
charles <charles>
parents:
diff changeset
10 fullname = dname + se.d_name
2cb3c22ed0a0 Add some python examples
charles <charles>
parents:
diff changeset
11 #print fullname, " ", se.d_ino," ",ord(se.d_type)
2cb3c22ed0a0 Add some python examples
charles <charles>
parents:
diff changeset
12 st = yaffs_stat_struct()
2cb3c22ed0a0 Add some python examples
charles <charles>
parents:
diff changeset
13 result = yaffs_stat(fullname,byref(st))
2cb3c22ed0a0 Add some python examples
charles <charles>
parents:
diff changeset
14 perms = st.st_mode & 0777
2cb3c22ed0a0 Add some python examples
charles <charles>
parents:
diff changeset
15 isFile = True if st.st_mode & 0x8000 else False
2cb3c22ed0a0 Add some python examples
charles <charles>
parents:
diff changeset
16 isDir = True if st.st_mode & 0x4000 else False
2cb3c22ed0a0 Add some python examples
charles <charles>
parents:
diff changeset
17
2cb3c22ed0a0 Add some python examples
charles <charles>
parents:
diff changeset
18 if isFile :
2cb3c22ed0a0 Add some python examples
charles <charles>
parents:
diff changeset
19 print "File ",se.d_ino, hex(perms), st.st_size, fullname
322
d326b86a50d5 Add more info to python test
charles <charles>
parents: 299
diff changeset
20 elif isDir :
298
2cb3c22ed0a0 Add some python examples
charles <charles>
parents:
diff changeset
21 print "Dir ",se.d_ino, hex(perms), fullname
2cb3c22ed0a0 Add some python examples
charles <charles>
parents:
diff changeset
22 yaffs_ls(fullname)
322
d326b86a50d5 Add more info to python test
charles <charles>
parents: 299
diff changeset
23 else :
d326b86a50d5 Add more info to python test
charles <charles>
parents: 299
diff changeset
24 print "Other (",hex(st.st_mode),") ",se.d_ino, hex(perms), fullname
d326b86a50d5 Add more info to python test
charles <charles>
parents: 299
diff changeset
25
298
2cb3c22ed0a0 Add some python examples
charles <charles>
parents:
diff changeset
26 sep = yaffs_readdir(dc)
299
acc06403a0bc More python example stuff
charles <charles>
parents: 298
diff changeset
27 yaffs_closedir(dc)
acc06403a0bc More python example stuff
charles <charles>
parents: 298
diff changeset
28 return 0
298
2cb3c22ed0a0 Add some python examples
charles <charles>
parents:
diff changeset
29 else:
2cb3c22ed0a0 Add some python examples
charles <charles>
parents:
diff changeset
30 print "Could not open directory"
2cb3c22ed0a0 Add some python examples
charles <charles>
parents:
diff changeset
31 return -1
2cb3c22ed0a0 Add some python examples
charles <charles>
parents:
diff changeset
32
299
acc06403a0bc More python example stuff
charles <charles>
parents: 298
diff changeset
33 def yaffs_mkfile(fname,fsize):
acc06403a0bc More python example stuff
charles <charles>
parents: 298
diff changeset
34 fd = yaffs_open(fname,66, 0666)
acc06403a0bc More python example stuff
charles <charles>
parents: 298
diff changeset
35 if fd >= 0:
acc06403a0bc More python example stuff
charles <charles>
parents: 298
diff changeset
36 b = create_string_buffer("",1024)
acc06403a0bc More python example stuff
charles <charles>
parents: 298
diff changeset
37 totalwrite=0
acc06403a0bc More python example stuff
charles <charles>
parents: 298
diff changeset
38 while fsize > 0:
acc06403a0bc More python example stuff
charles <charles>
parents: 298
diff changeset
39 thiswrite = 1024 if fsize > 1024 else fsize
acc06403a0bc More python example stuff
charles <charles>
parents: 298
diff changeset
40 result = yaffs_write(fd,b,thiswrite)
acc06403a0bc More python example stuff
charles <charles>
parents: 298
diff changeset
41 totalwrite += result
acc06403a0bc More python example stuff
charles <charles>
parents: 298
diff changeset
42 fsize -= result
acc06403a0bc More python example stuff
charles <charles>
parents: 298
diff changeset
43 if result != thiswrite:
acc06403a0bc More python example stuff
charles <charles>
parents: 298
diff changeset
44 fsize= 0
acc06403a0bc More python example stuff
charles <charles>
parents: 298
diff changeset
45
acc06403a0bc More python example stuff
charles <charles>
parents: 298
diff changeset
46 return totalwrite
acc06403a0bc More python example stuff
charles <charles>
parents: 298
diff changeset
47 else :
acc06403a0bc More python example stuff
charles <charles>
parents: 298
diff changeset
48 return -1
298
2cb3c22ed0a0 Add some python examples
charles <charles>
parents:
diff changeset
49
337
bd02b2533ec8 Add another test
charles <charles>
parents: 322
diff changeset
50 def yaffs_link_test(dir):
bd02b2533ec8 Add another test
charles <charles>
parents: 322
diff changeset
51 fnamea = dir + '/aaa'
bd02b2533ec8 Add another test
charles <charles>
parents: 322
diff changeset
52 fnameb = dir + '/bbb'
bd02b2533ec8 Add another test
charles <charles>
parents: 322
diff changeset
53 yaffs_unlink(fnamea)
bd02b2533ec8 Add another test
charles <charles>
parents: 322
diff changeset
54 fd = yaffs_open(fnamea,66,0666)
bd02b2533ec8 Add another test
charles <charles>
parents: 322
diff changeset
55 yaffs_link(fnamea,fnameb)
bd02b2533ec8 Add another test
charles <charles>
parents: 322
diff changeset
56 yaffs_ls(dir)
bd02b2533ec8 Add another test
charles <charles>
parents: 322
diff changeset
57 yaffs_unlink(fnamea)
bd02b2533ec8 Add another test
charles <charles>
parents: 322
diff changeset
58 yaffs_ls(dir)
bd02b2533ec8 Add another test
charles <charles>
parents: 322
diff changeset
59 yaffs_unlink(fnameb)
bd02b2533ec8 Add another test
charles <charles>
parents: 322
diff changeset
60
bd02b2533ec8 Add another test
charles <charles>
parents: 322
diff changeset
61
298
2cb3c22ed0a0 Add some python examples
charles <charles>
parents:
diff changeset
62 root = "/yaffs2"
2cb3c22ed0a0 Add some python examples
charles <charles>
parents:
diff changeset
63
2cb3c22ed0a0 Add some python examples
charles <charles>
parents:
diff changeset
64 yaffs_StartUp()
2cb3c22ed0a0 Add some python examples
charles <charles>
parents:
diff changeset
65 yaffs_mount(root)
2cb3c22ed0a0 Add some python examples
charles <charles>
parents:
diff changeset
66
2cb3c22ed0a0 Add some python examples
charles <charles>
parents:
diff changeset
67 yaffs_mkdir(root+"/dd",0666)
2cb3c22ed0a0 Add some python examples
charles <charles>
parents:
diff changeset
68
339
50d5730d01a5 Add handle tests
charles <charles>
parents: 337
diff changeset
69 h = yaffs_open(root+"/dd/111",66,0666)
50d5730d01a5 Add handle tests
charles <charles>
parents: 337
diff changeset
70 yaffs_close(h)
298
2cb3c22ed0a0 Add some python examples
charles <charles>
parents:
diff changeset
71
2cb3c22ed0a0 Add some python examples
charles <charles>
parents:
diff changeset
72 yaffs_ls(root)
339
50d5730d01a5 Add handle tests
charles <charles>
parents: 337
diff changeset
73