61 lines
1.4 KiB
C
61 lines
1.4 KiB
C
|
#ifndef _VM_H_
|
||
|
#define _VM_H_
|
||
|
|
||
|
#include "ioctl.h"
|
||
|
#include "device/device.h"
|
||
|
|
||
|
#define IOCTL_SET_VM_INFO _IOW('V', 1, 1)
|
||
|
#define IOCTL_GET_VM_INFO _IOW('V', 2, 1)
|
||
|
// enum {
|
||
|
// #<{(|
|
||
|
// * 用户自定义配置项 (0-64)
|
||
|
// |)}>#
|
||
|
// #<{(| ... |)}>#
|
||
|
// }
|
||
|
|
||
|
// VM define and api
|
||
|
typedef u16 vm_hdl;
|
||
|
|
||
|
struct vm_table {
|
||
|
u16 index;
|
||
|
u16 value_byte;
|
||
|
int value; //cache value which value_byte <= 4
|
||
|
};
|
||
|
|
||
|
typedef enum _vm_err {
|
||
|
VM_ERR_NONE = 0,
|
||
|
VM_INDEX_ERR = -0x100,
|
||
|
VM_INDEX_EXIST, //0xFF
|
||
|
VM_DATA_LEN_ERR, //0xFE
|
||
|
VM_READ_NO_INDEX, //0xFD
|
||
|
VM_READ_DATA_ERR, //0xFC
|
||
|
VM_WRITE_OVERFLOW, //0xFB
|
||
|
VM_NOT_INIT,
|
||
|
VM_INIT_ALREADY,
|
||
|
VM_DEFRAG_ERR,
|
||
|
VM_ERR_INIT,
|
||
|
VM_ERR_PROTECT
|
||
|
} VM_ERR;
|
||
|
|
||
|
|
||
|
// vm api
|
||
|
VM_ERR vm_eraser(void);
|
||
|
VM_ERR vm_init(void *dev_hdl, u32 vm_addr, u32 vm_len, u8 vm_mode);
|
||
|
//VM_ERR vm_db_create_table(const struct vm_table *table, int num);
|
||
|
void vm_check_all(u8 level); //level : default 0
|
||
|
u8 get_vm_statu(void);
|
||
|
// io api
|
||
|
//s32 vm_read(vm_hdl hdl, void *data_buf, u16 len);
|
||
|
//s32 vm_write(vm_hdl hdl, const void *data_buf, u16 len);
|
||
|
|
||
|
void spi_port_hd(u8 level);
|
||
|
|
||
|
bool sfc_erase_zone(u32 addr, u32 len);
|
||
|
|
||
|
void vm_api_write_mult(u16 start_id, u16 end_id, void *buf, u16 len, u32 delay);
|
||
|
int vm_api_read_mult(u16 start_id, u16 end_id, void *buf, u16 len);
|
||
|
|
||
|
|
||
|
#endif //_VM_H_
|
||
|
|