aboutsummaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
Diffstat (limited to 'sys')
-rw-r--r--sys/akaros/init.go19
1 files changed, 19 insertions, 0 deletions
diff --git a/sys/akaros/init.go b/sys/akaros/init.go
index 58d0d1f5f..c3b9e521a 100644
--- a/sys/akaros/init.go
+++ b/sys/akaros/init.go
@@ -13,6 +13,25 @@ func init() {
prog.RegisterTarget(gen.Target_amd64, initTarget)
}
+type arch struct {
+ unix *targets.UnixSanitizer
+}
+
func initTarget(target *prog.Target) {
+ arch := &arch{
+ unix: targets.MakeUnixSanitizer(target),
+ }
target.MakeMmap = targets.MakePosixMmap(target)
+ target.SanitizeCall = arch.sanitizeCall
+}
+
+func (arch *arch) sanitizeCall(c *prog.Call) {
+ arch.unix.SanitizeCall(c)
+ switch c.Meta.CallName {
+ case "provision":
+ if pid, ok := c.Args[0].(*prog.ConstArg); ok && uint32(pid.Val) == ^uint32(0) {
+ // pid -1 causes some debugging splat on console.
+ pid.Val = 0
+ }
+ }
}