diff options
| author | Paul Buetow <paul@buetow.org> | 2024-02-16 21:32:49 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2024-02-16 21:32:49 +0200 |
| commit | fd2875f21834124da576e7284f314f1d087cac31 (patch) | |
| tree | fda4e40dee16ac8824d6856b971d65ef939fc506 | |
| parent | 12d433012f214c300329d5e74fcf87e7a8f1f1e7 (diff) | |
readRaw helper
| -rw-r--r-- | internal/ioriotng.go | 27 |
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": |
