X-Git-Url: http://www.aleph1.co.uk/gitweb/?a=blobdiff_plain;ds=sidebyside;f=yaffs_guts.h;h=3ae36e7214d16dc622d16b52678546925e63e460;hb=3f107ebf545c27322a15a458198a3cd5dbc876f3;hp=d1e29730fa26a27d32313d3ff8d3ee8573502ee1;hpb=cefeada5db633fd3c37cde66e2e62c73052c18bd;p=yaffs%2F.git diff --git a/yaffs_guts.h b/yaffs_guts.h index d1e2973..3ae36e7 100644 --- a/yaffs_guts.h +++ b/yaffs_guts.h @@ -93,7 +93,9 @@ typedef struct __u8 tagByte1; __u8 tagByte2; __u8 tagByte3; - __u8 pageStatus; + __u8 pageStatus; // Currently unused, but sort of set aside to distinguish + // unused - vs- used -vs- deleted chunks. We achieve this by + // using the objectId tags. __u8 blockStatus; __u8 tagByte4; __u8 tagByte5; @@ -106,7 +108,9 @@ typedef struct // Block data in RAM typedef enum { - YAFFS_BLOCK_STATE_UNKNOWN = 0, + YAFFS_BLOCK_STATE_UddNKNOWN = 0, + YAFFS_BLOCK_STATE_SCANNING, // Used while the block is being scanned. + // NB Don't erase blocks while they're being scanned YAFFS_BLOCK_STATE_EMPTY, // This block is empty @@ -318,7 +322,12 @@ struct yaffs_DeviceStruct void *genericDevice; // Pointer to device context // On an mtd this holds the mtd pointer. + +#ifdef __KERNEL__ + struct semaphore sem;// Semaphore for waiting on erasure. + +#endif // NAND access functions (Must be set before calling YAFFS) @@ -327,9 +336,11 @@ struct yaffs_DeviceStruct int (*readChunkFromNAND)(struct yaffs_DeviceStruct *dev,int chunkInNAND, __u8 *data, yaffs_Spare *spare); int (*eraseBlockInNAND)(struct yaffs_DeviceStruct *dev,int blockInNAND); int (*initialiseNAND)(struct yaffs_DeviceStruct *dev); - - +#ifdef __KERNEL__ + void (*putSuperFunc)(struct super_block *sb); +#endif + // Runtime parameters. yaffs_BlockInfo *blockInfo; int nErasedBlocks; @@ -411,6 +422,8 @@ yaffs_Object *yaffs_FindObjectByNumber(yaffs_Device *dev,int number); // Link operations yaffs_Object *yaffs_Link(yaffs_Object *parent, const char *name, yaffs_Object *equivalentObject); +yaffs_Object *yaffs_GetEquivalentObject(yaffs_Object *obj); + // Symlink operations yaffs_Object *yaffs_MknodSymLink(yaffs_Object *parent, const char *name, __u32 mode, __u32 uid, __u32 gid, const char *alias); char *yaffs_GetSymlinkAlias(yaffs_Object *obj);