00001
00002
00003
00004
00005
00006
00007
00008
#ifndef INDEX_H
00009
#define INDEX_H
00010
00011
#include <sys/types.h>
00012
00013 typedef struct {
00014 size_t pos;
00015 size_t len;
00016 unsigned int flags;
00017 }
idx_data;
00018
00019
#define FFV 0x10000000
00020
#define FFC_MASK 0x0e000000
00021
#define FFC_SHIFT 25
00022
#define FBV 0x01000000
00023
#define BFC_MASK 0x00e00000
00024
#define BFC_SHIFT 21
00025
#define TEMP_REF_MASK 0x001ff800
00026
#define TEMP_REF_SHIFT 11
00027
#define PIC_TYPE_MASK 0x00000700
00028
#define PIC_TYPE_SHIFT 8
00029
#define CHUNK_CODE_MASK 0x000000ff
00030
#define CHUNK_CODE_SHIFT 0
00031
00032
#define MOT_VEC_MASK (FFV | FFC_MASK | FBV | BFC_MASK)
00033
#define MOT_VEC_SHIFT BFC_SHIFT
00034
00035
#define IDX(type, x) (((x) << type##_SHIFT) & type##_MASK)
00036
#define UNIDX(type, x) (((x) & type##_MASK) >> type##_SHIFT)
00037
00038
#endif