diff options
| -rw-r--r-- | internal/ioriotng.go | 9 | ||||
| -rw-r--r-- | internal/types/types.go | 23 |
2 files changed, 25 insertions, 7 deletions
diff --git a/internal/ioriotng.go b/internal/ioriotng.go index d2535d3..a95892c 100644 --- a/internal/ioriotng.go +++ b/internal/ioriotng.go @@ -4,7 +4,6 @@ import "C" import ( "bytes" - "context" "encoding/binary" "fmt" "log" @@ -57,7 +56,9 @@ func Run(flags flags.Flags) { rb.Poll(300) for raw := range ch { - switch raw[0] { + switch types.OpId(raw[0]) { + // TODO: Actually, need one ring buffer event per enter/exit ... otherwise may be difficult to capture + // what belongs to what in event based / multiplexed applications. case types.OPENAT_ENTER_OP_ID: var ev types.OpenatEnterEvent if err := binary.Read(bytes.NewReader(raw), binary.LittleEndian, &ev); err != nil { @@ -71,13 +72,13 @@ func Run(flags flags.Flags) { if err := binary.Read(bytes.NewReader(raw), binary.LittleEndian, &ev); err != nil { log.Fatal(err) } - log.Println(ev) + fmt.Println(ev) case types.CLOSE_EXIT_OP_ID: var ev types.NullEvent if err := binary.Read(bytes.NewReader(raw), binary.LittleEndian, &ev); err != nil { log.Fatal(err) } - log.Println(ev) + fmt.Println(ev) default: panic(fmt.Sprintf("UNKNOWN Ringbuf data received len:%d raw:%v", len(raw), raw)) } diff --git a/internal/types/types.go b/internal/types/types.go index 336ce5a..99d760e 100644 --- a/internal/types/types.go +++ b/internal/types/types.go @@ -5,26 +5,43 @@ import ( "fmt" ) +type OpId uint32 + const ( MAX_FILENAME_LENGTH = 256 MAX_PROGNAME_LENGTH = 16 ) const ( - OPENAT_ENTER_OP_ID = iota + 1 + OPENAT_ENTER_OP_ID OpId = iota + 1 OPENAT_EXIT_OP_ID CLOSE_ENTER_OP_ID CLOSE_EXIT_OP_ID ) +func (id OpId) String() string { + switch id { + case OPENAT_ENTER_OP_ID: + return "openat:enter" + case OPENAT_EXIT_OP_ID: + return "openat:exit" + case CLOSE_ENTER_OP_ID: + return "close:enter" + case CLOSE_EXIT_OP_ID: + return "close:exit" + default: + panic(fmt.Sprintf("Unknown OpId %d", uint32(id))) + } +} + type NullEvent struct { - OpID uint32 + OpId OpId Tid uint32 Time uint64 } func (ev NullEvent) String() string { - return fmt.Sprintf("Tid:%v Time:%v", ev.Tid, ev.Time) + return fmt.Sprintf("%s Tid:%v Time:%v", ev.OpId, ev.Tid, ev.Time) } type FdEvent struct { |
