Files
acrn-hypervisor/hypervisor/include/arch/riscv/asm/lib/atomic.h
Shiqing Gao b0a4c2d024 [FIXME] hv: smpcall: riscv: add placeholder implementations for dependent code
This patch provides dummy implementations of functions and data
structures required for the IPI and SMP call on RISC-V.
It serves as a placeholder to ensure RISC-V builds pass and
is not needed for the final merge.

Official implementations are still WIP by other engineers:

 - To be provided in the library patchset (by Haoyu):
    uint16_t ffs64(uint64_t value);
    bool bitmap_test(uint16_t nr, const volatile uint64_t *addr);
    void bitmap_clear_lock(uint16_t nr_arg, volatile uint64_t *addr);
    void bitmap_clear_nolock(uint16_t nr_arg, volatile uint64_t *addr);
    uint64_t atomic_cmpxchg64(volatile uint64_t *ptr, uint64_t old, uint64_t new);

 - To be provided in the platform initialization patchset (by Hang):
    void wait_sync_change(volatile const uint64_t *sync, uint64_t wake_sync);
    bool is_pcpu_active(uint16_t pcpu_id);
    uint16_t get_pcpu_id(void);

----------
Changelog:
 * Split per_cpu.h implementation into a separate commit.

Tracked-On: #8786
Signed-off-by: Shiqing Gao <shiqing.gao@intel.com>
Acked-by: Wang, Yu1 <yu1.wang@intel.com>
2025-09-09 16:37:04 +08:00

23 lines
448 B
C

/*
* Copyright (C) 2025 Intel Corporation.
*
* SPDX-License-Identifier: BSD-3-Clause
*
*/
#ifndef RISCV_ATOMIC_H
#define RISCV_ATOMIC_H
#include <types.h>
static inline uint64_t atomic_cmpxchg64(__unused volatile uint64_t *ptr, __unused uint64_t old, __unused uint64_t new)
{
/**
* Dummy implementation.
* Official implementations are to be provided in the library patchset (by Haoyu).
*/
return 0UL;
}
#endif /* RISCV_ATOMIC_H */