Skip to content
Snippets Groups Projects
Commit f015cd5b authored by Avi Kivity's avatar Avi Kivity
Browse files

bsd: change operator-(tcp_seq, tcp_seq) to be signed


This is more useful if there is no ordering between the two numbers (either
one can be ahead).

Change BYTES_THIS_ACK to return unsigned, to prevent an unsigned division from
turning into a signed division.

Signed-off-by: default avatarAvi Kivity <avi@cloudius-systems.com>
parent 15d9e5e4
No related branches found
No related tags found
No related merge requests found
......@@ -53,14 +53,13 @@ public:
tcp_seq operator--(int) { return tcp_seq(_raw--); }
friend inline bool operator==(tcp_seq a, tcp_seq b) { return a._raw == b._raw; }
friend inline bool operator!=(tcp_seq a, tcp_seq b) { return a._raw != b._raw; }
friend inline u_int32_t operator-(tcp_seq a, tcp_seq b) { return a._raw - b._raw; }
friend inline int32_t operator-(tcp_seq a, tcp_seq b) { return a._raw - b._raw; }
friend inline tcp_seq operator+(tcp_seq a, u_int32_t delta) { return a += delta; }
friend inline tcp_seq operator-(tcp_seq a, u_int32_t delta) { return a -= delta; }
friend inline int32_t sdiff(tcp_seq a, tcp_seq b) { return a.raw() - b.raw(); }
friend inline bool operator<(tcp_seq a, tcp_seq b) { return sdiff(a, b) < 0; }
friend inline bool operator<=(tcp_seq a, tcp_seq b) { return sdiff(a, b) <= 0; }
friend inline bool operator>(tcp_seq a, tcp_seq b) { return sdiff(a, b) > 0; }
friend inline bool operator>=(tcp_seq a, tcp_seq b) { return sdiff(a, b) >= 0; }
friend inline bool operator<(tcp_seq a, tcp_seq b) { return a - b < 0; }
friend inline bool operator<=(tcp_seq a, tcp_seq b) { return a - b <= 0; }
friend inline bool operator>(tcp_seq a, tcp_seq b) { return a - b > 0; }
friend inline bool operator>=(tcp_seq a, tcp_seq b) { return a - b >= 0; }
private:
u_int32_t _raw;
};
......
......@@ -264,7 +264,7 @@ struct tcpcb {
#define ENTER_RECOVERY(t_flags) t_flags |= (TF_CONGRECOVERY | TF_FASTRECOVERY)
#define EXIT_RECOVERY(t_flags) t_flags &= ~(TF_CONGRECOVERY | TF_FASTRECOVERY)
#define BYTES_THIS_ACK(tp, th) (th->th_ack - tp->snd_una)
#define BYTES_THIS_ACK(tp, th) unsigned(th->th_ack - tp->snd_una)
/*
* Flags for the t_oobflags field.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment