xref: /freebsd/sys/kern/subr_ticks.S (revision 325aa4dbd10d04a61a9529e1d76212b5649b3c73)
1/*-
2 * SPDX-License-Identifier: BSD-2-Clause
3 *
4 * Copyright (c) 2025 Mark Johnston <markj@FreeBSD.org>
5 */
6
7/*
8 * Define the "ticks" and "ticksl" variables.  The former is overlaid onto the
9 * low bits of the latter.  Also define an alias "jiffies" of "ticksl",
10 * used by the LinuxKPI.
11 */
12
13#if defined(__aarch64__)
14#include <sys/elf_common.h>
15#include <machine/asm.h>
16
17GNU_PROPERTY_AARCH64_FEATURE_1_NOTE(GNU_PROPERTY_AARCH64_FEATURE_1_VAL)
18#endif
19
20#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
21#define	TICKS_OFFSET	0
22#else
23#define	TICKS_OFFSET	(__SIZEOF_LONG__ - __SIZEOF_INT__)
24#endif
25
26	.bss
27
28	.global ticksl
29	.type ticksl, %object
30	.balign __SIZEOF_LONG__
31ticksl:	.zero __SIZEOF_LONG__
32	.size ticksl, __SIZEOF_LONG__
33
34	.global ticks
35	.type ticks, %object
36ticks	=ticksl + TICKS_OFFSET
37	.size ticks, __SIZEOF_INT__
38
39	.global jiffies
40	.type jiffies, %object
41jiffies	= ticksl
42	.size jiffies, __SIZEOF_LONG__
43