Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 29 Oct 2015 18:17:28 +0300
From:      Gleb Smirnoff <glebius@FreeBSD.org>
To:        Hans Petter Selasky <hps@selasky.org>
Cc:        Julian Elischer <julian@freebsd.org>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r290003 - head/sys/ofed/include/linux
Message-ID:  <20151029151728.GO97830@FreeBSD.org>
In-Reply-To: <563235E3.1090805@selasky.org>
References:  <201510261328.t9QDSYRT076892@repo.freebsd.org> <56302F9D.2020308@freebsd.org> <56308289.4050902@selasky.org> <20151029143651.GN97830@FreeBSD.org> <563235E3.1090805@selasky.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Oct 29, 2015 at 04:06:11PM +0100, Hans Petter Selasky wrote:
H> On 10/29/15 15:36, Gleb Smirnoff wrote:
H> > H> The parameters for bus_bind_intr() are not available outside the
H> > H> LinuxKPI. To support such a functionality we should wrap it, for the
H> > H> sake of maintainability.
H> > H>
H> > H> The LinuxKPI is not a binary compatibility module, and will at some
H> > H> point have API's diverging from Linux, to fit BSD API's better.
H> >
H> > This statement makes the name of LinuxKPI quite pointless, as well
H> > as the whole idea of the KPI unclear.
H> >
H> > Can you please explain what is the target of LinuxKPI, then?
H> 
H> Hi,
H> 
H> The target of the LinuxKPI is at the moment to support building device 
H> drivers and protocol layers which share code between *BSD and Linux. The 
H> target is not to kldload a kernel object file from Linux and have it 
H> work under FreeBSD.
H> 
H> For example when you build a PCI network driver, the PCI enumeration can 
H> be shared between Linux and FreeBSD, building only OS specific network 
H> handling on top. In the case of r290003 support is added for binding an 
H> IRQ vector to a CPU, in a way that can easily be patched into an 
H> existing driver using the LinuxKPI.
H> 
H> When you build a cross platform Linux/FreeBSD protocol stack, handling 
H> of LIST macros, bitmaps, timers, condition variables, mutexes, threads 
H> and so on can be shared. Like the basics of modern operating systems.
H> 
H> This is the Linux Kernel Programming Interface, LinuxKPI, in FreeBSD.

Yes, it is clear, that this isn't an ABI, but API. And the purpose is
also quite clear.

But above you said "will at some point have API's diverging from Linux",
which doesn't make sense together with your explanation.

-- 
Totus tuus, Glebius.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20151029151728.GO97830>