1syntax = "proto3";
2
3package bluetooth.hci;
4
5import "google/protobuf/empty.proto";
6
7service HciLayerFacade {
8  rpc EnqueueCommandWithComplete(CommandMsg) returns (google.protobuf.Empty) {}
9  rpc EnqueueCommandWithStatus(CommandMsg) returns (google.protobuf.Empty) {}
10  rpc RegisterEventHandler(EventCodeMsg) returns (google.protobuf.Empty) {}
11  rpc RegisterLeEventHandler(LeSubeventCodeMsg) returns (google.protobuf.Empty) {}
12  rpc SendAclData(AclMsg) returns (google.protobuf.Empty) {}
13  rpc FetchEvents(google.protobuf.Empty) returns (stream EventMsg) {}
14  rpc FetchLeSubevents(google.protobuf.Empty) returns (stream LeSubeventMsg) {}
15  rpc FetchAclPackets(google.protobuf.Empty) returns (stream AclMsg) {}
16}
17
18message CommandMsg {
19  bytes command = 1;
20}
21
22message EventMsg {
23  bytes event = 1;
24}
25
26message LeSubeventMsg {
27  bytes event = 1;
28}
29
30message AclMsg {
31  uint32 handle = 1;
32  uint32 packet_boundary_flag = 2;
33  uint32 broadcast_flag = 3;
34  bytes data = 4;
35}
36
37message EventCodeMsg {
38  uint32 code = 1;
39}
40
41message LeSubeventCodeMsg {
42  uint32 code = 1;
43}
44