> Note that the kernel BSD sk driver was _not_ written by SysKonnect and
> only supports Genesis and Yukon1; linux supports Genesis (single and
> dual), Yukon1, Yukon Plus, Yukon EC, Yukon FE and Yukon2 (single and
They have Yukon2 support for while - unlike Linux.
> The BSD sk driver supports substantially less functionality than
> the Linux driver. For example, there is no link failover capability in
> the sk driver;
Which isn't something that belongs into a driver anyway. It also
means you common code is obsfucated enough that no one noticed :)
> For instance the symbol SK_IOC mentioned in your mail:
> > -#define SK_IOC char __iomem *
> > +typedef void __iomem *SK_IOC;
> is used in a large number of OS independent driver files (e.g. skvpd.c).
> The -for instance- file skvpd.c used by our Linux driver is used
> at the same time without any changes by all our other drivers running
> on other operating systems (e.g. Solaris, Windows).
> This is the reason why we need to redefine this symbol to the Linux
> specific implementation (void __iomem).
And you still haven't explained why your common code uses such
a broken structure instead of having some semi-opaque private data
passed around everywhere.
Also note that we don't new drivers using such horrible "common code"
anymore, you can be happy you sneaked it in at all a few years ago.