Merge "Remove flinger_headers"
diff --git a/flinger_headers/Android.bp b/flinger_headers/Android.bp
deleted file mode 100644
index 200c68a..0000000
--- a/flinger_headers/Android.bp
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2017 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.
-
-cc_library_headers {
-    name: "wayland_flinger_headers",
-    vendor_available: true,
-    export_include_dirs: ["."],
-}
diff --git a/flinger_headers/ArcInputBridgeProtocol.h b/flinger_headers/ArcInputBridgeProtocol.h
deleted file mode 100644
index ffc71ec..0000000
--- a/flinger_headers/ArcInputBridgeProtocol.h
+++ /dev/null
@@ -1,343 +0,0 @@
-/*
- * Copyright 2017 The Chromium Authors.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- */
-#ifndef _RUNTIME_ARC_INPUT_BRIDGE_PROTOCOL_H
-#define _RUNTIME_ARC_INPUT_BRIDGE_PROTOCOL_H
-
-#include <cstdint>
-
-// Hack: major/minor may be defined by stdlib in error.
-// see https://sourceware.org/bugzilla/show_bug.cgi?id=19239
-#undef major
-#undef minor
-
-namespace arc {
-
-// Location of the named pipe for communicating events
-static const char* kArcInputBridgePipe = "/var/run/inputbridge/inputbridge";
-
-enum class InputEventType {
-    RESET = 0,
-
-    POINTER_ENTER,
-    POINTER_MOVE,
-    POINTER_MOVE_RELATIVE,
-    POINTER_LEAVE,
-    POINTER_BUTTON,
-    POINTER_SCROLL_X,
-    POINTER_SCROLL_Y,
-    POINTER_SCROLL_DISCRETE,
-    POINTER_SCROLL_STOP,
-    POINTER_FRAME,
-
-    TOUCH_DOWN,
-    TOUCH_MOVE,
-    TOUCH_UP,
-    TOUCH_CANCEL,
-    TOUCH_SHAPE,
-    TOUCH_TOOL_TYPE,
-    TOUCH_FORCE,
-    TOUCH_TILT,
-    TOUCH_FRAME,
-
-    GESTURE_PINCH_BEGIN,
-    GESTURE_PINCH_UPDATE,
-    GESTURE_PINCH_END,
-
-    GESTURE_SWIPE_BEGIN,
-    GESTURE_SWIPE_UPDATE,
-    GESTURE_SWIPE_END,
-
-    KEY,
-    KEY_MODIFIERS,
-    KEY_RESET,
-
-    GAMEPAD_CONNECTED,
-    GAMEPAD_DISCONNECTED,
-    GAMEPAD_AXIS_INFO,
-    GAMEPAD_ACTIVATED,
-    GAMEPAD_AXIS,
-    GAMEPAD_BUTTON,
-    GAMEPAD_FRAME,
-
-    // event for reporting the state of a switch, such as a lid switch
-    SWITCH,
-
-    // event for reporting dimensions and properties of the display
-    DISPLAY_METRICS,
-
-    KEY_CHARACTER_MAP_NAME,
-} __attribute__((packed));
-
-struct PointerArgs {
-    float x;
-    float y;
-    bool discrete;
-} __attribute__((packed));
-
-struct KeyArgs {
-    // Linux KEY_ scan code as it was received from the kernel.
-    uint32_t scanCode;
-    // 0 = released, 1 = pressed.
-    uint32_t state;
-    // serial number of this key events in wayland.
-    uint32_t serial;
-} __attribute__((packed));
-
-struct MetaArgs {
-    // Android AMETA_ bitmask of meta state.
-    uint32_t metaState;
-};
-
-struct ButtonArgs {
-    // Android AMOTION_EVENT_BUTTON_ code
-    uint32_t code;
-    // 0 = released, 1 = pressed.
-    uint32_t state;
-};
-
-enum class TouchToolType { TOUCH = 0, PEN, ERASER } __attribute__((packed));
-
-struct TouchArgs {
-    int32_t id;
-    union {
-        float x;
-        float major;
-        float force;
-        TouchToolType tool;
-    };
-    union {
-        float y;
-        float minor;
-    };
-} __attribute__((packed));
-
-struct GestureArgs {
-    uint32_t fingers;
-    bool cancelled;
-} __attribute__((packed));
-
-struct GesturePinchArgs {
-    float scale;
-} __attribute__((packed));
-
-struct GestureSwipeArgs {
-    float dx;
-    float dy;
-} __attribute__((packed));
-
-struct GamepadDeviceInfoArgs {
-    int32_t id;
-    char name[256];
-    uint16_t bustype;
-    uint16_t vendorId;
-    uint16_t productId;
-    uint16_t version;
-} __attribute__((packed));
-
-struct GamepadAxisInfoArgs {
-    int32_t id;
-    // evdev ABS_CNT axis index.
-    uint32_t index;
-    // For the definition of the variables below, see input_absinfo.
-    int32_t minValue;
-    int32_t maxValue;
-    int32_t flat;
-    int32_t fuzz;
-    int32_t resolution;
-} __attribute__((packed));
-
-struct GamepadArgs {
-    int32_t id;
-    union {
-        // Used by GAMEPAD_BUTTON and GAMEPAD_AXIS respectively
-        int32_t button;
-        int32_t axis;
-    };
-    bool pressed;
-    float value;
-} __attribute__((packed));
-
-struct SwitchArgs {
-    // Switch ID defined at bionic/libc/kernel/uapi/linux/input.h.
-    int32_t switchCode;
-    // Switch value defined at frameworks/native/include/android/input.h.
-    int32_t state;
-} __attribute__((packed));
-
-struct DisplayMetricsArgs {
-    int32_t width;
-    int32_t height;
-    float ui_scale;
-} __attribute__((packed));
-
-struct KeyCharacterMapNameArgs {
-  // XKB layout name. The longest one we have is "us(workman-intl)" (16
-  // characters) so it should be sufficient. KCM converter will also check the
-  // name doesn't exceed the limit at build time.
-  char name[32];
-} __attribute__((packed));
-
-struct RelativePointerArgs {
-    float dx;
-    float dy;
-} __attribute__((packed));
-
-// Union-like class describing an event. The InputEventType describes which
-// of member of the union contains the data of this event.
-struct BridgeInputEvent {
-    uint64_t timestamp;
-    int32_t displayId;
-
-    InputEventType type;
-
-    union {
-        PointerArgs pointer;
-        KeyArgs key;
-        TouchArgs touch;
-        MetaArgs meta;
-        ButtonArgs button;
-        GestureArgs gesture;
-        GesturePinchArgs gesture_pinch;
-        GestureSwipeArgs gesture_swipe;
-        GamepadDeviceInfoArgs gamepad_device_info;
-        GamepadAxisInfoArgs gamepad_axis_info;
-        GamepadArgs gamepad;
-        SwitchArgs switches;
-        DisplayMetricsArgs display_metrics;
-        KeyCharacterMapNameArgs key_character_map_name;
-        RelativePointerArgs relativePointer;
-    };
-
-    static BridgeInputEvent ResetEvent(uint64_t timestamp) {
-        return {timestamp, -1, InputEventType::RESET, {}};
-    }
-
-    static BridgeInputEvent KeyEvent(uint64_t timestamp, uint32_t scanCode,
-                                     uint32_t state, uint32_t serial) {
-        BridgeInputEvent event{timestamp, -1, InputEventType::KEY, {}};
-        event.key = {scanCode, state, serial};
-        return event;
-    }
-
-    static BridgeInputEvent KeyModifiersEvent(uint64_t timestamp, uint32_t modifiers) {
-        BridgeInputEvent event{timestamp, -1, InputEventType::KEY_MODIFIERS, {}};
-        event.meta = {modifiers};
-        return event;
-    }
-
-    static BridgeInputEvent PointerEvent(uint64_t timestamp, InputEventType type, float x = 0,
-                                         float y = 0, bool discrete = false) {
-        BridgeInputEvent event{timestamp, -1, type, {}};
-        event.pointer = {x, y, discrete};
-        return event;
-    }
-
-    static BridgeInputEvent PointerButtonEvent(uint64_t timestamp, uint32_t code, uint32_t state) {
-        BridgeInputEvent event{timestamp, -1, InputEventType::POINTER_BUTTON, {}};
-        event.button = {code, state};
-        return event;
-    }
-
-    static BridgeInputEvent PinchBeginEvent(uint64_t timestamp) {
-        return {timestamp, -1, InputEventType::GESTURE_PINCH_BEGIN, {}};
-    }
-
-    static BridgeInputEvent PinchUpdateEvent(uint64_t timestamp, float scale) {
-        BridgeInputEvent event{timestamp, -1, InputEventType::GESTURE_PINCH_UPDATE, {}};
-        event.gesture_pinch.scale = scale;
-        return event;
-    }
-
-    static BridgeInputEvent PinchEndEvent(uint64_t timestamp, bool cancelled) {
-        BridgeInputEvent event{timestamp, -1, InputEventType::GESTURE_PINCH_END, {}};
-        event.gesture.cancelled = cancelled;
-        return event;
-    }
-
-    static BridgeInputEvent SwipeBeginEvent(uint64_t timestamp, uint32_t fingers) {
-        BridgeInputEvent event{timestamp, -1, InputEventType::GESTURE_SWIPE_BEGIN, {}};
-        event.gesture.fingers = fingers;
-        return event;
-    }
-
-    static BridgeInputEvent SwipeUpdateEvent(uint64_t timestamp, float dx, float dy) {
-        BridgeInputEvent event{timestamp, -1, InputEventType::GESTURE_SWIPE_UPDATE, {}};
-        event.gesture_swipe.dx = dx;
-        event.gesture_swipe.dy = dy;
-        return event;
-    }
-
-    static BridgeInputEvent SwipeEndEvent(uint64_t timestamp, bool cancelled) {
-        BridgeInputEvent event{timestamp, -1, InputEventType::GESTURE_SWIPE_END, {}};
-        event.gesture.cancelled = cancelled;
-        return event;
-    }
-
-    static BridgeInputEvent GamepadConnectedEvent(int32_t id) {
-        BridgeInputEvent event{0, -1, InputEventType::GAMEPAD_CONNECTED, {}};
-        event.gamepad.id = id;
-        return event;
-    }
-
-    static BridgeInputEvent GamepadDisconnectedEvent(int32_t id) {
-        BridgeInputEvent event{0, -1, InputEventType::GAMEPAD_DISCONNECTED, {}};
-        event.gamepad.id = id;
-        return event;
-    }
-
-    static BridgeInputEvent GamepadAxisEvent(uint64_t timestamp, int32_t id, int32_t axis,
-                                             float value) {
-        BridgeInputEvent event{timestamp, -1, InputEventType::GAMEPAD_AXIS, {}};
-        event.gamepad.id = id;
-        event.gamepad.axis = axis;
-        event.gamepad.value = value;
-        return event;
-    }
-
-    static BridgeInputEvent GamepadButtonEvent(uint64_t timestamp, int32_t id, int32_t button,
-                                               bool pressed, float value) {
-        BridgeInputEvent event{timestamp, -1, InputEventType::GAMEPAD_BUTTON, {}};
-        event.gamepad.id = id;
-        event.gamepad.button = button;
-        event.gamepad.pressed = pressed;
-        event.gamepad.value = value;
-        return event;
-    }
-
-    static BridgeInputEvent GamepadFrameEvent(uint64_t timestamp, int32_t id) {
-        BridgeInputEvent event{timestamp, -1, InputEventType::GAMEPAD_FRAME, {}};
-        event.gamepad.id = id;
-        return event;
-    }
-
-    static BridgeInputEvent SwitchEvent(uint64_t timestamp, int32_t switchCode, int32_t state) {
-        BridgeInputEvent event{timestamp, -1, InputEventType::SWITCH, {}};
-        event.switches.switchCode = switchCode;
-        event.switches.state = state;
-        return event;
-    }
-} __attribute__((packed));
-
-}  // namespace arc
-
-#endif  // _RUNTIME_ARC_INPUT_BRIDGE_PROTOCOL_H
diff --git a/flinger_headers/README b/flinger_headers/README
deleted file mode 100644
index 6d12f56..0000000
--- a/flinger_headers/README
+++ /dev/null
@@ -1,5 +0,0 @@
-These header files are extensions to inputflinger and surfaceflinger that are
-only used by ARC++.  They are too light to create a separate project for them, so
-put them under an isolated folder in external/wayland-protocols, because
-wayland stuff in vendor/google_arc implement them, and
-inputflinger/surfaceflinger can't depend on code under vendor/.
diff --git a/flinger_headers/hwcomposer2_arc_private.h b/flinger_headers/hwcomposer2_arc_private.h
deleted file mode 100644
index 844311d..0000000
--- a/flinger_headers/hwcomposer2_arc_private.h
+++ /dev/null
@@ -1,323 +0,0 @@
-/*
- * Copyright 2017 The Chromium Authors.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- */
-
-#ifndef ANDROID_SF_PRIVATE_HWCOMPOSER2_ARC_PRIVATE_H
-#define ANDROID_SF_PRIVATE_HWCOMPOSER2_ARC_PRIVATE_H
-
-__BEGIN_DECLS
-
-/* Optional ARC private capabilities. The particular set of supported private
- * capabilities for a given device may be retrieved using
- * getArcPrivateCapabilities. */
-typedef enum {
-    HWC2_ARC_PRIVATE_CAPABILITY_INVALID = 0,
-
-    /* Specifies that the device supports ARC attribute data. Decoding the data
-     * is an implementation detail for the device. Note that ordinarily the
-     * Android framework does not send this data. It is assumed that a vendor
-     * that wants this data has also modified the framework to send it. */
-    HWC2_ARC_PRIVATE_CAPABILITY_ATTRIBUTES = 1,
-
-    /* Specifies that the device is an ARC windowing composer. A windowing
-     * composer generates windowed output inside some external
-     * implementation-defined windowing environment. It means that there is no
-     * longer a single output frame buffer being used. The device must handle
-     * all composition, and the client must not do so. The client cannot do any
-     * culling of layers either -- it may not have full knowledge of what is
-     * actually visible or not. */
-    HWC2_ARC_PRIVATE_CAPABILITY_WINDOWING_COMPOSER = 2,
-} hwc2_arc_private_capability_t;
-
-/* ARC private function descriptors for use with getFunction.
- * The first entry needs to be maintained so there is no overlap with the
- * constants there. */
-typedef enum {
-    HWC2_ARC_PRIVATE_FUNCTION_GET_CAPABILITIES = 0x10000,
-
-    // For HWC2_ARC_PRIVATE_CAPABILITY_WINDOWING_COMPOSER
-    HWC2_ARC_PRIVATE_FUNCTION_GET_DISPLAY_ATTRIBUTE,
-
-    // For HWC2_ARC_PRIVATE_CAPABILITY_ATTRIBUTES
-    HWC2_ARC_PRIVATE_FUNCTION_SET_LAYER_ATTRIBUTES,
-
-    // For HWC2_ARC_PRIVATE_CAPABILITY_WINDOWING_COMPOSER
-    HWC2_ARC_PRIVATE_FUNCTION_SET_LAYER_HIDDEN,
-
-    // For HWC2_ARC_PRIVATE_CAPABILITY_ATTRIBUTES
-    HWC2_ARC_PRIVATE_FUNCTION_ATTRIBUTES_SHOULD_FORCE_UPDATE,
-} hwc2_arc_private_function_descriptor_t;
-
-typedef enum {
-    HWC2_ARC_PRIVATE_DISPLAY_ATTRIBUTE_INVALID = 0,
-    HWC2_ARC_PRIVATE_DISPLAY_ATTRIBUTE_OUTPUT_ROTATION = 1,
-} hwc2_arc_private_display_attribute_t;
-
-typedef enum {
-    HWC2_ARC_PRIVATE_HIDDEN_INVALID = 0,
-    HWC2_ARC_PRIVATE_HIDDEN_ENABLE = 1,
-    HWC2_ARC_PRIVATE_HIDDEN_DISABLE = 2,
-} hwc2_arc_private_hidden_t;
-
-/*
- * Stringification Functions
- */
-
-#ifdef HWC2_INCLUDE_STRINGIFICATION
-
-static inline const char* getArcPrivateCapabilityName(hwc2_arc_private_capability_t capability)
-{
-    switch (capability) {
-    case HWC2_ARC_PRIVATE_CAPABILITY_INVALID:
-        return "Invalid";
-    case HWC2_ARC_PRIVATE_CAPABILITY_ATTRIBUTES:
-        return "ArcAttributes";
-    case HWC2_ARC_PRIVATE_CAPABILITY_WINDOWING_COMPOSER:
-        return "ArcWindowingComposer";
-    default:
-        return "Unknown";
-    }
-}
-
-static inline const char* getArcPrivateFunctionDescriptorName(
-        hwc2_arc_private_function_descriptor_t desc)
-{
-    switch (desc) {
-    case HWC2_ARC_PRIVATE_FUNCTION_GET_CAPABILITIES:
-        return "ArcGetCapabilities";
-    case HWC2_ARC_PRIVATE_FUNCTION_GET_DISPLAY_ATTRIBUTE:
-        return "ArcGetDisplayAttribute";
-    case HWC2_ARC_PRIVATE_FUNCTION_SET_LAYER_ATTRIBUTES:
-        return "ArcSetLayerAttributes";
-    case HWC2_ARC_PRIVATE_FUNCTION_SET_LAYER_HIDDEN:
-        return "ArcSetLayerHidden";
-    case HWC2_ARC_PRIVATE_FUNCTION_ATTRIBUTES_SHOULD_FORCE_UPDATE:
-        return "ArcAttributesShouldForceUpdate";
-    default:
-        return "Unknown";
-    }
-}
-
-static inline const char* getArcPrivateDisplayAttributeName(hwc2_arc_private_display_attribute_t attribute)
-{
-    switch (attribute) {
-    case HWC2_ARC_PRIVATE_DISPLAY_ATTRIBUTE_INVALID:
-        return "Invalid";
-    case HWC2_ARC_PRIVATE_DISPLAY_ATTRIBUTE_OUTPUT_ROTATION:
-        return "OutputRotation";
-    default:
-        return "Unknown";
-    }
-}
-
-static inline const char* getArcPrivateHiddenName(hwc2_arc_private_hidden_t hidden)
-{
-    switch (hidden) {
-    case HWC2_ARC_PRIVATE_HIDDEN_INVALID:
-        return "Invalid";
-    case HWC2_ARC_PRIVATE_HIDDEN_ENABLE:
-        return "Enable";
-    case HWC2_ARC_PRIVATE_HIDDEN_DISABLE:
-        return "Disable";
-    default:
-        return "Unknown";
-    }
-}
-
-#endif  // HWC2_INCLUDE_STRINGIFICATION
-
-/*
- * C++11 features
- */
-
-#ifdef HWC2_USE_CPP11
-__END_DECLS
-
-#ifdef HWC2_INCLUDE_STRINGIFICATION
-#include <string>
-#endif
-
-namespace HWC2 {
-
-enum class ArcPrivateCapability : int32_t {
-    Invalid = HWC2_ARC_PRIVATE_CAPABILITY_INVALID,
-    Attributes = HWC2_ARC_PRIVATE_CAPABILITY_ATTRIBUTES,
-    WindowingComposer = HWC2_ARC_PRIVATE_CAPABILITY_WINDOWING_COMPOSER,
-};
-TO_STRING(hwc2_arc_private_capability_t, ArcPrivateCapability, getArcPrivateCapabilityName)
-
-enum class ArcPrivateFunctionDescriptor : int32_t {
-    // Since we are extending the HWC2 FunctionDescriptor, we duplicate
-    // all of its
-    GetCapabilities = HWC2_ARC_PRIVATE_FUNCTION_GET_CAPABILITIES,
-    GetDisplayAttribute = HWC2_ARC_PRIVATE_FUNCTION_GET_DISPLAY_ATTRIBUTE,
-    SetLayerAttributes = HWC2_ARC_PRIVATE_FUNCTION_SET_LAYER_ATTRIBUTES,
-    SetLayerHidden = HWC2_ARC_PRIVATE_FUNCTION_SET_LAYER_HIDDEN,
-    AttributesShouldForceUpdate = HWC2_ARC_PRIVATE_FUNCTION_ATTRIBUTES_SHOULD_FORCE_UPDATE,
-};
-TO_STRING(hwc2_arc_private_function_descriptor_t, ArcPrivateFunctionDescriptor,
-        getArcPrivateFunctionDescriptorName)
-
-enum class ArcPrivateDisplayAttribute : int32_t {
-    Invalid = HWC2_ARC_PRIVATE_DISPLAY_ATTRIBUTE_INVALID,
-    OutputRotation = HWC2_ARC_PRIVATE_DISPLAY_ATTRIBUTE_OUTPUT_ROTATION,
-};
-TO_STRING(hwc2_arc_private_display_attribute_t, ArcPrivateDisplayAttribute,
-        getArcPrivateDisplayAttributeName)
-
-enum class ArcPrivateHidden : int32_t {
-    Invalid = HWC2_ARC_PRIVATE_HIDDEN_INVALID,
-    Enable = HWC2_ARC_PRIVATE_HIDDEN_ENABLE,
-    Disable = HWC2_ARC_PRIVATE_HIDDEN_DISABLE,
-};
-TO_STRING(hwc2_arc_private_hidden_t, ArcPrivateHidden, getArcPrivateHiddenName)
-
-}  // namespace HWC2
-
-__BEGIN_DECLS
-#endif  // HWC2_USE_CPP11
-
-/*
- * ARC Private device Functions
- *
- * All of these functions take as their first parameter a device pointer, so
- * this parameter is omitted from the described parameter lists.
- */
-
-/* arcGetCapabilities(..., outCount, outCapabilities)
- * Descriptor: HWC2_ARC_PRIVATE_FUNCTION_GET_CAPABILITIES
- *
- * Gets additional capabilities supported by the device.
- *
- * Parameters:
- *   outCount - if outCapabilities was NULL, the number of capabilities which
- *       would have been returned; if outCapabilities was not NULL, the number
- *       of capabilities returned, which must not exceed the value stored in
- *       outCount priort to the call; pointer will be non-NULL
- *   outCapabilities - an array of capabilities
- * */
-typedef void (*HWC2_ARC_PRIVATE_PFN_GET_CAPABILITIES)(hwc2_device_t* device, uint32_t* outCount,
-        int32_t* /*hwc2_arc_private_capability_t*/ outCapabilities);
-
-/*
- * ARC Private display functions
- *
- * All of these functions take as their first two parameters a device pointer,
- * and a display handle for the display. These parameters are omitted from the
- * described parameter lists.
- */
-
-/* arcGetDisplayAttributes(..., attribute, outValue)
- * Descriptor: HWC2_ARC_PRIVATE_FUNCTION_GET_DISPLAY_ATTRIBUTE
- * Provided by HWC2 devices which support
- * HWC2_ARC_PRIVATE_CAPABILITY_WINDOWING_COMPOSER
- *
- * Gets additional display attribute data.
- *
- * Parameters:
- *   attribute - The attribute to get
- *   outValue - A location to store the value of the attribute
- *
- * Returns HWC2_ERROR_NONE if a value was set, or HWC2_ERROR_BAD_DISPLAY, or
- * HWC2_ERROR_BAD_PARAMETER
- */
-typedef int32_t /*hwc2_error_t*/ (*HWC2_ARC_PRIVATE_PFN_GET_DISPLAY_ATTRIBUTE)(
-        hwc2_device_t* device, hwc2_display_t display, const int32_t attribute, int32_t* outValue);
-
-/*
- * ARC Private layer Functions
- *
- * These are functions which operate on layers, but which do not modify state
- * that must be validated before use. See also 'Layer State Functions' below.
- *
- * All of these functions take as their first three parameters a device pointer,
- * a display handle for the display which contains the layer, and a layer
- * handle, so these parameters are omitted from the described parameter lists.
- */
-
-/* arcSetLayerAttributes(..., numElements, ids, sizes, values)
- * Descriptor: HWC2_ARC_PRIVATE_FUNCTION_SET_LAYER_ATTRIBUTES
- * Provided by HWC2 devices which support
- * HWC2_ARC_PRIVATE_CAPABILITY_ATTRIBUTES
- *
- * Sets additional surface data in the form of id/value pairs sent down by the
- * framework. The meaning of each attribute is opaque to the client, and is
- * assumed to be understood by the device implementation.
- *
- * Parameters:
- *   numElements - the number of elements in each array.
- *   ids - an array of surface attribute ids
- *   sizes - an array of sizes, giving the size in bytes of each value
- *   values - an array of pointers to the data for each value
- *
- * Returns HWC2_ERROR_NONE or one of the following errors:
- *   HWC2_ERROR_BAD_LAYER - an invalid layer handle was passed in
- */
-typedef int32_t /*hwc2_error_t*/ (*HWC2_ARC_PRIVATE_PFN_SET_LAYER_ATTRIBUTES)(hwc2_device_t* device,
-        hwc2_display_t display, hwc2_layer_t layer, uint32_t numElements, const int32_t* ids,
-        const uint32_t* sizes, const uint8_t** values);
-
-/* arcSetLayerHidden(..., hidden)
- * Descriptor: HWC2_ARC_PRIVATE_FUNCTION_SET_LAYER_HIDDEN
- * Provided by HWC2 devices which support
- * HWC2_ARC_PRIVATE_CAPABILITY_WINDOWING_COMPOSER
- *
- * Indicates whether the layer should be hidden or not. This flag is set by the
- * window manager.
- *
- * Parameters:
- *   hidden - the setting to use.
- *
- * Returns HWC2_ERROR_NONE or one of the following errors:
- *   HWC2_ERROR_BAD_LAYER - an invalid layer handle was passed in
- */
-typedef int32_t /*hwc2_error_t*/ (*HWC2_ARC_PRIVATE_PFN_SET_LAYER_HIDDEN)(
-        hwc2_device_t* device, hwc2_display_t display, hwc2_layer_t layer,
-        int32_t /* hwc2_arc_private_hidden_t */ hidden);
-
-/* arcAttributesShouldForceUpdate(..., numElements, ids, sizes, values, outShouldForceUpdate)
- * Descriptor: HWC2_ARC_PRIVATE_FUNCTION_ATTRIBUTES_SHOULD_FORCE_UPDATE
- * Provided by HWC2 devices which support
- * HWC2_ARC_PRIVATE_CAPABILITY_ATTRIBUTES
- *
- * Outputs to |outShouldForceUpdate| whether to send geometry updates without
- * waiting for a matching buffer, given the specified layer attributes.
- *
- * Parameters:
- *   numElements - the number of elements in each array.
- *   ids - an array of surface attribute ids
- *   sizes - an array of sizes, giving the size in bytes of each value
- *   values - an array of pointers to the data for each value
- *   outShouldForceUpdate - whether to send geometry updates without waiting
- *      for a matching buffer
- *
- * Returns HWC2_ERROR_NONE or one of the following errors:
- *   HWC2_ERROR_BAD_LAYER - an invalid layer handle was passed in
- */
-typedef int32_t /*hwc2_error_t*/ (*HWC2_ARC_PRIVATE_PFN_ATTRIBUTES_SHOULD_FORCE_UPDATE)(
-    hwc2_device_t* device, hwc2_display_t display, hwc2_layer_t layer,
-    uint32_t numElements, const int32_t* ids, const uint32_t* sizes,
-    const uint8_t** values, bool* outShouldForceUpdate);
-
-__END_DECLS
-
-#endif