aboutsummaryrefslogtreecommitdiffstats
path: root/sys/linux
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2018-05-05 10:13:04 +0200
committerDmitry Vyukov <dvyukov@google.com>2018-05-05 10:13:04 +0200
commit9dfb5efa91fc0f051a1ddc88ace2867bb6b32275 (patch)
tree6957d2852c869a559d1127d297d80ffc191ae292 /sys/linux
parent5ca897bd501e4b9a3a1b130bc9ec95243a4804a0 (diff)
prog: simplify code
Now that we don't have ReturnArg and only ResultArg's refer to other ResultArg's we can remove ArgUser/ArgUsed and devirtualize lots of code.
Diffstat (limited to 'sys/linux')
-rw-r--r--sys/linux/init.go4
-rw-r--r--sys/linux/sys.txt3
2 files changed, 4 insertions, 3 deletions
diff --git a/sys/linux/init.go b/sys/linux/init.go
index 9fabafe72..e2370baab 100644
--- a/sys/linux/init.go
+++ b/sys/linux/init.go
@@ -275,8 +275,8 @@ func (arch *arch) generateTimespec(g *prog.Gen, typ0 prog.Type, old prog.Arg) (a
Ret: prog.MakeReturnArg(meta.Ret),
}
calls = append(calls, gettime)
- sec := prog.MakeResultArg(typ.Fields[0], tp.Inner[0], 0)
- nsec := prog.MakeResultArg(typ.Fields[1], tp.Inner[1], 0)
+ sec := prog.MakeResultArg(typ.Fields[0], tp.Inner[0].(*prog.ResultArg), 0)
+ nsec := prog.MakeResultArg(typ.Fields[1], tp.Inner[1].(*prog.ResultArg), 0)
msec := uint64(10)
if g.NOutOf(1, 2) {
msec = 30
diff --git a/sys/linux/sys.txt b/sys/linux/sys.txt
index 8fd578629..10b35b2b4 100644
--- a/sys/linux/sys.txt
+++ b/sys/linux/sys.txt
@@ -212,7 +212,8 @@ resource io_ctx[intptr]
io_setup(n int32, ctx ptr[out, io_ctx])
io_destroy(ctx io_ctx)
io_getevents(ctx io_ctx, min_nr intptr, nr len[events], events ptr[out, array[io_event]], timeout ptr[in, timespec])
-# Prog knows that poiners passed in iocbpp needs to be forwarded to io_cancel.
+# TODO: kernel identifies requets by address, so pointers passed to io_submit
+# need to be forwarded to io_cancel somehow.
io_submit(ctx io_ctx, nr len[iocbpp], iocbpp ptr[in, array[ptr[in, iocb]]])
io_cancel(ctx io_ctx, iocb ptr[in, iocb], res ptr[out, io_event])