… | |
… | |
28 | struct net_packet { |
28 | struct net_packet { |
29 | u32 len; // actually u16, but padding... |
29 | u32 len; // actually u16, but padding... |
30 | |
30 | |
31 | u8 &operator[] (u16 offset) const; |
31 | u8 &operator[] (u16 offset) const; |
32 | |
32 | |
|
|
33 | void unshift_hdr (u16 hdrsize) |
|
|
34 | { |
|
|
35 | memmove ((void *)&(*this)[hdrsize], (void *)&(*this)[0], len); |
|
|
36 | len += hdrsize; |
|
|
37 | } |
|
|
38 | |
33 | void skip_hdr (u16 hdrsize) |
39 | void skip_hdr (u16 hdrsize) |
34 | { |
40 | { |
|
|
41 | len -= hdrsize; |
35 | memmove ((void *)&(*this)[0], (void *)&(*this)[hdrsize], len -= hdrsize); |
42 | memmove ((void *)&(*this)[0], (void *)&(*this)[hdrsize], len); |
36 | } |
43 | } |
37 | |
44 | |
38 | void set (const net_packet &pkt) |
45 | void set (const net_packet &pkt) |
39 | { |
46 | { |
40 | len = pkt.len; |
47 | len = pkt.len; |