60 lines
1.9 KiB
C
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_ */
|
|
|