/*
 * Copyright (c) 2022, Arm Ltd. All rights reserved.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */

#ifndef REGION_DEFS_H
#define REGION_DEFS_H

#define PSA_INITIAL_ATTEST_MAX_TOKEN_SIZE   0x800

#endif /* REGION_DEFS_H */
