Skip to content

Commit

Permalink
Fix driver
Browse files Browse the repository at this point in the history
  • Loading branch information
paulcacheux committed Nov 26, 2022
1 parent cf98757 commit 3d24987
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 6 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/compliance.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,4 +37,4 @@ jobs:
- name: Run checker
run: |
./conformance/build/bin/bpf_conformance_runner --test_file_directory ./conformance/tests --plugin_path ./test_driver --debug 1
./conformance/build/bin/bpf_conformance_runner --test_file_directory ./conformance/tests --plugin_path ./test_driver
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
ebpf/bin/*
driver
13 changes: 8 additions & 5 deletions conformance_tests/driver.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ import (
"encoding/hex"
"flag"
"fmt"
"io"
"os"
"strings"

"github.com/cilium/ebpf"
Expand All @@ -16,14 +18,14 @@ import (
const TEST_RUN_SECTION = "test_run"

func main() {
program := flag.String("program", "", "input program in hexa form")
flag.Parse()
program, err := io.ReadAll(os.Stdin)
if err != nil {
panic(err)
}

memory := flag.Arg(0)

fmt.Println(*program, memory)

programByteCode, err := decode_hexa(*program)
programByteCode, err := decode_hexa(string(program))
if err != nil {
panic(err)
}
Expand All @@ -42,6 +44,7 @@ func main() {
Programs: map[string]*ebpf.ProgramSpec{
TEST_RUN_SECTION: {
Instructions: instructions,
SectionName: TEST_RUN_SECTION,
},
},
}
Expand Down
6 changes: 6 additions & 0 deletions pkg/baloum/vm.go
Original file line number Diff line number Diff line change
Expand Up @@ -385,12 +385,18 @@ func (vm *VM) RunProgram(ctx Context, section string) (int, error) {
vm.regs[inst.Dst] = vm.regs[inst.Src]
case asm.Mov.Op(asm.ImmSource):
vm.regs[inst.Dst] = uint64(inst.Constant)
case asm.Mov.Op32(asm.ImmSource):
vm.regs[inst.Dst] = uint64(inst.Constant)

//
case asm.Add.Op(asm.ImmSource):
vm.regs[inst.Dst] += uint64(inst.Constant)
case asm.Add.Op(asm.RegSource):
vm.regs[inst.Dst] += vm.regs[inst.Src]
case asm.Add.Op32(asm.ImmSource):
vm.regs[inst.Dst] = uint64(uint32(vm.regs[inst.Dst]) + uint32(inst.Constant))
case asm.Add.Op32(asm.RegSource):
vm.regs[inst.Dst] = uint64(uint32(vm.regs[inst.Dst]) + uint32(vm.regs[inst.Src]))
case asm.And.Op(asm.ImmSource):
vm.regs[inst.Dst] &= uint64(inst.Constant)
case asm.And.Op(asm.RegSource):
Expand Down

0 comments on commit 3d24987

Please sign in to comment.