diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2017-01-05 14:16:07 +0100 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2017-01-09 20:20:48 +0100 |
| commit | 94b38efc1d80ae2854d29af44c6d5918a2cb40cd (patch) | |
| tree | 401943d29621eeb485b016e74e3062178091e12a /sysgen | |
| parent | b5aa8b45061e01c79cf78fe3a634abf5dc6d3f46 (diff) | |
sys: allow to specify number of pages for vma type
Allows to write vma[4] or vma[5-10] to specify desired number of pages.
Diffstat (limited to 'sysgen')
| -rw-r--r-- | sysgen/sysgen.go | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/sysgen/sysgen.go b/sysgen/sysgen.go index 92258150d..d16841577 100644 --- a/sysgen/sysgen.go +++ b/sysgen/sysgen.go @@ -461,10 +461,15 @@ func generateArg( fmt.Fprintf(out, "&BufferType{%v, Kind: BufferAlgName}", common()) case "vma": canBeArg = true - if want := 0; len(a) != want { - failf("wrong number of arguments for %v arg %v, want %v, got %v", typ, name, want, len(a)) + begin, end := "0", "0" + switch len(a) { + case 0: + case 1: + begin, end = parseRange(a[0], consts) + default: + failf("wrong number of arguments for %v arg %v, want 0 or 1, got %v", typ, name, len(a)) } - fmt.Fprintf(out, "&VmaType{%v}", common()) + fmt.Fprintf(out, "&VmaType{%v, RangeBegin: %v, RangeEnd: %v}", common(), begin, end) case "len", "bytesize", "bytesize2", "bytesize4", "bytesize8": canBeArg = true size := uint64(ptrSize) |
