1d8ead18145cba98fdc7256f9a0e69b8c1c90cd1cDmitriy Ivanov/*
2d8ead18145cba98fdc7256f9a0e69b8c1c90cd1cDmitriy Ivanov * Copyright (C) 2015 The Android Open Source Project
3bcc4da9b752f0def46d63ed7b31f3f49cc2435adDimitry Ivanov * All rights reserved.
4d8ead18145cba98fdc7256f9a0e69b8c1c90cd1cDmitriy Ivanov *
5bcc4da9b752f0def46d63ed7b31f3f49cc2435adDimitry Ivanov * Redistribution and use in source and binary forms, with or without
6bcc4da9b752f0def46d63ed7b31f3f49cc2435adDimitry Ivanov * modification, are permitted provided that the following conditions
7bcc4da9b752f0def46d63ed7b31f3f49cc2435adDimitry Ivanov * are met:
8bcc4da9b752f0def46d63ed7b31f3f49cc2435adDimitry Ivanov *  * Redistributions of source code must retain the above copyright
9bcc4da9b752f0def46d63ed7b31f3f49cc2435adDimitry Ivanov *    notice, this list of conditions and the following disclaimer.
10bcc4da9b752f0def46d63ed7b31f3f49cc2435adDimitry Ivanov *  * Redistributions in binary form must reproduce the above copyright
11bcc4da9b752f0def46d63ed7b31f3f49cc2435adDimitry Ivanov *    notice, this list of conditions and the following disclaimer in
12bcc4da9b752f0def46d63ed7b31f3f49cc2435adDimitry Ivanov *    the documentation and/or other materials provided with the
13bcc4da9b752f0def46d63ed7b31f3f49cc2435adDimitry Ivanov *    distribution.
14d8ead18145cba98fdc7256f9a0e69b8c1c90cd1cDmitriy Ivanov *
15bcc4da9b752f0def46d63ed7b31f3f49cc2435adDimitry Ivanov * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
16bcc4da9b752f0def46d63ed7b31f3f49cc2435adDimitry Ivanov * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
17bcc4da9b752f0def46d63ed7b31f3f49cc2435adDimitry Ivanov * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
18bcc4da9b752f0def46d63ed7b31f3f49cc2435adDimitry Ivanov * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
19bcc4da9b752f0def46d63ed7b31f3f49cc2435adDimitry Ivanov * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
20bcc4da9b752f0def46d63ed7b31f3f49cc2435adDimitry Ivanov * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
21bcc4da9b752f0def46d63ed7b31f3f49cc2435adDimitry Ivanov * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
22bcc4da9b752f0def46d63ed7b31f3f49cc2435adDimitry Ivanov * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
23bcc4da9b752f0def46d63ed7b31f3f49cc2435adDimitry Ivanov * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
24bcc4da9b752f0def46d63ed7b31f3f49cc2435adDimitry Ivanov * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
25bcc4da9b752f0def46d63ed7b31f3f49cc2435adDimitry Ivanov * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26bcc4da9b752f0def46d63ed7b31f3f49cc2435adDimitry Ivanov * SUCH DAMAGE.
27d8ead18145cba98fdc7256f9a0e69b8c1c90cd1cDmitriy Ivanov */
28d8ead18145cba98fdc7256f9a0e69b8c1c90cd1cDmitriy Ivanov
29d8ead18145cba98fdc7256f9a0e69b8c1c90cd1cDmitriy Ivanov#include "linker.h"
3004f7e3e955ba7de5f449c995e667659319dc1cceDmitriy Ivanov#include <android/api-level.h>
31d8ead18145cba98fdc7256f9a0e69b8c1c90cd1cDmitriy Ivanov#include <atomic>
32d8ead18145cba98fdc7256f9a0e69b8c1c90cd1cDmitriy Ivanov
3304f7e3e955ba7de5f449c995e667659319dc1cceDmitriy Ivanovstatic std::atomic<uint32_t> g_target_sdk_version(__ANDROID_API__);
34d8ead18145cba98fdc7256f9a0e69b8c1c90cd1cDmitriy Ivanov
35d8ead18145cba98fdc7256f9a0e69b8c1c90cd1cDmitriy Ivanovvoid set_application_target_sdk_version(uint32_t target) {
3628154f5c56dc4a64270cae2374b47a168d1bd7faDmitriy Ivanov  // translate current sdk_version to platform sdk_version
3728154f5c56dc4a64270cae2374b47a168d1bd7faDmitriy Ivanov  if (target == 0) {
3828154f5c56dc4a64270cae2374b47a168d1bd7faDmitriy Ivanov    target = __ANDROID_API__;
3928154f5c56dc4a64270cae2374b47a168d1bd7faDmitriy Ivanov  }
40d8ead18145cba98fdc7256f9a0e69b8c1c90cd1cDmitriy Ivanov  g_target_sdk_version = target;
41d8ead18145cba98fdc7256f9a0e69b8c1c90cd1cDmitriy Ivanov}
42d8ead18145cba98fdc7256f9a0e69b8c1c90cd1cDmitriy Ivanov
43d8ead18145cba98fdc7256f9a0e69b8c1c90cd1cDmitriy Ivanovuint32_t get_application_target_sdk_version() {
44d8ead18145cba98fdc7256f9a0e69b8c1c90cd1cDmitriy Ivanov  return g_target_sdk_version;
45d8ead18145cba98fdc7256f9a0e69b8c1c90cd1cDmitriy Ivanov}
46d8ead18145cba98fdc7256f9a0e69b8c1c90cd1cDmitriy Ivanov
47