Files
E3/e3_176_ref/middleware/fee/fee_block.h
2025-10-21 19:40:27 +08:00

60 lines
1.9 KiB
C

/**
* @file fee_block.h
*
* Copyright (c) 2022 Semidrive Semiconductor.
* All rights reserved.
*
* Description:
*
* Revision History:
* -----------------
*/
#ifndef DISK_FEE_BLCOK_H_
#define DISK_FEE_BLCOK_H_
#include "fee.h"
#define FEE_BLOCK_NAME(n) "fee_block"#n
struct fee_config_block {
/* nor flash info */
const char *disk_name;
disk_addr_t addr; /* nor flash sector_size aligned */
disk_size_t size; /* sector_size * page_number aligned */
uint16_t mem_align_size; /* nor flash read/write memory alignment size */
uint16_t access_align_size; /* nor flash access alignment size */
uint32_t sector_size; /* erasing is based on sector_size */
uint16_t pe_cycles; /* flash sector erase the life,Unit ten thousand */
/* block info */
const char *fee_name;
uint16_t block_number; /* number of target virtual blocks */
uint16_t block_length; /* maximum size of the target virtual block, align size access_ALIGN_size */
uint32_t block_data_size; /* target virtual block data size */
};
struct fee_block {
const char *fee_name;
struct list_node node; /* list node */
osMutexId_t fee_mutex;
struct fee_dev fee_dev; /* fee device */
struct fee_config_block fee_con; /* fee block config */
};
/* fee block APIs */
int fee_init_block(void);
int fee_init_block(void);
int fee_register_block(struct fee_block *fee);
int fee_unregister_block(struct fee_block *fee);
/* single block can be accessed */
int fee_read_block(const char *fee_name, uint16_t block_number,
uint16_t block_offset, uint8_t *data_buffer, uint16_t length);
int fee_write_block(const char *fee_name, uint16_t block_number,
const uint8_t *data_buffer, uint16_t length);
#endif /* DISK_FEE_BLCOK_H_ */