From ec42220e7773fba548e379606fe445cb30f4c424 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Wed, 29 Apr 2020 17:57:32 +0200 Subject: Makefile: generate descriptions on-the-fly Checking in the generated descriptions files makes few things simpler, but causes pain for pull requests: (1) PRs that touch descriptions _always_ conflict, (2) PRs are large and harder to review, (3) people sometimes forget to add auto-generated files. The proposed way does not require us to hardcode lots of dependencies in the Makefile (which is nice) and seem to work. Let's see how it works. The main contributor-visible consequence is that the auto-generated files do not need to be checked-in now. Credit for figuring the Makefile magic goes to @melver. Fixes #1291 --- sys/trusty/gen/arm.go | 226 ------------------------------------------------ sys/trusty/gen/empty.go | 3 - 2 files changed, 229 deletions(-) delete mode 100644 sys/trusty/gen/arm.go delete mode 100644 sys/trusty/gen/empty.go (limited to 'sys/trusty') diff --git a/sys/trusty/gen/arm.go b/sys/trusty/gen/arm.go deleted file mode 100644 index b504e7c38..000000000 --- a/sys/trusty/gen/arm.go +++ /dev/null @@ -1,226 +0,0 @@ -// AUTOGENERATED FILE -// +build !codeanalysis -// +build !syz_target syz_target,syz_os_trusty,syz_arch_arm - -package gen - -import . "github.com/google/syzkaller/prog" -import . "github.com/google/syzkaller/sys/trusty" - -func init() { - RegisterTarget(&Target{OS: "trusty", Arch: "arm", Revision: revision_arm, PtrSize: 4, PageSize: 4096, NumPages: 4096, DataOffset: 536870912, Syscalls: syscalls_arm, Resources: resources_arm, Structs: structDescs_arm, Types: types_arm, Consts: consts_arm}, InitTarget) -} - -var resources_arm = []*ResourceDesc(nil) - -var structDescs_arm = []*KeyedStruct{ - {StructKey{Name: "dma_pmem"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "dma_pmem", TypeSize: 4}, Fields: []Type{ - Ref(18), - }}}, - {StructKey{Name: "ipc_msg"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "ipc_msg", TypeSize: 4}, Fields: []Type{ - Ref(18), - }}}, - {StructKey{"ipc_msg", 1}, &StructDesc{TypeCommon: TypeCommon{TypeName: "ipc_msg", TypeSize: 4, ArgDir: 1}, Fields: []Type{ - Ref(17), - }}}, - {StructKey{Name: "ipc_msg_info"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "ipc_msg_info", TypeSize: 4}, Fields: []Type{ - Ref(18), - }}}, - {StructKey{Name: "uevent"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "uevent", TypeSize: 4}, Fields: []Type{ - Ref(18), - }}}, - {StructKey{"uevent", 1}, &StructDesc{TypeCommon: TypeCommon{TypeName: "uevent", TypeSize: 4, ArgDir: 1}, Fields: []Type{ - Ref(17), - }}}, - {StructKey{"uuid", 1}, &StructDesc{TypeCommon: TypeCommon{TypeName: "uuid", TypeSize: 4, ArgDir: 1}, Fields: []Type{ - Ref(17), - }}}, -} - -var syscalls_arm = []*Syscall{ - {NR: 18, Name: "accept", CallName: "accept", Args: []Type{ - Ref(9), - Ref(34), - }}, - {NR: 2, Name: "brk", CallName: "brk", Args: []Type{ - Ref(3), - }}, - {NR: 19, Name: "close", CallName: "close", Args: []Type{ - Ref(9), - }}, - {NR: 17, Name: "connect", CallName: "connect", Args: []Type{ - Ref(33), - Ref(7), - }}, - {NR: 3, Name: "exit_etc", CallName: "exit_etc", Args: []Type{ - Ref(15), - Ref(7), - }}, - {NR: 11, Name: "finish_dma", CallName: "finish_dma", Args: []Type{ - Ref(37), - Ref(23), - Ref(7), - }}, - {NR: 32, Name: "get_msg", CallName: "get_msg", Args: []Type{ - Ref(8), - Ref(32), - }}, - {NR: 7, Name: "gettime", CallName: "gettime", Args: []Type{ - Ref(4), - Ref(7), - Ref(36), - }}, - {NR: 21, Name: "handle_set_create", CallName: "handle_set_create"}, - {NR: 22, Name: "handle_set_ctrl", CallName: "handle_set_ctrl", Args: []Type{ - Ref(8), - Ref(5), - Ref(27), - }}, - {NR: 5, Name: "ioctl", CallName: "ioctl", Args: []Type{ - Ref(6), - Ref(14), - Ref(24), - }}, - {NR: 8, Name: "mmap", CallName: "mmap", Args: []Type{ - Ref(45), - Ref(23), - Ref(7), - Ref(8), - }}, - {NR: 9, Name: "munmap", CallName: "munmap", Args: []Type{ - Ref(45), - Ref(23), - }}, - {NR: 6, Name: "nanosleep", CallName: "nanosleep", Args: []Type{ - Ref(4), - Ref(7), - Ref(19), - }}, - {NR: 16, Name: "port_create", CallName: "port_create", Args: []Type{ - Ref(33), - Ref(11), - Ref(13), - Ref(7), - }}, - {NR: 10, Name: "prepare_dma", CallName: "prepare_dma", Args: []Type{ - Ref(37), - Ref(23), - Ref(7), - Ref(35), - }}, - {NR: 34, Name: "put_msg", CallName: "put_msg", Args: []Type{ - Ref(8), - Ref(10), - }}, - {NR: 4, Name: "read", CallName: "read", Args: []Type{ - Ref(6), - Ref(28), - Ref(22), - }}, - {NR: 33, Name: "read_msg", CallName: "read_msg", Args: []Type{ - Ref(8), - Ref(10), - Ref(12), - Ref(30), - }}, - {NR: 35, Name: "send_msg", CallName: "send_msg", Args: []Type{ - Ref(8), - Ref(31), - }}, - {NR: 20, Name: "set_cookie", CallName: "set_cookie", Args: []Type{ - Ref(8), - Ref(21), - }}, - {NR: 24, Name: "wait", CallName: "wait", Args: []Type{ - Ref(9), - Ref(26), - Ref(16), - }}, - {NR: 25, Name: "wait_any", CallName: "wait_any", Args: []Type{ - Ref(25), - Ref(16), - }}, - {NR: 1, Name: "write", CallName: "write", Args: []Type{ - Ref(6), - Ref(29), - Ref(22), - }}, -} - -var types_arm = []Type{ - &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1, IsVarlen: true}}, - &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}, - &BufferType{TypeCommon: TypeCommon{TypeName: "string", IsVarlen: true}, Kind: 2}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "brk", TypeSize: 4}}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "clock_id", TypeSize: 4}}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "cmd", TypeSize: 4}}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "fd", TypeSize: 4}}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "flags", TypeSize: 4}}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "handle", TypeSize: 4}}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "handle_id", TypeSize: 4}}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "msg_id", TypeSize: 4}}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "num_recv_bufs", TypeSize: 4}}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "offset", TypeSize: 4}}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "recv_buf_size", TypeSize: 4}}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "req", TypeSize: 4}}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "status", TypeSize: 4}}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "timeout_msecs", TypeSize: 4}}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "todo", TypeSize: 4, ArgDir: 1}}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "todo", TypeSize: 4}}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "sleep_time", TypeSize: 8}}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", TypeSize: 8, ArgDir: 1}}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "cookie", TypeSize: 4}}}, - &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "size", TypeSize: 4}}, Path: []string{"msg"}}, - &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "size", TypeSize: 4}}, Path: []string{"uaddr"}}, - &PtrType{TypeCommon{TypeName: "ptr", FldName: "buf", TypeSize: 4}, Ref(1)}, - &PtrType{TypeCommon{TypeName: "ptr", FldName: "event", TypeSize: 4}, Ref(39)}, - &PtrType{TypeCommon{TypeName: "ptr", FldName: "event", TypeSize: 4}, Ref(44)}, - &PtrType{TypeCommon{TypeName: "ptr", FldName: "evt", TypeSize: 4}, Ref(44)}, - &PtrType{TypeCommon{TypeName: "ptr", FldName: "msg", TypeSize: 4}, Ref(0)}, - &PtrType{TypeCommon{TypeName: "ptr", FldName: "msg", TypeSize: 4}, Ref(1)}, - &PtrType{TypeCommon{TypeName: "ptr", FldName: "msg", TypeSize: 4}, Ref(38)}, - &PtrType{TypeCommon{TypeName: "ptr", FldName: "msg", TypeSize: 4}, Ref(42)}, - &PtrType{TypeCommon{TypeName: "ptr", FldName: "msg_info", TypeSize: 4}, Ref(43)}, - &PtrType{TypeCommon{TypeName: "ptr", FldName: "path", TypeSize: 4}, Ref(2)}, - &PtrType{TypeCommon{TypeName: "ptr", FldName: "peer_uuid", TypeSize: 4}, Ref(40)}, - &PtrType{TypeCommon{TypeName: "ptr", FldName: "pmem", TypeSize: 4}, Ref(41)}, - &PtrType{TypeCommon{TypeName: "ptr", FldName: "time", TypeSize: 4}, Ref(20)}, - &PtrType{TypeCommon{TypeName: "ptr", FldName: "uaddr", TypeSize: 4}, Ref(0)}, - &StructType{Key: StructKey{"ipc_msg", 1}}, - &StructType{Key: StructKey{"uevent", 1}}, - &StructType{Key: StructKey{"uuid", 1}}, - &StructType{Key: StructKey{Name: "dma_pmem"}}, - &StructType{Key: StructKey{Name: "ipc_msg"}}, - &StructType{Key: StructKey{Name: "ipc_msg_info"}}, - &StructType{Key: StructKey{Name: "uevent"}}, - &VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "uaddr", TypeSize: 4}}, -} - -var consts_arm = []ConstValue{ - {"__NR_accept", 18}, - {"__NR_brk", 2}, - {"__NR_close", 19}, - {"__NR_connect", 17}, - {"__NR_exit_etc", 3}, - {"__NR_finish_dma", 11}, - {"__NR_get_msg", 32}, - {"__NR_gettime", 7}, - {"__NR_handle_set_create", 21}, - {"__NR_handle_set_ctrl", 22}, - {"__NR_ioctl", 5}, - {"__NR_mmap", 8}, - {"__NR_munmap", 9}, - {"__NR_nanosleep", 6}, - {"__NR_port_create", 16}, - {"__NR_prepare_dma", 10}, - {"__NR_put_msg", 34}, - {"__NR_read", 4}, - {"__NR_read_msg", 33}, - {"__NR_send_msg", 35}, - {"__NR_set_cookie", 20}, - {"__NR_wait", 24}, - {"__NR_wait_any", 25}, - {"__NR_write", 1}, -} - -const revision_arm = "4e125f165259175fe2cbca4e0b1482229347c4f8" diff --git a/sys/trusty/gen/empty.go b/sys/trusty/gen/empty.go deleted file mode 100644 index 5baff07bf..000000000 --- a/sys/trusty/gen/empty.go +++ /dev/null @@ -1,3 +0,0 @@ -// AUTOGENERATED FILE -// This file is needed if OS is completely excluded by build tags. -package gen -- cgit mrf-deployment