Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 340f895d authored by Devin Moore's avatar Devin Moore
Browse files

Add template parameters to MQDescriptor

First parameter is used to determine the type of the payload, and the
second parameter is used to determine the type of queue.
Added two types to be use in that second parameter.
SynchronizedReadWrite and UnsynchronizedWrite.

Test: atest fmq_unit_tests fmq_test
Bug: 142326204

Change-Id: If736389ebecd02b87879850714606523e5145579
parent 0a10d691
Loading
Loading
Loading
Loading
+22 −0
Original line number Diff line number Diff line
///////////////////////////////////////////////////////////////////////////////
// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
///////////////////////////////////////////////////////////////////////////////

// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
// edit this file. It looks like you are doing that because you have modified
// an AIDL interface in a backward-incompatible way, e.g., deleting a function
// from an interface or a field from a parcelable and it broke the build. That
// breakage is intended.
//
// You must not make a backward incompatible changes to the AIDL files built
// with the aidl_interface module type with versions property set. The module
// type is used to build AIDL files in a way that they can be used across
// independently updatable components of the system. If a device is shipped
// with such a backward incompatible change, it has a high risk of breaking
// later when a module using the interface is updated, e.g., Mainline modules.

package android.hardware.common;
@VintfStability
enum SynchronizedReadWrite {
  EMPTY = 0,
}
+22 −0
Original line number Diff line number Diff line
///////////////////////////////////////////////////////////////////////////////
// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
///////////////////////////////////////////////////////////////////////////////

// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
// edit this file. It looks like you are doing that because you have modified
// an AIDL interface in a backward-incompatible way, e.g., deleting a function
// from an interface or a field from a parcelable and it broke the build. That
// breakage is intended.
//
// You must not make a backward incompatible changes to the AIDL files built
// with the aidl_interface module type with versions property set. The module
// type is used to build AIDL files in a way that they can be used across
// independently updatable components of the system. If a device is shipped
// with such a backward incompatible change, it has a high risk of breaking
// later when a module using the interface is updated, e.g., Mainline modules.

package android.hardware.common;
@VintfStability
enum UnsynchronizedWrite {
  EMPTY = 0,
}
+4 −1
Original line number Diff line number Diff line
@@ -22,9 +22,12 @@ import android.hardware.common.GrantorDescriptor;
 * For use with libfmq. This is created from an instance of AidlMessageQueue,
 * and is used to pass information required to create another instance of that
 * queue for fast communication.
 * T - is used to specify the type of the payload
 * Flavor - is used to specify the type of the queue using
 * android.hardware.common.SynchronizedReadWrite or UnsynchronizedWrite
 */
@VintfStability
parcelable MQDescriptor {
parcelable MQDescriptor<T, Flavor> {
    /*
     * Describes each of the grantors for the message queue. They are used to
     * get the readptr, writeptr, dataptr, and the optional EventFlag word
+27 −0
Original line number Diff line number Diff line
/*
 * Copyright 2020 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package android.hardware.common;

/*
 * For use with android.hardware.common.MQDescriptor to specify which type of
 * queue to use. SynchronizedReadWrite is single reader, single writer, with no
 * overflow. All messages written need to be read.
 */
@VintfStability
enum SynchronizedReadWrite {
    EMPTY,
}
+27 −0
Original line number Diff line number Diff line
/*
 * Copyright 2020 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package android.hardware.common;

/*
 * For use with android.hardware.common.MQDescriptor to specify which type of
 * queue to use. UnsynchronizedWrite is single writer, multiple reader, with
 * overflow. If messages are not read fast enough, they can be overwritten.
 */
@VintfStability
enum UnsynchronizedWrite {
    EMPTY,
}