.. | .. |
---|
23 | 23 | #define DLOG(x...) |
---|
24 | 24 | #endif |
---|
25 | 25 | |
---|
26 | | -struct vendor_item { |
---|
27 | | - u16 id; |
---|
28 | | - u16 offset; |
---|
29 | | - u16 size; |
---|
30 | | - u16 flag; |
---|
31 | | -}; |
---|
32 | | - |
---|
33 | 26 | #define FLASH_VENDOR_PART_START 8 |
---|
34 | | -#define FLASH_VENDOR_PART_SIZE 8 |
---|
35 | 27 | #define FLASH_VENDOR_PART_NUM 4 |
---|
36 | | -#define FLASH_VENDOR_TAG 0x524B5644 |
---|
37 | | - |
---|
38 | | -struct tag_vendor_info { |
---|
39 | | - u32 tag; |
---|
40 | | - u32 version; |
---|
41 | | - u16 next_index; |
---|
42 | | - u16 item_num; |
---|
43 | | - u16 free_offset; |
---|
44 | | - u16 free_size; |
---|
45 | | - struct vendor_item item[62]; /* 62 * 8 */ |
---|
46 | | - u8 data[FLASH_VENDOR_PART_SIZE * 512 - 512 - 8]; |
---|
47 | | - u32 hash; |
---|
48 | | - u32 version2; |
---|
49 | | -}; |
---|
| 28 | +#define FLASH_VENDOR_TAG VENDOR_HEAD_TAG |
---|
50 | 29 | |
---|
51 | 30 | static int (*_flash_read)(u32 sec, u32 n_sec, void *p_data); |
---|
52 | 31 | static int (*_flash_write)(u32 sec, u32 n_sec, void *p_data); |
---|
53 | | -static struct tag_vendor_info *g_vendor; |
---|
| 32 | +static struct flash_vendor_info *g_vendor; |
---|
54 | 33 | |
---|
55 | 34 | int flash_vendor_dev_ops_register(int (*read)(u32 sec, |
---|
56 | 35 | u32 n_sec, |
---|
.. | .. |
---|
174 | 153 | item->size = size; |
---|
175 | 154 | memcpy(&p_data[item->offset], pbuf, size); |
---|
176 | 155 | g_vendor->free_offset = offset + align_size; |
---|
177 | | - g_vendor->free_size = sizeof(g_vendor->data) - g_vendor->free_offset; |
---|
| 156 | + g_vendor->free_size -= (align_size - |
---|
| 157 | + alloc_size); |
---|
178 | 158 | } else { |
---|
179 | 159 | memcpy(&p_data[item->offset], |
---|
180 | 160 | pbuf, |
---|
.. | .. |
---|
359 | 339 | |
---|
360 | 340 | device_initcall_sync(vendor_storage_init); |
---|
361 | 341 | module_exit(vendor_storage_deinit); |
---|
| 342 | +MODULE_LICENSE("GPL"); |
---|