/*
 * Copyright (c) 2016, ARM Limited and Contributors. All rights reserved.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */

#ifndef PLAT_SIP_CALLS_H
#define PLAT_SIP_CALLS_H

#define RK_PLAT_SIP_NUM_CALLS	0

#endif /* PLAT_SIP_CALLS_H */
