// SPDX-License-Identifier: GPL-2.0

/*
 * simple_ring_buffer is used by the pKVM hypervisor which does not have access
 * to all kernel symbols.  Whatever is undefined when compiling this file is
 * compiler and tooling-generated symbols that can safely be ignored for
 * simple_ring_buffer.
 */

#include <linux/atomic.h>
#include <linux/string.h>
#include <asm/page.h>

void undefsyms_base(void *p, int n);

static char page[PAGE_SIZE] __aligned(PAGE_SIZE);

void undefsyms_base(void *p, int n)
{
	char buffer[256] = { 0 };

	u32 u = 0;
	memset((char * volatile)page, 8, PAGE_SIZE);
	memset((char * volatile)buffer, 8, sizeof(buffer));
	memcpy((void * volatile)p, buffer, sizeof(buffer));
	cmpxchg((u32 * volatile)&u, 0, 8);
	WARN_ON(n == 0xdeadbeef);
}
