+##
+## YAFFS: Yet Another Flash File System. A NAND-flash specific file system.
+##
+## Copyright (C) 2002-2010 Aleph One Ltd.
+## for Toby Churchill Ltd and Brightstar Engineering
+##
+## Created by Charles Manning <charles@aleph1.co.uk>
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License version 2 as
+## published by the Free Software Foundation.
+##
+
+
from yaffsfs import *
def yaffs_ls(dname):
isDir = True if st.st_mode & 0x4000 else False
if isFile :
- print "File ",se.d_ino, hex(perms), st.st_size, fullname
- if isDir :
- print "Dir ",se.d_ino, hex(perms), fullname
+ print "File ",se.d_ino, hex(perms), st.st_size, fullname, " times ", st.yst_atime, st.yst_ctime, st.yst_mtime
+ elif isDir :
+ print "Dir ",se.d_ino, hex(perms), fullname, " times ", st.yst_atime, st.yst_ctime, st.yst_mtime
yaffs_ls(fullname)
-
+ else :
+ print "Other (",hex(st.st_mode),") ",se.d_ino, hex(perms), fullname, " times ", st.yst_atime, st.yst_ctime, st.yst_mtime
+
sep = yaffs_readdir(dc)
yaffs_closedir(dc)
return 0
else :
return -1
+def yaffs_link_test(dir):
+ fnamea = dir + '/aaa'
+ fnameb = dir + '/bbb'
+ yaffs_unlink(fnamea)
+ fd = yaffs_open(fnamea,66,0666)
+ yaffs_link(fnamea,fnameb)
+ yaffs_ls(dir)
+ yaffs_unlink(fnamea)
+ yaffs_ls(dir)
+ yaffs_unlink(fnameb)
+
+def yaffs_o_excl_test(dir):
+ fname = dir + '/aaa'
+ yaffs_unlink(fname)
+ fd = yaffs_open(fname, 66, 0666)
+ yaffs_close(fd)
+ print "Created ", fname, " result ", fd
+ fdx = yaffs_open(fname, 0301, 0666)
+ print "Attempt to create with O_EXCL existing file returned ", fdx
+ yaffs_unlink(fname)
+ fdx = yaffs_open(fname, 0301, 0666)
+ print "Attempt to create with O_EXCL non-existing file returned ", fdx
+
+
root = "/yaffs2"
-yaffs_StartUp()
+yaffs_start_up()
yaffs_mount(root)
yaffs_mkdir(root+"/dd",0666)
-yaffs_open(root+"/dd/111",66,0666)
+h = yaffs_open(root+"/dd/111",66,0666)
+yaffs_close(h)
yaffs_ls(root)