|
|
@@ -215,10 +215,9 @@ public:
|
|
|
explicit IGBPConnectRequestParcel(std::vector<u8> buffer) : Parcel(std::move(buffer)) {
|
|
|
Deserialize();
|
|
|
}
|
|
|
- ~IGBPConnectRequestParcel() override = default;
|
|
|
|
|
|
void DeserializeData() override {
|
|
|
- std::u16string token = ReadInterfaceToken();
|
|
|
+ [[maybe_unused]] const std::u16string token = ReadInterfaceToken();
|
|
|
data = Read<Data>();
|
|
|
}
|
|
|
|
|
|
@@ -279,10 +278,9 @@ public:
|
|
|
: Parcel(std::move(buffer)) {
|
|
|
Deserialize();
|
|
|
}
|
|
|
- ~IGBPSetPreallocatedBufferRequestParcel() override = default;
|
|
|
|
|
|
void DeserializeData() override {
|
|
|
- std::u16string token = ReadInterfaceToken();
|
|
|
+ [[maybe_unused]] const std::u16string token = ReadInterfaceToken();
|
|
|
data = Read<Data>();
|
|
|
buffer = Read<NVFlinger::IGBPBuffer>();
|
|
|
}
|
|
|
@@ -306,15 +304,40 @@ protected:
|
|
|
}
|
|
|
};
|
|
|
|
|
|
+class IGBPCancelBufferRequestParcel : public Parcel {
|
|
|
+public:
|
|
|
+ explicit IGBPCancelBufferRequestParcel(std::vector<u8> buffer) : Parcel(std::move(buffer)) {
|
|
|
+ Deserialize();
|
|
|
+ }
|
|
|
+
|
|
|
+ void DeserializeData() override {
|
|
|
+ [[maybe_unused]] const std::u16string token = ReadInterfaceToken();
|
|
|
+ data = Read<Data>();
|
|
|
+ }
|
|
|
+
|
|
|
+ struct Data {
|
|
|
+ u32_le slot;
|
|
|
+ Service::Nvidia::MultiFence multi_fence;
|
|
|
+ };
|
|
|
+
|
|
|
+ Data data;
|
|
|
+};
|
|
|
+
|
|
|
+class IGBPCancelBufferResponseParcel : public Parcel {
|
|
|
+protected:
|
|
|
+ void SerializeData() override {
|
|
|
+ Write<u32>(0); // Success
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
class IGBPDequeueBufferRequestParcel : public Parcel {
|
|
|
public:
|
|
|
explicit IGBPDequeueBufferRequestParcel(std::vector<u8> buffer) : Parcel(std::move(buffer)) {
|
|
|
Deserialize();
|
|
|
}
|
|
|
- ~IGBPDequeueBufferRequestParcel() override = default;
|
|
|
|
|
|
void DeserializeData() override {
|
|
|
- std::u16string token = ReadInterfaceToken();
|
|
|
+ [[maybe_unused]] const std::u16string token = ReadInterfaceToken();
|
|
|
data = Read<Data>();
|
|
|
}
|
|
|
|
|
|
@@ -333,7 +356,6 @@ class IGBPDequeueBufferResponseParcel : public Parcel {
|
|
|
public:
|
|
|
explicit IGBPDequeueBufferResponseParcel(u32 slot, Service::Nvidia::MultiFence& multi_fence)
|
|
|
: slot(slot), multi_fence(multi_fence) {}
|
|
|
- ~IGBPDequeueBufferResponseParcel() override = default;
|
|
|
|
|
|
protected:
|
|
|
void SerializeData() override {
|
|
|
@@ -352,10 +374,9 @@ public:
|
|
|
explicit IGBPRequestBufferRequestParcel(std::vector<u8> buffer) : Parcel(std::move(buffer)) {
|
|
|
Deserialize();
|
|
|
}
|
|
|
- ~IGBPRequestBufferRequestParcel() override = default;
|
|
|
|
|
|
void DeserializeData() override {
|
|
|
- std::u16string token = ReadInterfaceToken();
|
|
|
+ [[maybe_unused]] const std::u16string token = ReadInterfaceToken();
|
|
|
slot = Read<u32_le>();
|
|
|
}
|
|
|
|
|
|
@@ -384,10 +405,9 @@ public:
|
|
|
explicit IGBPQueueBufferRequestParcel(std::vector<u8> buffer) : Parcel(std::move(buffer)) {
|
|
|
Deserialize();
|
|
|
}
|
|
|
- ~IGBPQueueBufferRequestParcel() override = default;
|
|
|
|
|
|
void DeserializeData() override {
|
|
|
- std::u16string token = ReadInterfaceToken();
|
|
|
+ [[maybe_unused]] const std::u16string token = ReadInterfaceToken();
|
|
|
data = Read<Data>();
|
|
|
}
|
|
|
|
|
|
@@ -447,10 +467,9 @@ public:
|
|
|
explicit IGBPQueryRequestParcel(std::vector<u8> buffer) : Parcel(std::move(buffer)) {
|
|
|
Deserialize();
|
|
|
}
|
|
|
- ~IGBPQueryRequestParcel() override = default;
|
|
|
|
|
|
void DeserializeData() override {
|
|
|
- std::u16string token = ReadInterfaceToken();
|
|
|
+ [[maybe_unused]] const std::u16string token = ReadInterfaceToken();
|
|
|
type = Read<u32_le>();
|
|
|
}
|
|
|
|
|
|
@@ -596,7 +615,12 @@ private:
|
|
|
break;
|
|
|
}
|
|
|
case TransactionId::CancelBuffer: {
|
|
|
- LOG_CRITICAL(Service_VI, "(STUBBED) called, transaction=CancelBuffer");
|
|
|
+ IGBPCancelBufferRequestParcel request{ctx.ReadBuffer()};
|
|
|
+
|
|
|
+ buffer_queue.CancelBuffer(request.data.slot, request.data.multi_fence);
|
|
|
+
|
|
|
+ IGBPCancelBufferResponseParcel response{};
|
|
|
+ ctx.WriteBuffer(response.Serialize());
|
|
|
break;
|
|
|
}
|
|
|
case TransactionId::Disconnect: {
|