Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations
ubi-media.h File Reference
#include <asm/byteorder.h>

Go to the source code of this file.

Data Structures

struct  ubi_ec_hdr
 
struct  ubi_vid_hdr
 
struct  ubi_vtbl_record
 
struct  ubi_fm_sb
 
struct  ubi_fm_hdr
 
struct  ubi_fm_scan_pool
 
struct  ubi_fm_ec
 
struct  ubi_fm_volhdr
 
struct  ubi_fm_eba
 

Macros

#define UBI_VERSION   1
 
#define UBI_MAX_ERASECOUNTER   0x7FFFFFFF
 
#define UBI_CRC32_INIT   0xFFFFFFFFU
 
#define UBI_EC_HDR_MAGIC   0x55424923
 
#define UBI_VID_HDR_MAGIC   0x55424921
 
#define UBI_EC_HDR_SIZE   sizeof(struct ubi_ec_hdr)
 
#define UBI_VID_HDR_SIZE   sizeof(struct ubi_vid_hdr)
 
#define UBI_EC_HDR_SIZE_CRC   (UBI_EC_HDR_SIZE - sizeof(__be32))
 
#define UBI_VID_HDR_SIZE_CRC   (UBI_VID_HDR_SIZE - sizeof(__be32))
 
#define UBI_INT_VOL_COUNT   1
 
#define UBI_INTERNAL_VOL_START   (0x7FFFFFFF - 4096)
 
#define UBI_LAYOUT_VOLUME_ID   UBI_INTERNAL_VOL_START
 
#define UBI_LAYOUT_VOLUME_TYPE   UBI_VID_DYNAMIC
 
#define UBI_LAYOUT_VOLUME_ALIGN   1
 
#define UBI_LAYOUT_VOLUME_EBS   2
 
#define UBI_LAYOUT_VOLUME_NAME   "layout volume"
 
#define UBI_LAYOUT_VOLUME_COMPAT   UBI_COMPAT_REJECT
 
#define UBI_MAX_VOLUMES   128
 
#define UBI_VOL_NAME_MAX   127
 
#define UBI_VTBL_RECORD_SIZE   sizeof(struct ubi_vtbl_record)
 
#define UBI_VTBL_RECORD_SIZE_CRC   (UBI_VTBL_RECORD_SIZE - sizeof(__be32))
 

Enumerations

enum  { UBI_VID_DYNAMIC = 1, UBI_VID_STATIC = 2 }
 
enum  { UBI_VTBL_AUTORESIZE_FLG = 0x01 }
 
enum  { UBI_COMPAT_DELETE = 1, UBI_COMPAT_RO = 2, UBI_COMPAT_PRESERVE = 4, UBI_COMPAT_REJECT = 5 }
 

: the volume name

struct ubi_vtbl_record - a record in the volume table. : how many physical eraseblocks are reserved for this volume : volume alignment : how many bytes are unused at the end of the each physical eraseblock to satisfy the requested alignment : volume type (UBI_DYNAMIC_VOLUME or UBI_STATIC_VOLUME) : if volume update was started but not finished : volume name length

: volume flags (UBI_VTBL_AUTORESIZE_FLG) : reserved, zeroes : a CRC32 checksum of the record

The volume table records are stored in the volume table, which is stored in the layout volume. The layout volume consists of 2 logical eraseblock, each of which contains a copy of the volume table (i.e., the volume table is duplicated). The volume table is an array of &struct ubi_vtbl_record objects indexed by the volume ID.

If the size of the logical eraseblock is large enough to fit UBI_MAX_VOLUMES records, the volume table contains UBI_MAX_VOLUMES records. Otherwise, it contains as many records as it can fit (i.e., size of logical eraseblock divided by sizeof(struct ubi_vtbl_record)).

The flag is used to implement volume update. It is set to %1 before update and set to %0 after the update. So if the update operation was interrupted, UBI knows that the volume is corrupted.

The field is specified when the volume is created and cannot be later changed. It may be useful, for example, when a block-oriented file system works on top of UBI. The field is calculated using the logical eraseblock size and . The alignment must be multiple to the minimal flash I/O unit. If is 1, all the available space of the physical eraseblocks is used.

Empty records contain all zeroes and the CRC checksum of those zeroes.

#define UBI_FM_SB_VOLUME_ID   (UBI_LAYOUT_VOLUME_ID + 1)
 
#define UBI_FM_DATA_VOLUME_ID   (UBI_LAYOUT_VOLUME_ID + 2)
 
#define UBI_FM_FMT_VERSION   1
 
#define UBI_FM_SB_MAGIC   0x7B11D69F
 
#define UBI_FM_HDR_MAGIC   0xD4B82EF7
 
#define UBI_FM_VHDR_MAGIC   0xFA370ED1
 
#define UBI_FM_POOL_MAGIC   0x67AF4D08
 
#define UBI_FM_EBA_MAGIC   0xf0c040a8
 
#define UBI_FM_MAX_START   64
 
#define UBI_FM_MAX_BLOCKS   32
 
#define UBI_FM_MIN_POOL_SIZE   8
 
#define UBI_FM_MAX_POOL_SIZE   256
 
#define UBI_FM_WL_POOL_SIZE   25
 
struct ubi_ec_hdr __packed
 

Macro Definition Documentation

#define UBI_CRC32_INIT   0xFFFFFFFFU

Definition at line 42 of file ubi-media.h.

#define UBI_EC_HDR_MAGIC   0x55424923

Definition at line 45 of file ubi-media.h.

#define UBI_EC_HDR_SIZE   sizeof(struct ubi_ec_hdr)

Definition at line 116 of file ubi-media.h.

#define UBI_EC_HDR_SIZE_CRC   (UBI_EC_HDR_SIZE - sizeof(__be32))

Definition at line 120 of file ubi-media.h.

#define UBI_FM_DATA_VOLUME_ID   (UBI_LAYOUT_VOLUME_ID + 2)

Definition at line 381 of file ubi-media.h.

#define UBI_FM_EBA_MAGIC   0xf0c040a8

Definition at line 390 of file ubi-media.h.

#define UBI_FM_FMT_VERSION   1

Definition at line 384 of file ubi-media.h.

#define UBI_FM_HDR_MAGIC   0xD4B82EF7

Definition at line 387 of file ubi-media.h.

#define UBI_FM_MAX_BLOCKS   32

Definition at line 397 of file ubi-media.h.

#define UBI_FM_MAX_POOL_SIZE   256

Definition at line 404 of file ubi-media.h.

#define UBI_FM_MAX_START   64

Definition at line 394 of file ubi-media.h.

#define UBI_FM_MIN_POOL_SIZE   8

Definition at line 403 of file ubi-media.h.

#define UBI_FM_POOL_MAGIC   0x67AF4D08

Definition at line 389 of file ubi-media.h.

#define UBI_FM_SB_MAGIC   0x7B11D69F

Definition at line 386 of file ubi-media.h.

#define UBI_FM_SB_VOLUME_ID   (UBI_LAYOUT_VOLUME_ID + 1)

Definition at line 380 of file ubi-media.h.

#define UBI_FM_VHDR_MAGIC   0xFA370ED1

Definition at line 388 of file ubi-media.h.

#define UBI_FM_WL_POOL_SIZE   25

Definition at line 406 of file ubi-media.h.

#define UBI_INT_VOL_COUNT   1

Definition at line 298 of file ubi-media.h.

#define UBI_INTERNAL_VOL_START   (0x7FFFFFFF - 4096)

Definition at line 304 of file ubi-media.h.

#define UBI_LAYOUT_VOLUME_ALIGN   1

Definition at line 310 of file ubi-media.h.

#define UBI_LAYOUT_VOLUME_COMPAT   UBI_COMPAT_REJECT

Definition at line 313 of file ubi-media.h.

#define UBI_LAYOUT_VOLUME_EBS   2

Definition at line 311 of file ubi-media.h.

#define UBI_LAYOUT_VOLUME_ID   UBI_INTERNAL_VOL_START

Definition at line 308 of file ubi-media.h.

#define UBI_LAYOUT_VOLUME_NAME   "layout volume"

Definition at line 312 of file ubi-media.h.

#define UBI_LAYOUT_VOLUME_TYPE   UBI_VID_DYNAMIC

Definition at line 309 of file ubi-media.h.

#define UBI_MAX_ERASECOUNTER   0x7FFFFFFF

Definition at line 39 of file ubi-media.h.

#define UBI_MAX_VOLUMES   128

Definition at line 316 of file ubi-media.h.

#define UBI_VERSION   1

Definition at line 36 of file ubi-media.h.

#define UBI_VID_HDR_MAGIC   0x55424921

Definition at line 47 of file ubi-media.h.

#define UBI_VID_HDR_SIZE   sizeof(struct ubi_vid_hdr)

Definition at line 117 of file ubi-media.h.

#define UBI_VID_HDR_SIZE_CRC   (UBI_VID_HDR_SIZE - sizeof(__be32))

Definition at line 121 of file ubi-media.h.

#define UBI_VOL_NAME_MAX   127

Definition at line 319 of file ubi-media.h.

#define UBI_VTBL_RECORD_SIZE   sizeof(struct ubi_vtbl_record)

Definition at line 322 of file ubi-media.h.

#define UBI_VTBL_RECORD_SIZE_CRC   (UBI_VTBL_RECORD_SIZE - sizeof(__be32))

Definition at line 325 of file ubi-media.h.

Enumeration Type Documentation

anonymous enum
Enumerator:
UBI_VID_DYNAMIC 
UBI_VID_STATIC 

Definition at line 55 of file ubi-media.h.

anonymous enum
Enumerator:
UBI_VTBL_AUTORESIZE_FLG 

Definition at line 93 of file ubi-media.h.

anonymous enum
Enumerator:
UBI_COMPAT_DELETE 
UBI_COMPAT_RO 
UBI_COMPAT_PRESERVE 
UBI_COMPAT_REJECT 

Definition at line 108 of file ubi-media.h.

Variable Documentation