blob: a04786a43f7396de40de838aaf87c8b0f3dd0657 [file] [log] [blame]
// Copyright 2018 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef ZIRCON_LIMITS_H_
#define ZIRCON_LIMITS_H_
#include <stdint.h>
#define ZX_PAGE_SHIFT ((uint32_t)12u)
#define ZX_PAGE_SIZE ((uintptr_t)(1u << ZX_PAGE_SHIFT))
#define ZX_PAGE_MASK (ZX_PAGE_SIZE - 1u)
#if defined(__x86_64__) || defined(__i386__)
#define ZX_MIN_PAGE_SHIFT ((uint32_t)12u)
#define ZX_MAX_PAGE_SHIFT ((uint32_t)21u)
#elif defined(__aarch64__)
#define ZX_MIN_PAGE_SHIFT ((uint32_t)12u)
#define ZX_MAX_PAGE_SHIFT ((uint32_t)16u)
#elif defined(__riscv)
#define ZX_MIN_PAGE_SHIFT ((uint32_t)12u)
#define ZX_MAX_PAGE_SHIFT ((uint32_t)21u)
#else
#error what architecture?
#endif
#define ZX_MIN_PAGE_SIZE ((uintptr_t)(1u << ZX_MIN_PAGE_SHIFT))
#define ZX_MAX_PAGE_SIZE ((uintptr_t)(1u << ZX_MAX_PAGE_SHIFT))
#endif // ZIRCON_LIMITS_H_