/* * Copyright (c) 2018 Intel Corporation * * SPDX-License-Identifier: Apache-2.0 */ /* This "C" file exists solely to include the contents of * separately-compiled binary stubs into the link. It's easier than * trying to objcopy the contents into linkable object files, * especially when combined with cmake's somewhat odd special-cased * dependency handling (which works fine with C files, of course). */ /* The 32 bit stub is our entry point and goes into a separate linker * section so it can be placed correctly */ __asm__(".section .xuk_stub32\n" ".incbin \"xuk-stub32.bin\"\n"); /* The 16 bit stub is the start of execution for auxiliary SMP CPUs * (also for real mode traps if we ever want to expose that * capability) and just lives in rodata. It has to be copied into low * memory by the kernel once it is running. */ __asm__(".section .rodata\n" ".globl _xuk_stub16_start\n" "_xuk_stub16_start:\n" ".incbin \"xuk-stub16.bin\"\n" ".globl _xuk_stub16_end\n" "_xuk_stub16_end:\n");