#
# Copyright (C) 2019 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.
#

LIBARTPALETTE_1 {
  global:
    # --- VERSION 01 API ---
    PaletteSchedSetPriority; # apex
    PaletteSchedGetPriority; # apex
    PaletteWriteCrashThreadStacks; # apex
    PaletteTraceEnabled; # apex
    PaletteTraceBegin; # apex
    PaletteTraceEnd; # apex
    PaletteTraceIntegerValue; # apex
    PaletteAshmemCreateRegion; # apex
    PaletteAshmemSetProtRegion; # apex
    PaletteCreateOdrefreshStagingDirectory; # apex
    PaletteShouldReportDex2oatCompilation; #apex
    PaletteNotifyStartDex2oatCompilation; #apex
    PaletteNotifyEndDex2oatCompilation; #apex
    PaletteNotifyDexFileLoaded; #apex
    PaletteNotifyOatFileLoaded; #apex
    PaletteShouldReportJniInvocations; #apex
    PaletteNotifyBeginJniInvocation; #apex
    PaletteNotifyEndJniInvocation; #apex

  local:
    *;
};
