projects
/
yaffs2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Change enums to u32 for stored fields
[yaffs2.git]
/
yaffs_guts.h
diff --git
a/yaffs_guts.h
b/yaffs_guts.h
index d89f8b00de956c4c6c1881e2a48d42d2325841ff..c2f7ac46ef6c7e9ca4f2f57a5616b4c92c615a3c 100644
(file)
--- a/
yaffs_guts.h
+++ b/
yaffs_guts.h
@@
-144,12
+144,12
@@
struct yaffs_cache {
*/
struct yaffs_tags {
*/
struct yaffs_tags {
- u
nsigned
chunk_id:20;
- u
nsigned
serial_number:2;
- u
nsigned
n_bytes_lsb:10;
- u
nsigned
obj_id:18;
- u
nsigned
ecc:12;
- u
nsigned
n_bytes_msb:2;
+ u
32
chunk_id:20;
+ u
32
serial_number:2;
+ u
32
n_bytes_lsb:10;
+ u
32
obj_id:18;
+ u
32
ecc:12;
+ u
32
n_bytes_msb:2;
};
union yaffs_tags_union {
};
union yaffs_tags_union {
@@
-167,6
+167,12
@@
enum yaffs_ecc_result {
YAFFS_ECC_RESULT_UNFIXED
};
YAFFS_ECC_RESULT_UNFIXED
};
+/*
+ * Object type enum:
+ * When this is stored in flash we store it as a u32 instead
+ * to prevent any alignment change issues as compiler variants change.
+ */
+
enum yaffs_obj_type {
YAFFS_OBJECT_TYPE_UNKNOWN,
YAFFS_OBJECT_TYPE_FILE,
enum yaffs_obj_type {
YAFFS_OBJECT_TYPE_UNKNOWN,
YAFFS_OBJECT_TYPE_FILE,
@@
-287,9
+293,9
@@
enum yaffs_block_state {
struct yaffs_block_info {
struct yaffs_block_info {
-
int
soft_del_pages:10; /* number of soft deleted pages */
-
int
pages_in_use:10; /* number of pages in use */
- u
nsigned block_state:4;
/* One of the above block states. */
+
s32
soft_del_pages:10; /* number of soft deleted pages */
+
s32
pages_in_use:10; /* number of pages in use */
+ u
32 block_state:4;
/* One of the above block states. */
/* NB use unsigned because enum is sometimes
* an int */
u32 needs_retiring:1; /* Data has failed on this block, */
/* NB use unsigned because enum is sometimes
* an int */
u32 needs_retiring:1; /* Data has failed on this block, */
@@
-310,7
+316,7
@@
struct yaffs_block_info {
/* This is the object structure as stored on NAND */
struct yaffs_obj_hdr {
/* This is the object structure as stored on NAND */
struct yaffs_obj_hdr {
- enum yaffs_obj_type type;
+ u32 type; /* enum yaffs_obj_type */
/* Apply to everything */
int parent_obj_id;
/* Apply to everything */
int parent_obj_id;
@@
-470,7
+476,7
@@
struct yaffs_obj {
void *my_inode;
void *my_inode;
- enum yaffs_obj_type variant_type;
+ u32 variant_type; /* enum yaffs_object_type */
union yaffs_obj_var variant;
union yaffs_obj_var variant;
@@
-490,7
+496,7
@@
struct yaffs_checkpt_obj {
u32 obj_id;
u32 parent_id;
int hdr_chunk;
u32 obj_id;
u32 parent_id;
int hdr_chunk;
- enum yaffs_obj_type variant_type:3;
+ u32 variant_type:3; /* enum yaffs_obj_type */
u8 deleted:1;
u8 soft_del:1;
u8 unlinked:1;
u8 deleted:1;
u8 soft_del:1;
u8 unlinked:1;
@@
-688,8
+694,8
@@
struct yaffs_dev {
/* Block Info */
struct yaffs_block_info *block_info;
u8 *chunk_bits; /* bitmap of chunks in use */
/* Block Info */
struct yaffs_block_info *block_info;
u8 *chunk_bits; /* bitmap of chunks in use */
- u
nsigned block_info_alt:1;
/* allocated using alternative alloc */
- u
nsigned chunk_bits_alt:1;
/* allocated using alternative alloc */
+ u
8 block_info_alt:1;
/* allocated using alternative alloc */
+ u
8 chunk_bits_alt:1;
/* allocated using alternative alloc */
int chunk_bit_stride; /* Number of bytes of chunk_bits per block.
* Must be consistent with chunks_per_block.
*/
int chunk_bit_stride; /* Number of bytes of chunk_bits per block.
* Must be consistent with chunks_per_block.
*/
@@
-876,10
+882,13
@@
struct yaffs_obj *yaffs_create_file(struct yaffs_obj *parent,
const YCHAR *name, u32 mode, u32 uid,
u32 gid);
const YCHAR *name, u32 mode, u32 uid,
u32 gid);
-int yaffs_flush_file(struct yaffs_obj *obj, int update_time, int data_sync);
+int yaffs_flush_file(struct yaffs_obj *in,
+ int update_time,
+ int data_sync,
+ int discard_cache);
/* Flushing and checkpointing */
/* Flushing and checkpointing */
-void yaffs_flush_whole_cache(struct yaffs_dev *dev);
+void yaffs_flush_whole_cache(struct yaffs_dev *dev
, int discard
);
int yaffs_checkpoint_save(struct yaffs_dev *dev);
int yaffs_checkpoint_restore(struct yaffs_dev *dev);
int yaffs_checkpoint_save(struct yaffs_dev *dev);
int yaffs_checkpoint_restore(struct yaffs_dev *dev);
@@
-982,7
+991,7
@@
u32 yaffs_get_group_base(struct yaffs_dev *dev, struct yaffs_tnode *tn,
int yaffs_is_non_empty_dir(struct yaffs_obj *obj);
int yaffs_is_non_empty_dir(struct yaffs_obj *obj);
-int yaffs_format_dev(struct yaffs_dev *dev);
+int yaffs_
guts_
format_dev(struct yaffs_dev *dev);
void yaffs_addr_to_chunk(struct yaffs_dev *dev, loff_t addr,
int *chunk_out, u32 *offset_out);
void yaffs_addr_to_chunk(struct yaffs_dev *dev, loff_t addr,
int *chunk_out, u32 *offset_out);