1syntax = "proto3"; 2 3package openmp.libomptarget.remote; 4option cc_enable_arenas = true; 5 6service RemoteOffload { 7 rpc Shutdown(Null) returns (I32) {} 8 9 rpc RegisterLib(TargetBinaryDescription) returns (I32) {} 10 rpc UnregisterLib(Pointer) returns (I32) {} 11 12 rpc IsValidBinary(TargetDeviceImagePtr) returns (I32) {} 13 rpc GetNumberOfDevices(Null) returns (I32) {} 14 15 rpc InitDevice(I32) returns (I32) {} 16 rpc InitRequires(I64) returns (I32) {} 17 18 rpc LoadBinary(Binary) returns (TargetTable) {} 19 20 rpc DataAlloc(AllocData) returns (Pointer) {} 21 rpc DataDelete(DeleteData) returns (I32) {} 22 23 rpc DataSubmit(stream SubmitData) returns (I32) {} 24 rpc DataRetrieve(RetrieveData) returns (stream Data) {} 25 26 rpc IsDataExchangeable(DevicePair) returns (I32) {} 27 rpc DataExchange(ExchangeData) returns (I32) {} 28 29 rpc RunTargetRegion(TargetRegion) returns (I32) {} 30 rpc RunTargetTeamRegion(TargetTeamRegion) returns (I32) {} 31} 32 33message Null {} 34 35message Pointer { uint64 number = 1; } 36 37message I32 { int32 number = 1; } 38 39message I64 { int64 number = 1; } 40 41message DevicePair { 42 int32 src_dev_id = 1; 43 int32 dst_dev_id = 2; 44} 45 46message Binary { 47 uint64 image_ptr = 1; 48 int32 device_id = 2; 49} 50 51message TargetOffloadEntry { 52 bytes data = 1; 53 string name = 2; 54 int32 flags = 3; 55 int32 reserved = 4; 56} 57 58message DeviceOffloadEntry { 59 string name = 1; 60 uint64 addr = 2; 61 int32 flags = 3; 62 int32 reserved = 4; 63 int32 size = 5; 64} 65 66message TargetTable { 67 repeated DeviceOffloadEntry entries = 1; 68 repeated uint64 entry_ptrs = 2; 69} 70 71message TargetDeviceImagePtr { 72 uint64 image_ptr = 1; 73 repeated uint64 entry_ptrs = 2; 74} 75 76message TargetDeviceImage { 77 bytes binary = 1; 78 repeated TargetOffloadEntry entries = 2; 79} 80 81message ImagePtrs { 82 uint64 img_ptr = 1; 83 repeated uint64 entry_ptrs = 2; 84} 85 86message TargetBinaryDescription { 87 repeated ImagePtrs image_ptrs = 1; 88 repeated TargetOffloadEntry entries = 2; 89 repeated TargetDeviceImage images = 3; 90 repeated uint64 entry_ptrs = 4; 91 uint64 bin_ptr = 5; 92} 93 94message AllocData { 95 uint64 size = 1; 96 uint64 hst_ptr = 2; 97 int32 device_id = 3; 98} 99 100message SubmitData { 101 bytes data = 1; 102 uint64 hst_ptr = 2; 103 uint64 tgt_ptr = 3; 104 uint64 start = 5; 105 uint64 size = 6; 106 int32 device_id = 7; 107} 108 109message RetrieveData { 110 uint64 hst_ptr = 1; 111 uint64 tgt_ptr = 2; 112 uint64 size = 3; 113 int32 device_id = 5; 114} 115 116message Data { 117 bytes data = 1; 118 uint64 start = 2; 119 uint64 size = 3; 120 int32 ret = 4; 121} 122 123message ExchangeData { 124 uint64 src_dev_id = 1; 125 uint64 src_ptr = 2; 126 uint64 dst_dev_id = 3; 127 uint64 dst_ptr = 4; 128 uint64 size = 6; 129} 130 131message DeleteData { 132 uint64 tgt_ptr = 1; 133 int32 device_id = 2; 134} 135 136message TargetRegion { 137 repeated uint64 tgt_args = 1; 138 repeated int64 tgt_offsets = 2; 139 uint64 tgt_entry_ptr = 3; 140 int32 device_id = 4; 141 int32 arg_num = 5; 142} 143 144message TargetTeamRegion { 145 repeated uint64 tgt_args = 1; 146 repeated int64 tgt_offsets = 2; 147 uint64 tgt_entry_ptr = 3; 148 uint64 loop_tripcount = 4; 149 int32 device_id = 5; 150 int32 arg_num = 6; 151 int32 team_num = 7; 152 int32 thread_limit = 8; 153} 154