Files
AC707N/SDK/apps/common/flashdb/fal.h
T
2025-12-03 11:12:34 +08:00

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