Mercurial > yaffs-ecoscentric
diff yaffs_guts.h @ 152:3bc7020d669c
Add large NAND support and improve retirement handling
| author | charles |
|---|---|
| date | Tue, 03 Oct 2006 11:13:03 +0100 |
| parents | 1d8892b579f5 |
| children | 0e41be657b37 |
line wrap: on
line diff
--- a/yaffs_guts.h +++ b/yaffs_guts.h @@ -524,7 +524,7 @@ struct yaffs_DeviceStruct { const char *name; /* Entry parameters set up way early. Yaffs sets up the rest.*/ - int nBytesPerChunk; /* Should be a power of 2 >= 512 */ + int nDataBytesPerChunk; /* Should be a power of 2 >= 512 */ int nChunksPerBlock; /* does not need to be a power of 2 */ int nBytesPerSpare; /* spare area size */ int startBlock; /* Start block we're allowed to use */ @@ -606,6 +606,16 @@ struct yaffs_DeviceStruct { __u32 tnodeWidth; __u32 tnodeMask; + /* Stuff to support various file offses to chunk/offset translations */ + /* "Crumbs" for nDataBytesPerChunk not being a power of 2 */ + __u32 crumbMask; + __u32 crumbShift; + __u32 crumbsPerChunk; + + /* Straight shifting for nDataBytesPerChunk being a power of 2 */ + __u32 chunkShift; + __u32 chunkMask; + #ifdef __KERNEL__ @@ -621,6 +631,7 @@ struct yaffs_DeviceStruct { int isCheckpointed; + /* Stuff to support block offsetting to support start block zero */ int internalStartBlock; int internalEndBlock; @@ -693,6 +704,8 @@ struct yaffs_DeviceStruct { int tagsEccUnfixed; int nDeletions; int nUnmarkedDeletions; + + int hasPendingPrioritisedGCs; /* We think this device might have pending prioritised gcs */ /* Special directories */ yaffs_Object *rootDir; @@ -808,11 +821,11 @@ int yaffs_SetAttributes(yaffs_Object * o int yaffs_GetAttributes(yaffs_Object * obj, struct iattr *attr); /* File operations */ -int yaffs_ReadDataFromFile(yaffs_Object * obj, __u8 * buffer, __u32 offset, +int yaffs_ReadDataFromFile(yaffs_Object * obj, __u8 * buffer, loff_t offset, int nBytes); -int yaffs_WriteDataToFile(yaffs_Object * obj, const __u8 * buffer, __u32 offset, +int yaffs_WriteDataToFile(yaffs_Object * obj, const __u8 * buffer, loff_t offset, int nBytes, int writeThrough); -int yaffs_ResizeFile(yaffs_Object * obj, int newSize); +int yaffs_ResizeFile(yaffs_Object * obj, loff_t newSize); yaffs_Object *yaffs_MknodFile(yaffs_Object * parent, const YCHAR * name, __u32 mode, __u32 uid, __u32 gid);
