ioLibrary for Cortex M series
netctrl.c
Go to the documentation of this file.
1 
12 //#define FILE_LOG_SILENCE
13 #include "common/common.h"
14 
15 
16 
17 
18 void SetNetInfo(wiz_NetInfo *netinfo)
19 {
20  if(netinfo->mac[0] != 0x00 || netinfo->mac[1] != 0x00 || netinfo->mac[2] != 0x00 ||
21  netinfo->mac[3] != 0x00 || netinfo->mac[4] != 0x00 || netinfo->mac[5] != 0x00)
22  setSHAR(netinfo->mac); // set local MAC address
23  if(netinfo->ip[0] != 0x00 || netinfo->ip[1] != 0x00 || netinfo->ip[2] != 0x00 ||
24  netinfo->ip[3] != 0x00) setSIPR(netinfo->ip); // set local IP address
25  if(netinfo->sn[0] != 0x00 || netinfo->sn[1] != 0x00 || netinfo->sn[2] != 0x00 ||
26  netinfo->sn[3] != 0x00) setSUBR(netinfo->sn); // set Subnet mask
27  if(netinfo->gw[0] != 0x00 || netinfo->gw[1] != 0x00 || netinfo->gw[2] != 0x00 ||
28  netinfo->gw[3] != 0x00) setGAR(netinfo->gw); // set Gateway address
29 }
30 
32 {
33  uint8_t zero[6] = {0,};
34 
35  DBGA("Reset Address(%d)", member);
36  switch(member) {
37  //case NI_MAC_ADDR: // If need, uncomment
38  // setSHAR(zero);
39  // break;
40  case NI_IP_ADDR:
41  setSIPR(zero);
42  break;
43  case NI_SN_MASK:
44  setSUBR(zero);
45  break;
46  case NI_GW_ADDR:
47  setGAR(zero);
48  break;
49  default:
50  ERRA("wrong member value (%d)", member);
51  }
52 }
53 
54 void GetNetInfo(wiz_NetInfo *netinfo)
55 {
56  getSHAR(netinfo->mac); // get local MAC address
57  getSIPR(netinfo->ip); // get local IP address
58  getSUBR(netinfo->sn); // get subnet mask address
59  getGAR(netinfo->gw); // get gateway address
60 }
61 
62 void GetDstInfo(uint8_t s, uint8_t *dstip, uint16_t *dstport)
63 {
64  uint16_t dport = 0;
65 
66  getSn_DIPR(s, dstip);
67  dport = getSn_DPORT(s);
68  *dstport = dport;
69 
70 }
71 
72 void SetSocketOption(uint8_t option_type, uint16_t option_value)
73 {
74  switch(option_type){
75  case 0:
76  setRTR(option_value); // set retry duration for data transmission, connection, closing ...
77  break;
78  case 1:
79  setRCR((uint8_t)(option_value&0x00FF)); // set retry count (above the value, assert timeout interrupt)
80  break;
81  case 2:
82  setIMR((uint8_t)(option_value&0x00FF)); // set interrupt mask.
83  break;
84  default:
85  break;
86  }
87 }
88 
89 int8_t GetTCPSocketStatus(uint8_t s)
90 {
91  if(s > _WIZCHIP_SOCK_NUM_) {
92  ERRA("wrong socket number(%d)", s);
93  return SOCKERR_NOT_TCP;
94  }
95 
96  switch(getSn_SR(s)){
97  case SOCK_CLOSED: return SOCKSTAT_CLOSED; // closed
98  case SOCK_INIT: return SOCKSTAT_INIT; // init state
99  case SOCK_LISTEN: return SOCKSTAT_LISTEN; // listen state
100  case SOCK_SYNSENT: return SOCKSTAT_SYNSENT; // connection state
101  case SOCK_SYNRECV: return SOCKSTAT_SYNRECV; // connection state
102  case SOCK_ESTABLISHED: return SOCKSTAT_ESTABLISHED; // success to connect
103  case SOCK_FIN_WAIT: return SOCKSTAT_FIN_WAIT; // closing state
104  case SOCK_CLOSING: return SOCKSTAT_CLOSING; // closing state
105  case SOCK_TIME_WAIT: return SOCKSTAT_TIME_WAIT; // closing state
106  case SOCK_CLOSE_WAIT: return SOCKSTAT_CLOSE_WAIT; // closing state
107  case SOCK_LAST_ACK: return SOCKSTAT_LAST_ACK; // closing state
108  default:
109  if((getMR()&0x0F) != Sn_MR_TCP)
110  return SOCKERR_NOT_TCP;
111  else return SOCKERR_WRONG_STATUS;
112  }
113 }
114 
115 int8_t GetUDPSocketStatus(uint8_t s)
116 {
117  if(s > _WIZCHIP_SOCK_NUM_) {
118  ERRA("wrong socket number(%d)", s);
119  return SOCKERR_NOT_UDP;
120  }
121 
122  switch(getSn_SR(s)){
123  case SOCK_CLOSED: return SOCKSTAT_CLOSED; // closed
124  case SOCK_UDP: return SOCKSTAT_UDP; // udp socket
125 #if 0
126  case SOCK_MACRAW: return 12; // mac raw mode socket
127  case SOCK_PPPOE: return 13; // pppoe socket
128 #endif
129  default:
130  if((getMR()&0x0F) != Sn_MR_UDP)
131  return SOCKERR_NOT_UDP;
132  else return SOCKERR_WRONG_STATUS;
133  }
134 }
135 
136 uint16_t GetSocketTxFreeBufferSize(uint8_t s)
137 {
138  return getSn_TX_FSR(s); // get socket TX free buf size
139 }
140 
141 uint16_t GetSocketRxRecvBufferSize(uint8_t s)
142 {
143  return getSn_RX_RSR(s); // get socket RX recv buf size
144 }
145 
146 
147 
148 
149