annotate direct/python/examples.py @ 322:1206ae06f03d

More python example stuff
author charles
date Tue, 13 Oct 2009 04:20:05 +0100
parents fd8194c28cac
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
321
fd8194c28cac Add some python examples
charles
parents:
diff changeset
1 from yaffsfs import *
fd8194c28cac Add some python examples
charles
parents:
diff changeset
2
fd8194c28cac Add some python examples
charles
parents:
diff changeset
3 def yaffs_ls(dname):
fd8194c28cac Add some python examples
charles
parents:
diff changeset
4 if dname[-1] != "/": dname = dname + "/"
fd8194c28cac Add some python examples
charles
parents:
diff changeset
5 dc = yaffs_opendir(dname)
fd8194c28cac Add some python examples
charles
parents:
diff changeset
6 if dc != 0 :
fd8194c28cac Add some python examples
charles
parents:
diff changeset
7 sep = yaffs_readdir(dc)
fd8194c28cac Add some python examples
charles
parents:
diff changeset
8 while bool(sep):
fd8194c28cac Add some python examples
charles
parents:
diff changeset
9 se = sep.contents
fd8194c28cac Add some python examples
charles
parents:
diff changeset
10 fullname = dname + se.d_name
fd8194c28cac Add some python examples
charles
parents:
diff changeset
11 #print fullname, " ", se.d_ino," ",ord(se.d_type)
fd8194c28cac Add some python examples
charles
parents:
diff changeset
12 st = yaffs_stat_struct()
fd8194c28cac Add some python examples
charles
parents:
diff changeset
13 result = yaffs_stat(fullname,byref(st))
fd8194c28cac Add some python examples
charles
parents:
diff changeset
14 perms = st.st_mode & 0777
fd8194c28cac Add some python examples
charles
parents:
diff changeset
15 isFile = True if st.st_mode & 0x8000 else False
fd8194c28cac Add some python examples
charles
parents:
diff changeset
16 isDir = True if st.st_mode & 0x4000 else False
fd8194c28cac Add some python examples
charles
parents:
diff changeset
17
fd8194c28cac Add some python examples
charles
parents:
diff changeset
18 if isFile :
fd8194c28cac Add some python examples
charles
parents:
diff changeset
19 print "File ",se.d_ino, hex(perms), st.st_size, fullname
fd8194c28cac Add some python examples
charles
parents:
diff changeset
20 if isDir :
fd8194c28cac Add some python examples
charles
parents:
diff changeset
21 print "Dir ",se.d_ino, hex(perms), fullname
fd8194c28cac Add some python examples
charles
parents:
diff changeset
22 yaffs_ls(fullname)
fd8194c28cac Add some python examples
charles
parents:
diff changeset
23
fd8194c28cac Add some python examples
charles
parents:
diff changeset
24 sep = yaffs_readdir(dc)
322
1206ae06f03d More python example stuff
charles
parents: 321
diff changeset
25 yaffs_closedir(dc)
1206ae06f03d More python example stuff
charles
parents: 321
diff changeset
26 return 0
321
fd8194c28cac Add some python examples
charles
parents:
diff changeset
27 else:
fd8194c28cac Add some python examples
charles
parents:
diff changeset
28 print "Could not open directory"
fd8194c28cac Add some python examples
charles
parents:
diff changeset
29 return -1
fd8194c28cac Add some python examples
charles
parents:
diff changeset
30
322
1206ae06f03d More python example stuff
charles
parents: 321
diff changeset
31 def yaffs_mkfile(fname,fsize):
1206ae06f03d More python example stuff
charles
parents: 321
diff changeset
32 fd = yaffs_open(fname,66, 0666)
1206ae06f03d More python example stuff
charles
parents: 321
diff changeset
33 if fd >= 0:
1206ae06f03d More python example stuff
charles
parents: 321
diff changeset
34 b = create_string_buffer("",1024)
1206ae06f03d More python example stuff
charles
parents: 321
diff changeset
35 totalwrite=0
1206ae06f03d More python example stuff
charles
parents: 321
diff changeset
36 while fsize > 0:
1206ae06f03d More python example stuff
charles
parents: 321
diff changeset
37 thiswrite = 1024 if fsize > 1024 else fsize
1206ae06f03d More python example stuff
charles
parents: 321
diff changeset
38 result = yaffs_write(fd,b,thiswrite)
1206ae06f03d More python example stuff
charles
parents: 321
diff changeset
39 totalwrite += result
1206ae06f03d More python example stuff
charles
parents: 321
diff changeset
40 fsize -= result
1206ae06f03d More python example stuff
charles
parents: 321
diff changeset
41 if result != thiswrite:
1206ae06f03d More python example stuff
charles
parents: 321
diff changeset
42 fsize= 0
1206ae06f03d More python example stuff
charles
parents: 321
diff changeset
43
1206ae06f03d More python example stuff
charles
parents: 321
diff changeset
44 return totalwrite
1206ae06f03d More python example stuff
charles
parents: 321
diff changeset
45 else :
1206ae06f03d More python example stuff
charles
parents: 321
diff changeset
46 return -1
321
fd8194c28cac Add some python examples
charles
parents:
diff changeset
47
fd8194c28cac Add some python examples
charles
parents:
diff changeset
48 root = "/yaffs2"
fd8194c28cac Add some python examples
charles
parents:
diff changeset
49
fd8194c28cac Add some python examples
charles
parents:
diff changeset
50 yaffs_StartUp()
fd8194c28cac Add some python examples
charles
parents:
diff changeset
51 yaffs_mount(root)
fd8194c28cac Add some python examples
charles
parents:
diff changeset
52
fd8194c28cac Add some python examples
charles
parents:
diff changeset
53 yaffs_mkdir(root+"/dd",0666)
fd8194c28cac Add some python examples
charles
parents:
diff changeset
54
fd8194c28cac Add some python examples
charles
parents:
diff changeset
55 yaffs_open(root+"/dd/111",66,0666)
fd8194c28cac Add some python examples
charles
parents:
diff changeset
56
fd8194c28cac Add some python examples
charles
parents:
diff changeset
57 yaffs_ls(root)