799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi/*
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi * This file and its contents are supplied under the terms of the
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi * Common Development and Distribution License ("CDDL"), version 1.0.
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi * You may only use this file in accordance with the terms of version
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi * 1.0 of the CDDL.
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi *
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi * A full copy of the text of the CDDL should have accompanied this
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi * source. A copy of the CDDL is also available via the Internet at
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi * http://www.illumos.org/license/CDDL.
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi */
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi/*
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi * Copyright 2015 Joyent, Inc.
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi */
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi#if !defined(__lint)
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi .file "unix_sup.s"
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi#endif /* __lint */
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi/*
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi * Support routines for the unix kmdb module
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi */
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi#include <sys/asm_linkage.h>
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi#if defined(__lint)
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi#include <sys/types.h>
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchiulong_t
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchikmdb_unix_getcr0(void)
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi{ return (0); }
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchiulong_t
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchikmdb_unix_getcr4(void)
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi{ return (0); }
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi#else /* __lint */
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi#if defined(__amd64)
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi ENTRY(kmdb_unix_getcr0)
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi movq %cr0, %rax
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi ret
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi SET_SIZE(kmdb_unix_getcr0)
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi ENTRY(kmdb_unix_getcr4)
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi movq %cr4, %rax
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi ret
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi SET_SIZE(kmdb_unix_getcr4)
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi#elif defined (__i386)
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi ENTRY(kmdb_unix_getcr0)
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi movl %cr0, %eax
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi ret
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi SET_SIZE(kmdb_unix_getcr0)
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi ENTRY(kmdb_unix_getcr4)
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi movl %cr4, %eax
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi ret
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi SET_SIZE(kmdb_unix_getcr4)
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi#endif /* __i386 */
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi
799823bbed51a695d01e13511bbb1369980bb714Robert Mustacchi#endif /* __lint */