Yn0ga cbb88108d5 Various PowerPC fixes
* Removed atomic operations placeholders for modern ones
* Fix chrpscript & hfsmaps location for CDBootImage (haiku-boot-cd target)
* add of_blocks & of_blocksize openfirmware call

Change-Id: Iaaddc2c566d108976ac5e5e08caea1fc59523e06
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6987
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2023-10-06 20:38:24 +00:00

47 lines
902 B
C

/*
* Copyright 2014, Paweł Dziepak, pdziepak@quarnos.org.
* Distributed under the terms of the MIT License.
*
* Authors:
* Alexander von Gluck IV <kallisti5@unixzen.com>
*/
#ifndef _KERNEL_ARCH_PPC_ATOMIC_H
#define _KERNEL_ARCH_PPC_ATOMIC_H
static inline void
memory_read_barrier_inline(void)
{
#ifdef __powerpc64__
asm volatile("lwsync" : : : "memory");
#else
asm volatile("sync" : : : "memory");
#endif
}
static inline void
memory_write_barrier_inline(void)
{
#ifdef __powerpc64__
asm volatile("lwsync" : : : "memory");
#else
asm volatile("eieio" : : : "memory");
#endif
}
static inline void
memory_full_barrier_inline(void)
{
asm volatile("sync" : : : "memory");
}
#define memory_read_barrier memory_read_barrier_inline
#define memory_write_barrier memory_write_barrier_inline
#define memory_full_barrier memory_full_barrier_inline
#endif // _KERNEL_ARCH_PPC_ATOMIC_H