xref: /freebsd/sys/x86/linux/linux_x86.h (revision 4281dab8)
19931033bSDmitry Chagin /*-
24d846d26SWarner Losh  * SPDX-License-Identifier: BSD-2-Clause
39931033bSDmitry Chagin  *
49931033bSDmitry Chagin  * Copyright (c) 2021 Dmitry Chagin <dchagin@FreeBSD.org>
59931033bSDmitry Chagin  *
69931033bSDmitry Chagin  * Redistribution and use in source and binary forms, with or without
79931033bSDmitry Chagin  * modification, are permitted provided that the following conditions
89931033bSDmitry Chagin  * are met:
99931033bSDmitry Chagin  * 1. Redistributions of source code must retain the above copyright
109931033bSDmitry Chagin  *    notice, this list of conditions and the following disclaimer.
119931033bSDmitry Chagin  * 2. Redistributions in binary form must reproduce the above copyright
129931033bSDmitry Chagin  *    notice, this list of conditions and the following disclaimer in the
139931033bSDmitry Chagin  *    documentation and/or other materials provided with the distribution.
149931033bSDmitry Chagin  *
159931033bSDmitry Chagin  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
169931033bSDmitry Chagin  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
179931033bSDmitry Chagin  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
189931033bSDmitry Chagin  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
199931033bSDmitry Chagin  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
209931033bSDmitry Chagin  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
219931033bSDmitry Chagin  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
229931033bSDmitry Chagin  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
239931033bSDmitry Chagin  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
249931033bSDmitry Chagin  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
259931033bSDmitry Chagin  * SUCH DAMAGE.
269931033bSDmitry Chagin  */
279931033bSDmitry Chagin 
289931033bSDmitry Chagin #ifndef _X86_INCLUDE_LINUX_LINUX_X86_H_
299931033bSDmitry Chagin #define _X86_INCLUDE_LINUX_LINUX_X86_H_
309931033bSDmitry Chagin 
315a6a4fb2SDmitry Chagin #define	LINUX_VDSO_CPU_DEFAULT		0
325a6a4fb2SDmitry Chagin #define	LINUX_VDSO_CPU_RDPID		1
335a6a4fb2SDmitry Chagin #define	LINUX_VDSO_CPU_RDTSCP		2
345a6a4fb2SDmitry Chagin 
354281dab8SDmitry Chagin /* More machine dependent hints about processor capabilities. */
364281dab8SDmitry Chagin #define	LINUX_HWCAP2_RING3MWAIT		0x00000001
374281dab8SDmitry Chagin #define	LINUX_HWCAP2_FSGSBASE		0x00000002
384281dab8SDmitry Chagin 
399931033bSDmitry Chagin int	linux_vdso_tsc_selector_idx(void);
405a6a4fb2SDmitry Chagin int	linux_vdso_cpu_selector_idx(void);
419931033bSDmitry Chagin 
422434137fSDmitry Chagin int	linux_translate_traps(int, int);
439016ec05SDmitry Chagin int	bsd_to_linux_trapcode(int);
442434137fSDmitry Chagin 
454281dab8SDmitry Chagin u_int	linux_x86_elf_hwcap2(void);
464281dab8SDmitry Chagin 
479931033bSDmitry Chagin #endif /* _X86_INCLUDE_LINUX_LINUX_X86_H_ */
48