1d3f2c27ff9f611e5047a35cb20ed53f548214fedDavid 'Digit' Turner// Copyright 2014 The Android Open Source Project
2d3f2c27ff9f611e5047a35cb20ed53f548214fedDavid 'Digit' Turner//
3d3f2c27ff9f611e5047a35cb20ed53f548214fedDavid 'Digit' Turner// This software is licensed under the terms of the GNU General Public
4d3f2c27ff9f611e5047a35cb20ed53f548214fedDavid 'Digit' Turner// License version 2, as published by the Free Software Foundation, and
5d3f2c27ff9f611e5047a35cb20ed53f548214fedDavid 'Digit' Turner// may be copied, distributed, and modified under those terms.
6d3f2c27ff9f611e5047a35cb20ed53f548214fedDavid 'Digit' Turner//
7d3f2c27ff9f611e5047a35cb20ed53f548214fedDavid 'Digit' Turner// This program is distributed in the hope that it will be useful,
8d3f2c27ff9f611e5047a35cb20ed53f548214fedDavid 'Digit' Turner// but WITHOUT ANY WARRANTY; without even the implied warranty of
9d3f2c27ff9f611e5047a35cb20ed53f548214fedDavid 'Digit' Turner// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10d3f2c27ff9f611e5047a35cb20ed53f548214fedDavid 'Digit' Turner// GNU General Public License for more details.
11d3f2c27ff9f611e5047a35cb20ed53f548214fedDavid 'Digit' Turner
12d3f2c27ff9f611e5047a35cb20ed53f548214fedDavid 'Digit' Turner#ifndef ANDROID_BASE_LIMITS_H
13d3f2c27ff9f611e5047a35cb20ed53f548214fedDavid 'Digit' Turner#define ANDROID_BASE_LIMITS_H
14d3f2c27ff9f611e5047a35cb20ed53f548214fedDavid 'Digit' Turner
15d3f2c27ff9f611e5047a35cb20ed53f548214fedDavid 'Digit' Turner// In C++, <stdint.h> will only define macros like SIZE_MAX if you have
16d3f2c27ff9f611e5047a35cb20ed53f548214fedDavid 'Digit' Turner// defined __STDC_LIMIT_MACROS before including <stdint.h>. This header
17d3f2c27ff9f611e5047a35cb20ed53f548214fedDavid 'Digit' Turner// is used to do just that and verify that the macros are properly
18d3f2c27ff9f611e5047a35cb20ed53f548214fedDavid 'Digit' Turner// defined.
19d3f2c27ff9f611e5047a35cb20ed53f548214fedDavid 'Digit' Turner//
20d3f2c27ff9f611e5047a35cb20ed53f548214fedDavid 'Digit' Turner// NOTE: We have to define __STDC_FORMAT_MACROS in case the user wants
21d3f2c27ff9f611e5047a35cb20ed53f548214fedDavid 'Digit' Turner//       to use the corresponding macros as well.
22d3f2c27ff9f611e5047a35cb20ed53f548214fedDavid 'Digit' Turner
23d3f2c27ff9f611e5047a35cb20ed53f548214fedDavid 'Digit' Turner#define __STDC_LIMIT_MACROS  1
24d3f2c27ff9f611e5047a35cb20ed53f548214fedDavid 'Digit' Turner#define __STDC_FORMAT_MACROS 1
25d3f2c27ff9f611e5047a35cb20ed53f548214fedDavid 'Digit' Turner#include <inttypes.h>
26d3f2c27ff9f611e5047a35cb20ed53f548214fedDavid 'Digit' Turner
27d3f2c27ff9f611e5047a35cb20ed53f548214fedDavid 'Digit' Turner#ifndef SIZE_MAX
28d3f2c27ff9f611e5047a35cb20ed53f548214fedDavid 'Digit' Turner#warning "<inttypes.h> has been included before this header."
29d3f2c27ff9f611e5047a35cb20ed53f548214fedDavid 'Digit' Turner#warning "This prevents the definition of useful macros."
30d3f2c27ff9f611e5047a35cb20ed53f548214fedDavid 'Digit' Turner#error "Please include <android/base/Limits.h> first!"
31d3f2c27ff9f611e5047a35cb20ed53f548214fedDavid 'Digit' Turner#endif
32d3f2c27ff9f611e5047a35cb20ed53f548214fedDavid 'Digit' Turner
33d3f2c27ff9f611e5047a35cb20ed53f548214fedDavid 'Digit' Turner#endif  // ANDROID_BASE_LIMITS_H
34