Add #eventfd [1/2]
authorBarret Rhoden <brho@cs.berkeley.edu>
Tue, 22 Sep 2015 15:23:40 +0000 (11:23 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Mon, 28 Sep 2015 19:14:00 +0000 (15:14 -0400)
commit81f1bbf21c45cf7e15b6ba06372d2048b177f472
tree62a0c0204aa1d41f4b1d0e3866cb6d87b77e04ec
parent0e002906a9814ca1ac1f4cb0343fe656640d3034
Add #eventfd [1/2]

This is a kernel device for eventfd().  It differs slightly from Linux
in that the kernel interface is a string instead of a host-endian u64.

You can play with the raw interface by attaching an instance of #eventfd
to the namespace (just like #pipe).  For example:

/ $ bind \#eventfd /prog
bind #eventfd -> /prog flag 0
( attach an eventfd in counter mode )
/ $ echo 33 > /prog/efd
/ $ read_once /prog/efd
33/ $
( put in and extract 33 (decimal) )
/ $ read_once /prog/efd &
( read in the background.  will exit after one read syscall. )
/ $
/ $ echo 33 > /prog/efd
33/ $
( woke up the blocked read_once )
kern/drivers/dev/Kbuild
kern/drivers/dev/eventfd.c [new file with mode: 0644]