aboutsummaryrefslogtreecommitdiffstats
path: root/sys/decl.go
diff options
context:
space:
mode:
authorAndrey Konovalov <andreyknvl@google.com>2016-09-21 16:52:55 +0200
committerAndrey Konovalov <andreyknvl@google.com>2016-10-04 18:49:57 +0200
commitc99cbdbe58f7817a2ee6064e72db25fc1d067b41 (patch)
treeaa1bc1092c27601f9531d87b2b2a25e5d1063d7b /sys/decl.go
parente73ddfcb3ac418fc690b982f70da15b898096fa5 (diff)
Emit BufferBlob for array[int8]
Diffstat (limited to 'sys/decl.go')
-rw-r--r--sys/decl.go12
1 files changed, 10 insertions, 2 deletions
diff --git a/sys/decl.go b/sys/decl.go
index f792f541c..275bbb380 100644
--- a/sys/decl.go
+++ b/sys/decl.go
@@ -100,7 +100,8 @@ func (t FileoffType) Align() uintptr {
type BufferKind int
const (
- BufferBlob BufferKind = iota
+ BufferBlobRand BufferKind = iota
+ BufferBlobRange
BufferString
BufferSockaddr
BufferFilesystem
@@ -110,7 +111,9 @@ const (
type BufferType struct {
TypeCommon
- Kind BufferKind
+ Kind BufferKind
+ RangeBegin uintptr // for BufferBlobRange kind
+ RangeEnd uintptr // for BufferBlobRange kind
}
func (t BufferType) Size() uintptr {
@@ -119,6 +122,11 @@ func (t BufferType) Size() uintptr {
return 14
case BufferAlgName:
return 64
+ case BufferBlobRange:
+ if t.RangeBegin == t.RangeEnd {
+ return t.RangeBegin
+ }
+ fallthrough
default:
panic(fmt.Sprintf("buffer size is not statically known: %v", t.Name()))
}