/* SPDX-License-Identifier: GPL-2.0+ */
/*
 * Copyright (C) 2017 Andes Technology Corporation
 * Rick Chen, Andes Technology Corporation <rick@andestech.com>
 */

#ifndef __ASM_RISCV_SYSTEM_H
#define __ASM_RISCV_SYSTEM_H

#include <asm/csr.h>

struct event;

/*
 * Interupt configuration macros
 */

#define local_irq_save(__flags)                                 \
    do {                                                        \
        __flags = csr_read_clear(CSR_SSTATUS, SR_SIE) & SR_SIE; \
    } while (0)

#define local_irq_restore(__flags)              \
    do {                                        \
        csr_set(CSR_SSTATUS, __flags & SR_SIE); \
    } while (0)

/* Hook to set up the CPU (called from SPL too) */
int riscv_cpu_setup(void *ctx, struct event *event);

#endif	/* __ASM_RISCV_SYSTEM_H */
