All the kernel header files now use pargma once rather than the ifndef, as the pre-processed C files do not change while header files are protected with pargma once. This will also solve any naming issues caused by ifndef.
41 lines
813 B
C
41 lines
813 B
C
/*
|
|
* Copyright 2014, General Dynamics C4 Systems
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0-only
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
/* This file contains useful macros for assembly code. */
|
|
|
|
#ifdef __ASSEMBLER__
|
|
|
|
/*
|
|
* Use BEGIN_FUNC(), END_FUNC() around assembly functions to annotate them
|
|
* correctly to the assembler.
|
|
*/
|
|
#define BEGIN_FUNC(_name) \
|
|
.global _name ; \
|
|
.type _name, %function ; \
|
|
_name:
|
|
|
|
#define END_FUNC(_name) \
|
|
.size _name, .-_name
|
|
|
|
/*
|
|
* BEGIN_FUNC_STATIC() and END_FUNC_STATIC() do as above, but without making a
|
|
* global declaration. (c.f. static functions in C).
|
|
*/
|
|
#define BEGIN_FUNC_STATIC(_name) \
|
|
.type _name, %function ; \
|
|
_name:
|
|
|
|
#define END_FUNC_STATIC(_name) \
|
|
.size _name, .-_name
|
|
|
|
#else /* !__ASSEMBLER__ */
|
|
#warning "Including assembly-specific header in C code"
|
|
#endif
|
|
|
|
|
|
|