1 /* 2 * This file and its contents are supplied under the terms of the 3 * Common Development and Distribution License ("CDDL"), version 1.0. 4 * You may only use this file in accordance with the terms of version 5 * 1.0 of the CDDL. 6 * 7 * A full copy of the text of the CDDL should have accompanied this 8 * source. A copy of the CDDL is also available via the Internet at 9 * http://www.illumos.org/license/CDDL. 10 */ 11 12 /* 13 * Copyright 2018 Joyent, Inc. 14 */ 15 16 #if !defined(__lint) 17 .file "unix_sup.s" 18 #endif /* __lint */ 19 20 /* 21 * Support routines for the unix kmdb module 22 */ 23 24 #include <sys/asm_linkage.h> 25 26 #if defined(__lint) 27 28 #include <sys/types.h> 29 30 ulong_t 31 kmdb_unix_getcr0(void) 32 { return (0); } 33 34 ulong_t 35 kmdb_unix_getcr3(void) 36 { return (0); } 37 38 ulong_t 39 kmdb_unix_getcr4(void) 40 { return (0); } 41 42 #else /* __lint */ 43 44 #if defined(__amd64) 45 ENTRY(kmdb_unix_getcr0) 46 movq %cr0, %rax 47 ret 48 SET_SIZE(kmdb_unix_getcr0) 49 50 ENTRY(kmdb_unix_getcr2) 51 movq %cr2, %rax 52 ret 53 SET_SIZE(kmdb_unix_getcr2) 54 55 ENTRY(kmdb_unix_getcr3) 56 movq %cr3, %rax 57 ret 58 SET_SIZE(kmdb_unix_getcr3) 59 60 ENTRY(kmdb_unix_getcr4) 61 movq %cr4, %rax 62 ret 63 SET_SIZE(kmdb_unix_getcr4) 64 65 #elif defined (__i386) 66 ENTRY(kmdb_unix_getcr0) 67 movl %cr0, %eax 68 ret 69 SET_SIZE(kmdb_unix_getcr0) 70 71 ENTRY(kmdb_unix_getcr2) 72 movl %cr2, %eax 73 ret 74 SET_SIZE(kmdb_unix_getcr2) 75 76 ENTRY(kmdb_unix_getcr3) 77 movl %cr3, %eax 78 ret 79 SET_SIZE(kmdb_unix_getcr3) 80 81 ENTRY(kmdb_unix_getcr4) 82 movl %cr4, %eax 83 ret 84 SET_SIZE(kmdb_unix_getcr4) 85 86 #endif /* __i386 */ 87 88 #endif /* __lint */