summaryrefslogtreecommitdiff
path: root/internal/generated
diff options
context:
space:
mode:
Diffstat (limited to 'internal/generated')
-rw-r--r--internal/generated/Makefile11
-rw-r--r--internal/generated/nqc.raku3
-rw-r--r--internal/generated/types/types.go29
3 files changed, 39 insertions, 4 deletions
diff --git a/internal/generated/Makefile b/internal/generated/Makefile
index 1f5bf05..32911d2 100644
--- a/internal/generated/Makefile
+++ b/internal/generated/Makefile
@@ -4,9 +4,14 @@ generate: tracepoints types
.PHONY: tracepoints
tracepoints:
- cat ../c/tracepoints/*.c | raku tracepoints.raku | goimports | gofmt > tracepoints/tracepoints.go
+ cat ../c/tracepoints/*.c \
+ | raku tracepoints.raku \
+ | goimports | gofmt \
+ | tee tracepoints/tracepoints.go
.PHONY: types
types:
- cat ../c/types.h | raku nqc.raku | goimports | gofmt > types/types.go
-
+ cat ../c/types.h \
+ | raku nqc.raku \
+ | goimports | gofmt \
+ | tee types/types.go
diff --git a/internal/generated/nqc.raku b/internal/generated/nqc.raku
index 5e1ae1f..e5ea4e1 100644
--- a/internal/generated/nqc.raku
+++ b/internal/generated/nqc.raku
@@ -18,7 +18,7 @@ grammar NQC {
rule single-line-comment { '//' <-[\n]>+ }
rule multi-line-comment { '/*' .*? '*/' }
token arraysize { '[' <identifier> ']' }
- token type { 'char' | '__s32' | '__u32' | '__u64' }
+ token type { 'char' | '__s32' | '__u32' | '__s64' | '__u64' }
token identifier { <[a..z A..Z 0..9 _]>+ }
token number { \d+ }
}
@@ -129,6 +129,7 @@ class NQCToGoActions {
when 'char' { 'byte' }
when '__s32' { 'int32' }
when '__u32' { 'uint32' }
+ when '__s64' { 'int64' }
when '__u64' { 'uint64' }
}
}
diff --git a/internal/generated/types/types.go b/internal/generated/types/types.go
index d93a8c0..3d5dc48 100644
--- a/internal/generated/types/types.go
+++ b/internal/generated/types/types.go
@@ -107,6 +107,35 @@ func (f *FdEvent) Recycle() {
poolOfFdEvents.Put(f)
}
+type RwEvent struct {
+ OpId OpId
+ Pid uint32
+ Tid uint32
+ Time uint64
+ Size int64
+}
+
+func (r RwEvent) String() string {
+ return fmt.Sprintf("OpId:%v Pid:%v Tid:%v Time:%v Size:%v", r.OpId, r.Pid, r.Tid, r.Time, r.Size)
+}
+
+var poolOfRwEvents = sync.Pool{
+ New: func() interface{} { return &RwEvent{} },
+}
+
+func NewRwEvent(raw []byte) *RwEvent {
+ r := poolOfRwEvents.Get().(*RwEvent)
+ if err := binary.Read(bytes.NewReader(raw), binary.LittleEndian, r); err != nil {
+ fmt.Println(r, raw, len(raw), err)
+ panic(raw)
+ }
+ return r
+}
+
+func (r *RwEvent) Recycle() {
+ poolOfRwEvents.Put(r)
+}
+
type OpenEnterEvent struct {
OpId OpId
Filename [MAX_FILENAME_LENGTH]byte