91 lines
2.0 KiB
C
91 lines
2.0 KiB
C
#ifndef __FAL_V_H__
|
|
#define __FAL_V_H__
|
|
|
|
struct fal_partition {
|
|
void *fd;
|
|
/* uint32_t magic_word; */
|
|
|
|
/* partition name */
|
|
/* char name[FAL_DEV_NAME_MAX]; */
|
|
/* flash device name for partition */
|
|
/* char flash_name[FAL_DEV_NAME_MAX]; */
|
|
|
|
/* partition offset address on flash device */
|
|
long offset;
|
|
size_t len;
|
|
|
|
/* uint32_t reserved; */
|
|
};
|
|
|
|
struct flashdb_partition_info {
|
|
const char *name;
|
|
const char *dev_name;
|
|
int offset;
|
|
int len;
|
|
};
|
|
|
|
#define REGISTER_FLASHDB_PARTITION(partition) \
|
|
const struct flashdb_partition_info partition sec(.flashdb_partition)
|
|
|
|
extern const struct flashdb_partition_info flashdb_partition_begin[];
|
|
extern const struct flashdb_partition_info flashdb_partition_end[];
|
|
|
|
#define list_for_each_flashdb_partition(p) \
|
|
for (p = flashdb_partition_begin; p < flashdb_partition_end; p++)
|
|
|
|
|
|
const struct fal_partition *fal_vm_partition_find(const char *name);
|
|
|
|
|
|
/**
|
|
*
|
|
* read data from partition
|
|
*
|
|
* @param part partition
|
|
* @param addr relative address for partition
|
|
* @param buf read buffer
|
|
* @param size read size
|
|
*
|
|
* @return >= 0: successful read data size
|
|
* -1: error
|
|
*/
|
|
int fal_partition_read(const struct fal_partition *part, uint32_t addr, uint8_t *buf, size_t size);
|
|
|
|
|
|
/**
|
|
* write data to partition
|
|
*
|
|
* @param part partition
|
|
* @param addr relative address for partition
|
|
* @param buf write buffer
|
|
* @param size write size
|
|
*
|
|
* @return >= 0: successful write data size
|
|
* -1: error
|
|
*/
|
|
int fal_partition_write(const struct fal_partition *part, uint32_t addr, const uint8_t *buf, size_t size);
|
|
|
|
/**
|
|
* erase partition data
|
|
*
|
|
* @param part partition
|
|
* @param addr relative address for partition
|
|
* @param size erase size
|
|
*
|
|
* @return >= 0: successful erased data size
|
|
* -1: error
|
|
*/
|
|
int fal_partition_erase(const struct fal_partition *part, uint32_t addr, size_t size);
|
|
/**
|
|
* erase partition all data
|
|
*
|
|
* @param part partition
|
|
*
|
|
* @return >= 0: successful erased data size
|
|
* -1: error
|
|
*/
|
|
|
|
|
|
#endif
|
|
|