agileRTOS (zrtos)  Version 0.8.0 (ghostbuster)
w5500_socket.h File Reference
Include dependency graph for w5500_socket.h:

Go to the source code of this file.

Data Structures

struct  _ZRTOS_VFS_MODULE_W5500_SOCKET_IOCTL_t
 
struct  zrtos_vfs_module_w5500_socket_file_t
 
struct  zrtos_vfs_module_w5500_socket_inode_t
 

Macros

#define ZRTOS_VFS_MODULE_W5500_SOCKET__TX_BUFFER_BASE   0x4000
 
#define ZRTOS_VFS_MODULE_W5500_SOCKET__RX_BUFFER_BASE   0x6000
 
#define ZRTOS_VFS_MODULE_W5500_SOCKET__TX_BUFFER_MASK   0x07FF
 
#define ZRTOS_VFS_MODULE_W5500_SOCKET__RX_BUFFER_MASK   0x07FF
 
#define ZRTOS_VFS_MODULE_W5500_SOCKET__TX_BUFFER_SIZE   2048
 
#define ZRTOS_VFS_MODULE_W5500_SOCKET__RX_BUFFER_SIZE   2048
 
#define ZRTOS_VFS_MODULE_W5500_SOCKET__TX_BUFFER_ADDR(n)
 
#define ZRTOS_VFS_MODULE_W5500_SOCKET__RX_BUFFER_ADDR(n)
 
#define ZRTOS_VFS_MODULE_W5500_SOCKET_IOCTL__GET(addr, len)   ((addr << 8) | (0x00 << 6) | len)
 
#define ZRTOS_VFS_MODULE_W5500_SOCKET_IOCTL__SET(addr, len)   ((addr << 8) | (0x01 << 6) | len)
 

Typedefs

typedef struct _ZRTOS_VFS_MODULE_W5500_SOCKET_IOCTL_t ZRTOS_VFS_MODULE_W5500_SOCKET_IOCTL_t
 

Functions

zrtos_error_t rtos_vfs_module_w5500_socket__read_data (zrtos_vfs_fd_t fd, uint8_t n, uint16_t src, uint8_t *dest, uint16_t len)
 
zrtos_error_t rtos_vfs_module_w5500_socket__on_read (zrtos_vfs_file_t *thiz, char *path, void *buf, size_t len, zrtos_vfs_offset_t offset, size_t *out)
 
zrtos_error_t rtos_vfs_module_w5500_socket__on_write (zrtos_vfs_file_t *thiz, char *path, void *buf, size_t len, zrtos_vfs_offset_t offset, size_t *out)
 
zrtos_error_t rtos_vfs_module_w5500_socket__on_can_read_write_helper (zrtos_vfs_file_t *thiz, char *path, uint16_t addr)
 
zrtos_error_t rtos_vfs_module_w5500_socket__on_can_read (zrtos_vfs_file_t *thiz, char *path)
 
zrtos_error_t rtos_vfs_module_w5500_socket__on_can_write (zrtos_vfs_file_t *thiz, char *path)
 
bool zrtos_vfs_module_w5500_socket__on_ioctl_helper_validate_addr (uint16_t addr, size_t length)
 
zrtos_error_t zrtos_vfs_module_w5500_socket__on_ioctl (zrtos_vfs_file_t *thiz, char *path, int request, va_list args)
 
 ZRTOS_VFS_PLUGIN__INIT (w5500_socket, ZRTOS_VFS_PLUGIN__0_ON_OPEN_DEFAULT() ZRTOS_VFS_PLUGIN__1_ON_CLOSE_DEFAULT() ZRTOS_VFS_PLUGIN__2_ON_MOUNT_DEFAULT() ZRTOS_VFS_PLUGIN__3_ON_UMOUNT_DEFAULT() ZRTOS_VFS_PLUGIN__4_ON_READ_DEFAULT(rtos_vfs_module_w5500_socket__on_read) ZRTOS_VFS_PLUGIN__5_ON_WRITE_DEFAULT(rtos_vfs_module_w5500_socket__on_write) ZRTOS_VFS_PLUGIN__6_ON_CAN_READ(rtos_vfs_module_w5500_socket__on_can_read) ZRTOS_VFS_PLUGIN__7_ON_CAN_WRITE(rtos_vfs_module_w5500_socket__on_can_write) ZRTOS_VFS_PLUGIN__8_ON_SEEK_DEFAULT() ZRTOS_VFS_PLUGIN__9_ON_IOCTL(zrtos_vfs_module_w5500_socket__on_ioctl))
 

Macro Definition Documentation

◆ ZRTOS_VFS_MODULE_W5500_SOCKET__RX_BUFFER_ADDR

#define ZRTOS_VFS_MODULE_W5500_SOCKET__RX_BUFFER_ADDR (   n)
Value:
(\
ZRTOS_VFS_MODULE_W5500_SOCKET__RX_BUFFER_BASE\
)
#define ZRTOS_VFS_MODULE_W5500_SOCKET__RX_BUFFER_SIZE
Definition: w5500_socket.h:24

Definition at line 30 of file w5500_socket.h.

◆ ZRTOS_VFS_MODULE_W5500_SOCKET__RX_BUFFER_BASE

#define ZRTOS_VFS_MODULE_W5500_SOCKET__RX_BUFFER_BASE   0x6000

Definition at line 20 of file w5500_socket.h.

◆ ZRTOS_VFS_MODULE_W5500_SOCKET__RX_BUFFER_MASK

#define ZRTOS_VFS_MODULE_W5500_SOCKET__RX_BUFFER_MASK   0x07FF

Definition at line 22 of file w5500_socket.h.

◆ ZRTOS_VFS_MODULE_W5500_SOCKET__RX_BUFFER_SIZE

#define ZRTOS_VFS_MODULE_W5500_SOCKET__RX_BUFFER_SIZE   2048

Definition at line 24 of file w5500_socket.h.

◆ ZRTOS_VFS_MODULE_W5500_SOCKET__TX_BUFFER_ADDR

#define ZRTOS_VFS_MODULE_W5500_SOCKET__TX_BUFFER_ADDR (   n)
Value:
(\
ZRTOS_VFS_MODULE_W5500_SOCKET__TX_BUFFER_BASE\
)
#define ZRTOS_VFS_MODULE_W5500_SOCKET__TX_BUFFER_SIZE
Definition: w5500_socket.h:23

Definition at line 25 of file w5500_socket.h.

◆ ZRTOS_VFS_MODULE_W5500_SOCKET__TX_BUFFER_BASE

#define ZRTOS_VFS_MODULE_W5500_SOCKET__TX_BUFFER_BASE   0x4000

Definition at line 19 of file w5500_socket.h.

◆ ZRTOS_VFS_MODULE_W5500_SOCKET__TX_BUFFER_MASK

#define ZRTOS_VFS_MODULE_W5500_SOCKET__TX_BUFFER_MASK   0x07FF

Definition at line 21 of file w5500_socket.h.

◆ ZRTOS_VFS_MODULE_W5500_SOCKET__TX_BUFFER_SIZE

#define ZRTOS_VFS_MODULE_W5500_SOCKET__TX_BUFFER_SIZE   2048

Definition at line 23 of file w5500_socket.h.

◆ ZRTOS_VFS_MODULE_W5500_SOCKET_IOCTL__GET

#define ZRTOS_VFS_MODULE_W5500_SOCKET_IOCTL__GET (   addr,
  len 
)    ((addr << 8) | (0x00 << 6) | len)

Definition at line 36 of file w5500_socket.h.

◆ ZRTOS_VFS_MODULE_W5500_SOCKET_IOCTL__SET

#define ZRTOS_VFS_MODULE_W5500_SOCKET_IOCTL__SET (   addr,
  len 
)    ((addr << 8) | (0x01 << 6) | len)

Definition at line 38 of file w5500_socket.h.

Typedef Documentation

◆ ZRTOS_VFS_MODULE_W5500_SOCKET_IOCTL_t

Function Documentation

◆ rtos_vfs_module_w5500_socket__on_can_read()

zrtos_error_t rtos_vfs_module_w5500_socket__on_can_read ( zrtos_vfs_file_t thiz,
char *  path 
)

Definition at line 287 of file w5500_socket.h.

290  {
292  thiz
293  ,path
294  ,(Sn_RX_RSR(0)>>8)
295  );
296 }
zrtos_error_t rtos_vfs_module_w5500_socket__on_can_read_write_helper(zrtos_vfs_file_t *thiz, char *path, uint16_t addr)
Definition: w5500_socket.h:259
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rtos_vfs_module_w5500_socket__on_can_read_write_helper()

zrtos_error_t rtos_vfs_module_w5500_socket__on_can_read_write_helper ( zrtos_vfs_file_t thiz,
char *  path,
uint16_t  addr 
)

Definition at line 259 of file w5500_socket.h.

263  {
264  zrtos_error_t ret;
268  );
269  uint16_t val;
270 
272  inode_data->fd
273  ,addr
274  ,(WIZCHIP_SREG_BLOCK(inode_data->num) << 3) | _W5500_SPI_READ_
275  ,&val
276  )))
277  ){
278  ret = val > 0
281  ;
282  }
283 
284  return ret;
285 }
#define ZRTOS_CAST(type, value)
Definition: cast.h:18
Try again.
Definition: error.h:35
void * zrtos_vfs_file__get_inode_data(zrtos_vfs_file_t *thiz)
Definition: vfs_file.h:191
bool zrtos_error__is_success(zrtos_error_t thiz)
Definition: error.h:152
Successful program execution status.
Definition: error.h:22
zrtos_error_t zrtos_vfs_module_w5500__spi_transfer_uint16(zrtos_vfs_fd_t fd, uint16_t addr, uint8_t ctl, uint16_t *val)
Definition: w5500.h:149
zrtos_error_t
Definition: error.h:20
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rtos_vfs_module_w5500_socket__on_can_write()

zrtos_error_t rtos_vfs_module_w5500_socket__on_can_write ( zrtos_vfs_file_t thiz,
char *  path 
)

Definition at line 298 of file w5500_socket.h.

301  {
303  thiz
304  ,path
305  ,(Sn_TX_FSR(0)>>8)
306  );
307 }
zrtos_error_t rtos_vfs_module_w5500_socket__on_can_read_write_helper(zrtos_vfs_file_t *thiz, char *path, uint16_t addr)
Definition: w5500_socket.h:259
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rtos_vfs_module_w5500_socket__on_read()

zrtos_error_t rtos_vfs_module_w5500_socket__on_read ( zrtos_vfs_file_t thiz,
char *  path,
void *  buf,
size_t  len,
zrtos_vfs_offset_t  offset,
size_t out 
)

Definition at line 150 of file w5500_socket.h.

157  {
161  );
165  );
167  uint16_t ptr;
168  uint16_t rx_len;
169  uint16_t rx_base_addr;
170 
172  inode_data->fd
173  ,(Sn_RX_RSR(0)>>8)
174  ,(WIZCHIP_SREG_BLOCK(file_data->fd) << 3) | _W5500_SPI_READ_
175  ,&rx_len
176  )))
178  inode_data->fd
179  ,Sn_RX_RD(0)>>8
180  ,(WIZCHIP_SREG_BLOCK(file_data->fd) << 3) | _W5500_SPI_READ_
181  ,ptr
182  )))){
183  rx_len = ZRTOS_TYPES__MIN(len,rx_len);
185  inode_data->fd
186  ,file_data->fd
187  ,ptr
188  ,buf
189  ,rx_len
190  )))){
191  ptr += rx_len;
193  file_data->w5500->fd
194  ,Sn_RX_RD(0)>>8
195  ,(WIZCHIP_SREG_BLOCK(file_data->fd) << 3) | _W5500_SPI_WRITE_
196  ,ptr
197  );
198  }
199  }
200 
201  return ret;
202 }
#define ZRTOS_CAST(type, value)
Definition: cast.h:18
zrtos_error_t rtos_vfs_module_w5500_socket__read_data(zrtos_vfs_fd_t fd, uint8_t n, uint16_t src, uint8_t *dest, uint16_t len)
Definition: w5500_socket.h:114
void * zrtos_vfs_file__get_inode_data(zrtos_vfs_file_t *thiz)
Definition: vfs_file.h:191
bool zrtos_error__is_success(zrtos_error_t thiz)
Definition: error.h:152
#define ZRTOS_TYPES__MIN(a, b)
Definition: types.h:78
void * zrtos_vfs_file__get_data(zrtos_vfs_file_t *thiz)
Definition: vfs_file.h:199
Successful program execution status.
Definition: error.h:22
zrtos_error_t zrtos_vfs_module_w5500__spi_transfer_uint16(zrtos_vfs_fd_t fd, uint16_t addr, uint8_t ctl, uint16_t *val)
Definition: w5500.h:149
zrtos_error_t
Definition: error.h:20
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rtos_vfs_module_w5500_socket__on_write()

zrtos_error_t rtos_vfs_module_w5500_socket__on_write ( zrtos_vfs_file_t thiz,
char *  path,
void *  buf,
size_t  len,
zrtos_vfs_offset_t  offset,
size_t out 
)

Definition at line 204 of file w5500_socket.h.

211  {
212 /*
213  zrtos_vfs_module_w5500_socket_inode_t *file_data = ZRTOS_CAST(
214  zrtos_vfs_module_w5500_socket_inode_t*
215  ,zrtos_vfs_file__get_inode_data(thiz)
216  );
217  zrtos_error_t ret;
218  uint16_t ptr;
219  ret = zrtos_vfs_module_w5500__spi_transfer_uint16(
220  zrtos_vfs_fd_t fd
221  ,uint16_t addr
222  ,uint8_t ctl
223  ,&ptr
224  );
225 
226  ret = zrtos_vfs_module_w5500__spi_transfer(
227  zrtos_vfs_fd_t fd
228  ,uint16_t addr
229  ,uint8_t ctl
230  ,uint16_t *val
231  );
232  ptr +=
233  ret = zrtos_vfs_module_w5500__spi_transfer_uint16(
234  zrtos_vfs_fd_t fd
235  ,uint16_t addr
236  ,uint8_t ctl
237  ,&ptr
238  );
239 
240  uint16_t ptr = readSnTX_WR(s);
241  uint8_t cntl_byte = (0x14+(s<<5));
242  ptr += data_offset;
243  write(ptr, cntl_byte, data, len);
244  ptr += len;
245  writeSnTX_WR(s, ptr);
246 
247  return zrtos_vfs_module_sram__rw(
248  thiz
249  ,path
250  ,buf
251  ,len
252  ,offset
253  ,out
254  ,true
255  );
256 */
257 }
Here is the caller graph for this function:

◆ rtos_vfs_module_w5500_socket__read_data()

zrtos_error_t rtos_vfs_module_w5500_socket__read_data ( zrtos_vfs_fd_t  fd,
uint8_t  n,
uint16_t  src,
uint8_t dest,
uint16_t  len 
)

Definition at line 114 of file w5500_socket.h.

120  {
121  uint16_t size;
122  uint16_t src_mask;
123  uint16_t addr;
124  size_t l;
125  uint8_t ctl = _W5500_SPI_READ_;
126 
130 
131  do{
133  fd
134  ,3
135  ,addr
136  ,sizeof(addr)
137  ,&ctl
138  ,sizeof(ctl)
139  ,dest
140  ,l
141  );
142  dest += l;
144  l = len - l;
145  }while(zrtos_error__is_success(ret) && l);
146 
147  return ret;
148 }
#define ZRTOS_VFS_MODULE_W5500_SOCKET__RX_BUFFER_MASK
Definition: w5500_socket.h:22
#define ZRTOS_VFS_MODULE_W5500_SOCKET__RX_BUFFER_SIZE
Definition: w5500_socket.h:24
bool zrtos_error__is_success(zrtos_error_t thiz)
Definition: error.h:152
#define ZRTOS_VFS_MODULE_W5500_SOCKET__RX_BUFFER_ADDR(n)
Definition: w5500_socket.h:30
zrtos_error_t zrtos_vfs_fd__spi_transfer(zrtos_vfs_fd_t fd, size_t len,...)
Definition: vfs_fd.h:113
static uint8_t
Definition: mcp2515.h:159
Here is the call graph for this function:
Here is the caller graph for this function:

◆ zrtos_vfs_module_w5500_socket__on_ioctl()

zrtos_error_t zrtos_vfs_module_w5500_socket__on_ioctl ( zrtos_vfs_file_t thiz,
char *  path,
int  request,
va_list  args 
)

Definition at line 317 of file w5500_socket.h.

322  {
326  );
330  );
332  inode_data->fd
333  ,path
334  ,request
335  ,args
336  ,WIZCHIP_SREG_BLOCK(file_data->fd)
338  );
339 }
#define ZRTOS_CAST(type, value)
Definition: cast.h:18
bool zrtos_vfs_module_w5500_socket__on_ioctl_helper_validate_addr(uint16_t addr, size_t length)
Definition: w5500_socket.h:309
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))
Definition: w5500.h:221
void * zrtos_vfs_file__get_inode_data(zrtos_vfs_file_t *thiz)
Definition: vfs_file.h:191
void * zrtos_vfs_file__get_data(zrtos_vfs_file_t *thiz)
Definition: vfs_file.h:199
Here is the call graph for this function:

◆ zrtos_vfs_module_w5500_socket__on_ioctl_helper_validate_addr()

bool zrtos_vfs_module_w5500_socket__on_ioctl_helper_validate_addr ( uint16_t  addr,
size_t  length 
)

Definition at line 309 of file w5500_socket.h.

309  {
310  return (
311  (addr + length < 0x14)
312  || ((addr == 0x15 || addr == 0x16) && length == 1)
313  || (addr >= 0x1E && (addr + length < 0x30))
314  );
315 }
Here is the caller graph for this function:

◆ ZRTOS_VFS_PLUGIN__INIT()