Thread (8 messages) flat view 8 messages, 3 authors, 2014-09-14

Re: [PATCHv3 net-next 1/3] sunvnet: upgrade to VIO protocol version 1.6

From: Raghuram Kothakota <hidden>
Date: 2014-09-14 03:43:13

On Sep 13, 2014, at 8:01 PM, David Miller [off-list ref] wrote:
From: David L Stevens <redacted>
Date: Sat, 13 Sep 2014 22:39:25 -0400
quoted

On 09/13/2014 04:18 PM, David Miller wrote:
quoted
From: David L Stevens <redacted>
quoted
static inline bool vio_version_before(struct vio_driver_state *vio,
				      u16 major, u16 minor)
{
	u32 have = (u32)vio->major << 16 | vio->minor;
	u32 want = (u32)major << 16 | minor;

	return have < want;
}
static inline bool vio_version_after_eq(struct vio_driver_state *vio,
					u16 major, u16 minor)
{
	u32 have = (u32)vio->major << 16 | vio->minor;
	u32 want = (u32)major << 16 | minor;

	return have >= want;
}

Something like that.
Sure. I was thinking about something like:

#define VIO_VER(major, minor)	(((major)<<16)|(minor))

change the version struct to a 32-bit int, and do things like:

	if (vio->ver > VIO_VER(1,6)) {

unless you have a preference. (?)
I hate wasting space in a structure just to avoid some harmless
casting in a helper function that is simply trying to optimize
a comparison.

That's why I suggested the inline helpers above, which arguments
are strongly typed.
IMO, it would be more readable if we introduce the helper functions
that check for a specific feature than a specific version number
and hide the version number detail inside that helper function. Otherwise,
it will be harder to follow each version number check and why it is
being done. 

-Raghuram
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help