xref: /freebsd/lib/libc/gen/uexterr_init.c (revision 95e33099c74d9fc7963968f052b7546ad3040317)
1*95e33099SBrooks Davis /*-
2*95e33099SBrooks Davis  * SPDX-License-Identifier: BSD-2-Clause
3*95e33099SBrooks Davis  *
4*95e33099SBrooks Davis  * Copyright (c) 2025 The FreeBSD Foundation
5*95e33099SBrooks Davis  * All rights reserved.
6*95e33099SBrooks Davis  *
7*95e33099SBrooks Davis  * This software were developed by Konstantin Belousov <kib@FreeBSD.org>
8*95e33099SBrooks Davis  * under sponsorship from the FreeBSD Foundation.
9*95e33099SBrooks Davis  */
10*95e33099SBrooks Davis 
11*95e33099SBrooks Davis #define	_WANT_P_OSREL
12*95e33099SBrooks Davis #include <sys/param.h>
13*95e33099SBrooks Davis #include <sys/exterrvar.h>
14*95e33099SBrooks Davis #include "libc_private.h"
15*95e33099SBrooks Davis 
16*95e33099SBrooks Davis struct uexterror uexterr = {
17*95e33099SBrooks Davis 	.ver = UEXTERROR_VER,
18*95e33099SBrooks Davis };
19*95e33099SBrooks Davis 
20*95e33099SBrooks Davis static void uexterr_ctr(void) __attribute__((constructor));
21*95e33099SBrooks Davis static void
uexterr_ctr(void)22*95e33099SBrooks Davis uexterr_ctr(void)
23*95e33099SBrooks Davis {
24*95e33099SBrooks Davis 	if (__getosreldate() >= P_OSREL_EXTERRCTL)
25*95e33099SBrooks Davis 		exterrctl(EXTERRCTL_ENABLE, 0, &uexterr);
26*95e33099SBrooks Davis }
27