4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
22 * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
23 * Use is subject to license terms.
25 * Copyright 2018 Joyent, Inc.
28 #include <sys/types.h>
29 #include <sys/kdi_impl.h>
30 #include <sys/segments.h>
31 #include <sys/cpuvar.h>
33 #include <mdb/mdb_debug.h>
34 #include <mdb/mdb_err.h>
35 #include <mdb/mdb_umem.h>
36 #include <kmdb/kmdb_dpi.h>
41 kmdb_kdi_stop_slaves(int my_cpuid
, int doxc
)
43 /* Stop other CPUs if there are CPUs to stop */
44 mdb
.m_kdi
->mkdi_stop_slaves(my_cpuid
, doxc
);
48 kmdb_kdi_start_slaves(void)
50 mdb
.m_kdi
->mkdi_start_slaves();
54 kmdb_kdi_slave_wait(void)
56 mdb
.m_kdi
->mkdi_slave_wait();
60 kmdb_kdi_get_userlimit(void)
62 return (mdb
.m_kdi
->mkdi_get_userlimit());
66 kmdb_kdi_get_cpuinfo(uint_t
*vendorp
, uint_t
*familyp
, uint_t
*modelp
)
70 if ((err
= mdb
.m_kdi
->mkdi_get_cpuinfo(vendorp
, familyp
, modelp
)) != 0)
71 return (set_errno(err
));
78 kmdb_kdi_init_isadep(kdi_t
*kdi
, kmdb_auxv_t
*kav
)
83 kmdb_kdi_activate(kdi_main_t main
, kdi_cpusave_t
*cpusave
, int ncpusave
)
85 mdb
.m_kdi
->mkdi_activate(main
, cpusave
, ncpusave
);
89 kmdb_kdi_deactivate(void)
91 mdb
.m_kdi
->mkdi_deactivate();
95 kmdb_kdi_idt_switch(kdi_cpusave_t
*cpusave
)
97 mdb
.m_kdi
->mkdi_idt_switch(cpusave
);
101 kmdb_kdi_update_drreg(kdi_drreg_t
*drreg
)
103 mdb
.m_kdi
->mkdi_update_drreg(drreg
);
107 kmdb_kdi_memrange_add(caddr_t base
, size_t len
)
109 mdb
.m_kdi
->mkdi_memrange_add(base
, len
);
113 kmdb_kdi_reboot(void)
115 mdb
.m_kdi
->mkdi_reboot();