| 46 | }*/ |
| 47 | |
| 48 | static u16 CalcIpCheckSum(IPHeader *ip) { |
| 49 | int len; |
| 50 | u32 sum; |
| 51 | u16 *p; |
| 52 | |
| 53 | sum = 0; |
| 54 | len = (ip->verlen & 0xf) << 2; |
| 55 | p = (u16*)ip; |
| 56 | |
| 57 | while (len > 0) { |
| 58 | sum += *p++; |
| 59 | len -= 2; |
| 60 | } |
| 61 | |
| 62 | sum = (sum & 0xffff) + (sum >> 16); |
| 63 | sum = ((sum & 0xffff) + (sum >> 16)); |
| 64 | return sum ^ 0xffff; |
| 65 | } |
| 66 | |
| 67 | static u16 CalcTcpCheckSum(IPHeader *ip, s32 len) { |
| 68 | s32 hlen; |
no outgoing calls
no test coverage detected