projects
/
yaffs2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' of ssh://www.aleph1.co.uk/home/aleph1/git/yaffs2
[yaffs2.git]
/
yaffs_guts.h
diff --git
a/yaffs_guts.h
b/yaffs_guts.h
index d09a965329669988101b3a0bd093d6b40a0c2238..f9b5ac192424b50a7ecda2509f35a14f05da867b 100644
(file)
--- a/
yaffs_guts.h
+++ b/
yaffs_guts.h
@@
-16,8
+16,9
@@
#ifndef __YAFFS_GUTS_H__
#define __YAFFS_GUTS_H__
#ifndef __YAFFS_GUTS_H__
#define __YAFFS_GUTS_H__
-#include "devextras.h"
#include "yportenv.h"
#include "yportenv.h"
+#include "devextras.h"
+#include "yaffs_list.h"
#define YAFFS_OK 1
#define YAFFS_FAIL 0
#define YAFFS_OK 1
#define YAFFS_FAIL 0
@@
-52,7
+53,6
@@
#define YAFFS_MAX_CHUNK_ID 0x000FFFFF
#define YAFFS_MAX_CHUNK_ID 0x000FFFFF
-#define YAFFS_UNUSED_OBJECT_ID 0x0003FFFF
#define YAFFS_ALLOCATION_NOBJECTS 100
#define YAFFS_ALLOCATION_NTNODES 100
#define YAFFS_ALLOCATION_NOBJECTS 100
#define YAFFS_ALLOCATION_NTNODES 100
@@
-62,6
+62,7
@@
#define YAFFS_OBJECT_SPACE 0x40000
#define YAFFS_OBJECT_SPACE 0x40000
+#define YAFFS_MAX_OBJECT_ID (YAFFS_OBJECT_SPACE -1)
#define YAFFS_CHECKPOINT_VERSION 4
#define YAFFS_CHECKPOINT_VERSION 4
@@
-516,7
+517,7
@@
typedef struct {
struct yaffs_DeviceParamStruct {
struct yaffs_DeviceParamStruct {
- const
char
*name;
+ const
YCHAR
*name;
/*
* Entry parameters set up way early. Yaffs sets up the rest.
/*
* Entry parameters set up way early. Yaffs sets up the rest.
@@
-598,6
+599,10
@@
struct yaffs_DeviceParamStruct {
int disableSoftDelete; /* yaffs 1 only: Set to disable the use of softdeletion. */
int deferDirectoryUpdate; /* Set to defer directory updates */
int disableSoftDelete; /* yaffs 1 only: Set to disable the use of softdeletion. */
int deferDirectoryUpdate; /* Set to defer directory updates */
+
+#ifdef CONFIG_YAFFS_AUTO_UNICODE
+ int autoUnicode;
+#endif
};
};
@@
-608,7
+613,10
@@
struct yaffs_DeviceStruct {
/* Context storage. Holds extra OS specific data for this device */
/* Context storage. Holds extra OS specific data for this device */
- void *context;
+ void *osContext;
+ void *driverContext;
+
+ struct ylist_head devList;
/* Runtime parameters. Set up by YAFFS. */
int nDataBytesPerChunk;
/* Runtime parameters. Set up by YAFFS. */
int nDataBytesPerChunk;
@@
-688,6
+696,7
@@
struct yaffs_DeviceStruct {
/* Garbage collection control */
__u32 *gcCleanupList; /* objects to delete at the end of a GC. */
/* Garbage collection control */
__u32 *gcCleanupList; /* objects to delete at the end of a GC. */
+ __u32 nCleanups;
unsigned hasPendingPrioritisedGCs; /* We think this device might have pending prioritised gcs */
unsigned gcDisable;
unsigned hasPendingPrioritisedGCs; /* We think this device might have pending prioritised gcs */
unsigned gcDisable;
@@
-750,6
+759,7
@@
struct yaffs_DeviceStruct {
__u32 allGCs;
__u32 passiveGCs;
__u32 oldestDirtyGCs;
__u32 allGCs;
__u32 passiveGCs;
__u32 oldestDirtyGCs;
+ __u32 nGCBlocks;
__u32 backgroundGCs;
__u32 nRetriedWrites;
__u32 nRetiredBlocks;
__u32 backgroundGCs;
__u32 nRetriedWrites;
__u32 nRetiredBlocks;
@@
-814,7
+824,7
@@
struct yaffs_ShadowFixerStruct {
/* Structure for doing xattr modifications */
typedef struct {
int set; /* If 0 then this is a deletion */
/* Structure for doing xattr modifications */
typedef struct {
int set; /* If 0 then this is a deletion */
- const
char
*name;
+ const
YCHAR
*name;
const void *data;
int size;
int flags;
const void *data;
int size;
int flags;
@@
-888,10
+898,10
@@
yaffs_Object *yaffs_MknodSpecial(yaffs_Object *parent, const YCHAR *name,
__u32 mode, __u32 uid, __u32 gid, __u32 rdev);
__u32 mode, __u32 uid, __u32 gid, __u32 rdev);
-int yaffs_SetXAttribute(yaffs_Object *obj, const
char
*name, const void * value, int size, int flags);
-int yaffs_GetXAttribute(yaffs_Object *obj, const
char
*name, void *value, int size);
+int yaffs_SetXAttribute(yaffs_Object *obj, const
YCHAR
*name, const void * value, int size, int flags);
+int yaffs_GetXAttribute(yaffs_Object *obj, const
YCHAR
*name, void *value, int size);
int yaffs_ListXAttributes(yaffs_Object *obj, char *buffer, int size);
int yaffs_ListXAttributes(yaffs_Object *obj, char *buffer, int size);
-int yaffs_RemoveXAttribute(yaffs_Object *obj, const
char
*name);
+int yaffs_RemoveXAttribute(yaffs_Object *obj, const
YCHAR
*name);
/* Special directories */
yaffs_Object *yaffs_Root(yaffs_Device *dev);
/* Special directories */
yaffs_Object *yaffs_Root(yaffs_Device *dev);
@@
-928,6
+938,7
@@
yaffs_Object *yaffs_FindOrCreateObjectByNumber(yaffs_Device *dev,
int yaffs_PutChunkIntoFile(yaffs_Object *in, int chunkInInode,
int chunkInNAND, int inScan);
void yaffs_SetObjectName(yaffs_Object *obj, const YCHAR *name);
int yaffs_PutChunkIntoFile(yaffs_Object *in, int chunkInInode,
int chunkInNAND, int inScan);
void yaffs_SetObjectName(yaffs_Object *obj, const YCHAR *name);
+void yaffs_SetObjectNameFromOH(yaffs_Object *obj, const yaffs_ObjectHeader *oh);
void yaffs_AddObjectToDirectory(yaffs_Object *directory,
yaffs_Object *obj);
YCHAR *yaffs_CloneString(const YCHAR *str);
void yaffs_AddObjectToDirectory(yaffs_Object *directory,
yaffs_Object *obj);
YCHAR *yaffs_CloneString(const YCHAR *str);
@@
-951,4
+962,13
@@
int yaffs_DoWriteDataToFile(yaffs_Object *in, const __u8 *buffer, loff_t offset,
int nBytes, int writeThrough);
void yaffs_ResizeDown( yaffs_Object *obj, loff_t newSize);
void yaffs_SkipRestOfBlock(yaffs_Device *dev);
int nBytes, int writeThrough);
void yaffs_ResizeDown( yaffs_Object *obj, loff_t newSize);
void yaffs_SkipRestOfBlock(yaffs_Device *dev);
+
+int yaffs_CountFreeChunks(yaffs_Device *dev);
+
+yaffs_Tnode *yaffs_FindLevel0Tnode(yaffs_Device *dev,
+ yaffs_FileStructure *fStruct,
+ __u32 chunkId);
+
+__u32 yaffs_GetChunkGroupBase(yaffs_Device *dev, yaffs_Tnode *tn, unsigned pos);
+
#endif
#endif