summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2024-02-16 21:32:49 +0200
committerPaul Buetow <paul@buetow.org>2024-02-16 21:32:49 +0200
commitfd2875f21834124da576e7284f314f1d087cac31 (patch)
treefda4e40dee16ac8824d6856b971d65ef939fc506
parent12d433012f214c300329d5e74fcf87e7a8f1f1e7 (diff)
readRaw helper
-rw-r--r--internal/ioriotng.go27
1 files changed, 11 insertions, 16 deletions
diff --git a/internal/ioriotng.go b/internal/ioriotng.go
index 1536806..047cf2f 100644
--- a/internal/ioriotng.go
+++ b/internal/ioriotng.go
@@ -62,16 +62,10 @@ func Run(flags flags.Flags) {
for raw := range ch {
switch types.OpId(raw[0]) {
case types.OPENAT_ENTER_OP_ID:
- ev := types.OpenEnterEventPool.Get().(*types.OpenatEnterEvent)
- if err := binary.Read(bytes.NewReader(raw), binary.LittleEndian, ev); err != nil {
- panic(err)
- }
+ ev := readRaw(raw, types.OpenEnterEventPool.Get().(*types.OpenatEnterEvent))
enterOpen[ev.Tid] = ev
case types.OPENAT_EXIT_OP_ID:
- ev := types.FdEventPool.Get().(*types.FdEvent)
- if err := binary.Read(bytes.NewReader(raw), binary.LittleEndian, ev); err != nil {
- panic(err)
- }
+ ev := readRaw(raw, types.FdEventPool.Get().(*types.FdEvent))
enterEv, ok := enterOpen[ev.Tid]
if !ok {
fmt.Println("Dropping", ev)
@@ -83,16 +77,10 @@ func Run(flags flags.Flags) {
types.FdEventPool.Put(ev)
types.OpenEnterEventPool.Put(enterEv)
case types.CLOSE_ENTER_OP_ID:
- ev := types.FdEventPool.Get().(*types.FdEvent)
- if err := binary.Read(bytes.NewReader(raw), binary.LittleEndian, ev); err != nil {
- panic(err)
- }
+ ev := readRaw(raw, types.FdEventPool.Get().(*types.FdEvent))
enterFd[ev.Tid] = ev
case types.CLOSE_EXIT_OP_ID:
- ev := types.NullEventPool.Get().(*types.NullEvent)
- if err := binary.Read(bytes.NewReader(raw), binary.LittleEndian, ev); err != nil {
- panic(err)
- }
+ ev := readRaw(raw, types.NullEventPool.Get().(*types.NullEvent))
enterEv, ok := enterFd[ev.Tid]
if !ok {
fmt.Println("Dropping", ev)
@@ -111,6 +99,13 @@ func Run(flags flags.Flags) {
fmt.Println("Good bye")
}
+func readRaw[T any](raw []byte, ev *T) *T {
+ if err := binary.Read(bytes.NewReader(raw), binary.LittleEndian, ev); err != nil {
+ panic(err)
+ }
+ return ev
+}
+
func ksymArch() string {
switch runtime.GOARCH {
case "amd64":