Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

	.syntax unified
	.text

.macro	entry	name, vis, entry_fct
	.align	2
	.\vis	\name
	.\vis	__acle_se_\name
	.thumb
	.thumb_func
	.type	\name, %function
	.type	__acle_se_\name, %function
\name:
.ifnb \entry_fct
	\entry_fct
.endif
__acle_se_\name:
	nop
	.size	\name, .-\name
	.size	__acle_se_\name, .-__acle_se_\name
.endm

	@ Valid setups for veneer generation
.if (VER >= 2)
	entry exported_entry_veneer1, global
.endif
.if (VER != 4)
	entry exported_entry_veneer2, global
.else
	entry exported_entry_veneer2, weak
.endif
.if (VER != 2)
	entry exported_entry_veneer3, global
.endif
.if (VER > 1)
	entry exported_entry_veneer4, global
.endif

	@ Valid setup for entry function without veneer generation
	entry exported_entry_fct1, global, sg
.if (VER != 4)
	entry exported_entry_fct2, global, sg
.else
	@ Invalid setup for entry function without veneer generation
	entry exported_entry_fct2, global, nop
.endif

	@ Normal symbol not exported to SG import library
	.align	2
	.global	not_exported_fct1
	.type	not_exported_fct1, %function
not_exported_fct1:
	nop
	.size	not_exported_fct1, .-not_exported_fct1

.ifdef CHECK_ERRORS
	@ Invalid setups for export to SG import library
	.align	2
	.global	__acle_se_not_exported_fct2
	.type	__acle_se_not_exported_fct2, %function
__acle_se_not_exported_fct2:
	nop
	.size	__acle_se_not_exported_fct2, .-__acle_se_not_exported_fct2

	.align	2
	.global	__acle_se_not_exported_pseudoentry_var
	.global	not_exported_pseudoentry_var
	.data
	.type	__acle_se_not_exported_pseudoentry_var, %object
	.type	not_exported_pseudoentry_var, %object
	.size	not_exported_pseudoentry_var, 4
	.size	__acle_se_not_exported_pseudoentry_var, 4
__acle_se_not_exported_pseudoentry_var:
not_exported_pseudoentry_var:
	.word	42
.endif