Linux epoll implementation

Mario Lobo lobo at bsd.com.br
Sun Sep 20 15:35:55 UTC 2015


On Sun, 20 Sep 2015 13:03:26 +0200
Gary Jennejohn <gljennjohn at gmail.com> wrote:

> On Sat, 19 Sep 2015 13:06:25 -0300
> Mario Lobo <lobo at bsd.com.br> wrote:
> 
> > Hi;
> > 
> > I'm trying to compile this epoll implementation into the kernel
> > following
> > 
> > https://wiki.freebsd.org/linux-kernel
> > 
> > using the patch provided.
> > 
> > The patch applies fine but when compiling the kernel, it stops at
> > this:
> > 
> > /usr/src/sys/modules/linux/../../compat/linux/linux_epoll.c:66:10:
> > error: implicit declaration of function 'kqueue' is invalid in C99
> > [-Werror,-Wimplicit-function-declaration] 
> > return (kqueue(td, &k_args));
> > 
> > 
> > That is the only reference to kqueue on the
> > patched code at /usr/src/sys/compat/linux/
> > 
> > This kqueue call is very different from the one provided in man
> > kqueue:
> > 
> > int kqueue(void);
> > 
> > so I really ran out of options on finding out what this kqueue call
> > really is about.
> > 
> > Would anyone have any pointers on this?
> > 
> 
> NOTE: I'm referencing HEAD here.
> 
> epoll() is a system call (syscall), so it will be using the
> kernel interfaces.
> 
> The only kqueue-related syscall with the same arguments is
> sys_kqueue().  Try using that instead.
> 

Yes! That solved the compilation problem. Tomorrow I'll test to see if
the implementation works.

Thanks Gary!

-- 
Mario Lobo
http://www.mallavoodoo.com.br
FreeBSD since 2.2.8 [not Pro-Audio.... YET!!]
 
"UNIX was not designed to stop you from doing stupid things, 
because that would also stop you from doing clever things."


More information about the freebsd-emulation mailing list