7 #ifndef ZRTOS_VFS_MODULE_W5500_H 8 #define ZRTOS_VFS_MODULE_W5500_H 19 #ifndef ZRTOS_VFS_MODULE_W5500__CFG_STARTUP_DELAY 20 #define ZRTOS_VFS_MODULE_W5500__CFG_STARTUP_DELAY 600 24 #ifndef ZRTOS_VFS_MODULE_W5500__CFG_SPI_CLOCK_RATE 25 #if ZRTOS_ARCH__CPU_CLOCK_HZ <= 4000000L 26 #define ZRTOS_VFS_MODULE_W5500__CFG_SPI_CLOCK_RATE\ 27 ZRTOS_VFS_MODULE_SPI_SYNC_CONTROL__CLOCK_RATE_4 28 #elif ZRTOS_ARCH__CPU_CLOCK_HZ <= 16000000L 29 #define ZRTOS_VFS_MODULE_W5500__CFG_SPI_CLOCK_RATE\ 30 ZRTOS_VFS_MODULE_SPI_SYNC_CONTROL__CLOCK_RATE_16 31 #elif ZRTOS_ARCH__CPU_CLOCK_HZ <= 64000000L 32 #define ZRTOS_VFS_MODULE_W5500__CFG_SPI_CLOCK_RATE\ 33 ZRTOS_VFS_MODULE_SPI_SYNC_CONTROL__CLOCK_RATE_64 34 #elif ZRTOS_ARCH__CPU_CLOCK_HZ <= 128000000L 35 #define ZRTOS_VFS_MODULE_W5500__CFG_SPI_CLOCK_RATE\ 36 ZRTOS_VFS_MODULE_SPI_SYNC_CONTROL__CLOCK_RATE_128 38 #error "not supported cpu clock" 42 #define ZRTOS_VFS_MODULE_W5500__CFG_SPI_CONTROL\ 43 (ZRTOS_VFS_MODULE_W5500__CFG_SPI_CLOCK_RATE\ 44 |ZRTOS_VFS_MODULE_SPI_SYNC_CONTROL__MODE_MASTER\ 45 |ZRTOS_VFS_MODULE_SPI_SYNC_CONTROL__BITORDER_MSB\ 46 |ZRTOS_VFS_MODULE_SPI_SYNC_CONTROL__PP_0) 57 #define ZRTOS_VFS_MODULE_W5500_IOCTL__GET(addr,len)\ 58 ((addr << 8) | (0x00 << 6) | len) 59 #define ZRTOS_VFS_MODULE_W5500_IOCTL__SET(addr,len)\ 60 ((addr << 8) | (0x01 << 6) | len) 124 #undef ZRTOS_VFS_MODULE_W5500_IOCTL__GET 125 #undef ZRTOS_VFS_MODULE_W5500_IOCTL__SET 173 uint8_t ctl = _W5500_SPI_WRITE_;
176 for(
size_t l = 2;l--;){
186 ))) && (mode & MR_RST) != 0){
190 ctl = _W5500_SPI_READ_;
207 ,zrtos_vfs_dentry__get_data(thiz)
227 ,
bool (*validate)(uint16_t addr,
size_t length)
248 ctl = req & 0xF | ctl_bsb;
253 if(length == value_length
254 && validate(addr,length)
275 (addr + length < 0x2F)
276 || (addr == 0x39 && length == 1)
#define ZRTOS_CAST(type, value)
bool zrtos_vfs_module_w5500_socket__on_ioctl_helper_validate_addr(uint16_t addr, size_t length)
ZRTOS_VFS_MODULE_W5500_IOCTL__SET_SOCKET_INTERRUPT
ZRTOS_VFS_MODULE_W5500_IOCTL__SET_PHY_CONFIG
#define ZRTOS_VFS_PLUGIN__4_ON_READ_DEFAULT()
ZRTOS_VFS_MODULE_W5500_IOCTL__SET_PPP_SESSION_ID
#define ZRTOS_CAST__REINTERPRET(type, value)
ZRTOS_VFS_MODULE_W5500_IOCTL__SET_SOURCE_MAC_ADDRESS
ZRTOS_VFS_MODULE_W5500_IOCTL__GET_GATEWAY_ADDRESS
ZRTOS_VFS_MODULE_W5500_IOCTL__GET_PHY_CONFIG
#define ZRTOS_VFS_PLUGIN__0_ON_OPEN_DEFAULT()
ZRTOS_VFS_MODULE_W5500_IOCTL__SET_INTERRUPT_MASK
ZRTOS_VFS_MODULE_W5500_IOCTL__GET_INTERRUPT_LOW_LEVEL_TIMER
ZRTOS_VFS_MODULE_W5500_IOCTL__GET_RETRY_COUNT
ZRTOS_VFS_MODULE_W5500_IOCTL__SET_RETRY_TIME
ZRTOS_VFS_MODULE_W5500_IOCTL__SET_SOURCE_IP_ADDRESS
ZRTOS_VFS_MODULE_W5500_IOCTL__GET_RETRY_TIME
ZRTOS_VFS_MODULE_W5500_IOCTL__GET_SOCKET_INTERRUPT_MASK
#define zrtos_types__htobe16(x)
ZRTOS_VFS_MODULE_W5500_IOCTL__SET_RETRY_COUNT
ZRTOS_VFS_MODULE_W5500_IOCTL__GET_INTERRUPT_MASK
ZRTOS_VFS_MODULE_W5500_IOCTL__SET_MODE
#define ZRTOS_VFS_MODULE_W5500_IOCTL__SET(addr, len)
ZRTOS_VFS_MODULE_W5500_IOCTL__SET_SOCKET_INTERRUPT_MASK
struct _zrtos_vfs_module_w5500_ioctl_t zrtos_vfs_module_w5500_ioctl_t
#define ZRTOS_VFS_PLUGIN__5_ON_WRITE_DEFAULT()
#define ZRTOS_VFS_PLUGIN__7_ON_CAN_WRITE_DEFAULT()
#define ZRTOS_VFS_PLUGIN__8_ON_SEEK_DEFAULT()
#define ZRTOS_VFS_PLUGIN__1_ON_CLOSE_DEFAULT()
ZRTOS_VFS_MODULE_W5500_IOCTL__GET_UNREACHABLE_IP
struct _zrtos_vfs_module_w5500_inode_t zrtos_vfs_module_w5500_inode_t
#define ZRTOS_VFS_PLUGIN__3_ON_UMOUNT(callback)
ZRTOS_VFS_MODULE_W5500_IOCTL__GET_PPP_DESTINATION_MAC
#define ZRTOS_VFS_PLUGIN__6_ON_CAN_READ_DEFAULT()
ZRTOS_VFS_MODULE_W5500_IOCTL__GET_INTERRUPT
ZRTOS_VFS_MODULE_W5500_IOCTL__SET_PPP_LCP_MAGIC_NUMBER
ZRTOS_VFS_MODULE_W5500_IOCTL__SET_PPP_MAXIMUM_SEGMENT_SIZE
ZRTOS_VFS_MODULE_W5500_IOCTL__GET_UNREACHABLE_PORT
#define ZRTOS_TYPES__SIZE_MAX
ZRTOS_ASSERT__STATIC(sizeof(int) >=sizeof(uint16_t))
#define ZRTOS_VFS_PLUGIN__2_ON_MOUNT(callback)
ZRTOS_VFS_MODULE_W5500_IOCTL__SET_PPP_DESTINATION_MAC
zrtos_error_t zrtos_vfs_module_w5500__on_ioctl_helper(zrtos_vfs_fd_t fd, char *path, int request, va_list args, uint8_t ctl_bsb, bool(*validate)(uint16_t addr, size_t length))
#define ZRTOS_VFS_MODULE_W5500_IOCTL__GET(addr, len)
ZRTOS_VFS_MODULE_W5500_IOCTL__GET_SOURCE_IP_ADDRESS
void * zrtos_vfs_file__get_inode_data(zrtos_vfs_file_t *thiz)
bool zrtos_error__is_success(zrtos_error_t thiz)
ZRTOS_VFS_MODULE_W5500_IOCTL__SET_INTERRUPT
#define ZRTOS_VFS_PLUGIN__9_ON_IOCTL(callback)
Successful program execution status.
ZRTOS_VFS_MODULE_W5500_IOCTL__GET_SOCKET_INTERRUPT
#define zrtos_va__arg_ptr(ap, type)
ZRTOS_VFS_MODULE_W5500_IOCTL__GET_MODE
zrtos_vfs_module_w5500_ctl_t
ZRTOS_VFS_MODULE_W5500_IOCTL__SET_SUBNET_MASK
zrtos_error_t zrtos_vfs_module_w5500__spi_transfer_uint16(zrtos_vfs_fd_t fd, uint16_t addr, uint8_t ctl, uint16_t *val)
ZRTOS_VFS_MODULE_W5500_IOCTL__SET_PPP_LCP_REQUEST_TIMER
ZRTOS_VFS_MODULE_W5500_IOCTL__GET_SOURCE_MAC_ADDRESS
bool zrtos_vfs_module_w5500__on_ioctl_helper_validate_addr(uint16_t addr, size_t length)
zrtos_error_t zrtos_vfs_module_w5500__reset(zrtos_vfs_fd_t fd)
zrtos_error_t zrtos_vfs_fd__spi_transfer(zrtos_vfs_fd_t fd, size_t len,...)
ZRTOS_VFS_MODULE_W5500_IOCTL__GET_SUBNET_MASK
ZRTOS_VFS_PLUGIN__INIT(w5500, ZRTOS_VFS_PLUGIN__0_ON_OPEN_DEFAULT() ZRTOS_VFS_PLUGIN__1_ON_CLOSE_DEFAULT() ZRTOS_VFS_PLUGIN__2_ON_MOUNT(zrtos_vfs_module_w5500__on_mount) ZRTOS_VFS_PLUGIN__3_ON_UMOUNT(zrtos_vfs_module_w5500__on_umount) ZRTOS_VFS_PLUGIN__4_ON_READ_DEFAULT() ZRTOS_VFS_PLUGIN__5_ON_WRITE_DEFAULT() ZRTOS_VFS_PLUGIN__6_ON_CAN_READ_DEFAULT() ZRTOS_VFS_PLUGIN__7_ON_CAN_WRITE_DEFAULT() ZRTOS_VFS_PLUGIN__8_ON_SEEK_DEFAULT() ZRTOS_VFS_PLUGIN__9_ON_IOCTL(zrtos_vfs_module_w5500__on_ioctl))
ZRTOS_VFS_MODULE_W5500_IOCTL__GET_PPP_SESSION_ID
zrtos_error_t zrtos_vfs_module_w5500__on_ioctl(zrtos_vfs_file_t *thiz, char *path, int request, va_list args)
zrtos_vfs_module_w5500_mode_t
ZRTOS_VFS_MODULE_W5500_IOCTL__GET_PPP_LCP_REQUEST_TIMER
zrtos_error_t zrtos_vfs_module_w5500__on_umount(zrtos_vfs_dentry_t *thiz)
void zrtos_gpio__delay_milliseconds(uint16_t ms)
ZRTOS_VFS_MODULE_W5500_IOCTL__GET_PPP_MAXIMUM_SEGMENT_SIZE
zrtos_error_t zrtos_vfs_module_w5500__spi_transfer_uint8(zrtos_vfs_fd_t fd, uint16_t addr, uint8_t ctl, uint8_t *val)
zrtos_error_t zrtos_vfs_module_w5500__on_mount(zrtos_vfs_dentry_t *thiz)
ZRTOS_VFS_MODULE_W5500_IOCTL__SET_INTERRUPT_LOW_LEVEL_TIMER
ZRTOS_VFS_MODULE_W5500_IOCTL__GET_PPP_LCP_MAGIC_NUMBER
ZRTOS_VFS_MODULE_W5500_IOCTL__SET_GATEWAY_ADDRESS
#define ZRTOS_VFS_MODULE_W5500__CFG_STARTUP_DELAY