Hi -

This patchset implements timerfd on top of #alarm, for the most part.
Our underlying CLOCK_ work is lacking, and there are probably other
issues.  But it does pass the timerfd test from Linux (which I expanded
to catch a few more bugs of mine).

Barret


The following changes since commit 3239f74daaf67295d1ae65b52cee8f053bb2945e:

  Set qemu's port-forwarding to port 22 (2016-04-07 14:14:51 -0400)

are available in the git repository at:

  [email protected]:brho/akaros.git timerfd

for you to fetch changes up to 75686820dce0764f084cfdab6a4492340b2cc2b8:

  Port tests/timerfd.c (2016-04-14 17:08:39 -0400)

----------------------------------------------------------------
View this online at:
https://github.com/brho/akaros/compare/3239f74daaf6...75686820dce0

----------------------------------------------------------------
Barret Rhoden (14):
      Modify glibc's printf for use from VC ctx (XCC)
      Implement clock_gettime() (XCC)
      Add two time conversion helpers to glibc (XCC)
      Use FD taps for event delivery for #alarm
      Add user helpers save_err and restore_err (XCC)
      Implement pipes in userspace (XCC)
      Export sys/plan9_helpers.h from glibc (XCC)
      Add helpers for common 9ns functions (XCC)
      Change #alarm cancel method
      Add the helper strtoul_from_ubuf()
      Add period and count to #alarm
      Implement timerfd on top of #alarm (XCC)
      Import timerfd test from Linux
      Port tests/timerfd.c

 kern/drivers/dev/alarm.c                           | 278 ++++++++++++++-----
 kern/include/devalarm.h                            |  10 +-
 kern/include/ns.h                                  |   2 +-
 kern/include/ros/bits/syscall.h                    |   2 +-
 kern/src/ns/sysfile.c                              |  46 ----
 kern/src/ns/util.c                                 |  18 ++
 kern/src/syscall.c                                 |  17 --
 tests/alarm.c                                      |  46 +---
 tests/cs.c                                         |   2 +-
 tests/evq_block.c                                  |   4 +-
 tests/timerfd.c                                    | 296 +++++++++++++++++++++
 .../glibc-2.19-akaros/sysdeps/akaros/Makefile      |   9 +
 .../glibc-2.19-akaros/sysdeps/akaros/Versions      |  11 +-
 .../glibc-2.19-akaros/sysdeps/akaros/accept.c      |   2 +-
 .../glibc-2.19-akaros/sysdeps/akaros/bind.c        |   2 +-
 .../glibc-2.19-akaros/sysdeps/akaros/bits/errno.h  |   2 +
 .../sysdeps/akaros/bits/timerfd.h                  |  29 ++
 .../sysdeps/akaros/clock_gettime.c                 |  27 ++
 .../glibc-2.19-akaros/sysdeps/akaros/connect.c     |   2 +-
 .../glibc-2.19-akaros/sysdeps/akaros/errno.c       |  21 ++
 .../glibc-2.19-akaros/sysdeps/akaros/gethstbyad.c  |   2 +-
 .../sysdeps/akaros/gethstbyad_r.c                  |   2 +-
 .../sysdeps/akaros/gethstbynm2_r.c                 |   2 +-
 .../glibc-2.19-akaros/sysdeps/akaros/getpeername.c |   2 +-
 .../sysdeps/akaros/getprtname_r.c                  |   2 +-
 .../glibc-2.19-akaros/sysdeps/akaros/getsockname.c |   2 +-
 .../glibc-2.19-akaros/sysdeps/akaros/getsockopt.c  |   2 +-
 .../sysdeps/akaros/getsrvbynm_r.c                  |   2 +-
 .../glibc-2.19-akaros/sysdeps/akaros/getsrvbypt.c  |   2 +-
 .../sysdeps/akaros/getsrvbypt_r.c                  |   2 +-
 .../glibc-2.19-akaros/sysdeps/akaros/listen.c      |   2 +-
 .../sysdeps/akaros/parlib-compat.c                 |  19 +-
 .../glibc-2.19-akaros/sysdeps/akaros/pipe2.c       |  62 +++--
 .../sysdeps/akaros/plan9_sockets.c                 |  34 ++-
 .../glibc-2.19-akaros/sysdeps/akaros/recv.c        |   2 +-
 .../glibc-2.19-akaros/sysdeps/akaros/recvfrom.c    |   2 +-
 .../glibc-2.19-akaros/sysdeps/akaros/send.c        |   2 +-
 .../glibc-2.19-akaros/sysdeps/akaros/sendto.c      |   2 +-
 .../glibc-2.19-akaros/sysdeps/akaros/setsockopt.c  |   2 +-
 .../glibc-2.19-akaros/sysdeps/akaros/shutdown.c    |   2 +-
 .../glibc-2.19-akaros/sysdeps/akaros/socket.c      |   2 +-
 .../glibc-2.19-akaros/sysdeps/akaros/socketpair.c  |   2 +-
 .../{plan9_sockets.h => sys/plan9_helpers.h}       |  14 +-
 .../glibc-2.19-akaros/sysdeps/akaros/sys/timerfd.h |  52 ++++
 .../glibc-2.19-akaros/sysdeps/akaros/timerfd.c     | 208 +++++++++++++++
 .../glibc-2.19-akaros/sysdeps/akaros/vfprintf.c    |  21 +-
 user/benchutil/alarm.c                             |  45 ++--
 user/benchutil/include/benchutil/alarm.h           |   5 +-
 user/benchutil/pvcalarm.c                          |  45 +---
 user/iplib/epoll.c                                 |   4 +-
 user/parlib/debug.c                                |  45 ----
 user/parlib/debugfmt.c                             | 196 --------------
 user/parlib/include/parlib/stdio.h                 |   3 -
 53 files changed, 1072 insertions(+), 545 deletions(-)
 create mode 100644 tests/timerfd.c
 create mode 100644 
tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/bits/timerfd.h
 create mode 100644 
tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/clock_gettime.c
 rename 
tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/{plan9_sockets.h => 
sys/plan9_helpers.h} (95%)
 create mode 100644 
tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/sys/timerfd.h
 create mode 100644 
tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/timerfd.c
 delete mode 100644 user/parlib/debugfmt.c

-- 
You received this message because you are subscribed to the Google Groups 
"Akaros" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to