18d7e7a98SRuslan Bukin /*- 28d7e7a98SRuslan Bukin * Copyright (c) 2014 EMC Corp. 38d7e7a98SRuslan Bukin * Author: Conrad Meyer <conrad.meyer@isilon.com> 48d7e7a98SRuslan Bukin * All rights reserved. 58d7e7a98SRuslan Bukin * 68d7e7a98SRuslan Bukin * Redistribution and use in source and binary forms, with or without 78d7e7a98SRuslan Bukin * modification, are permitted provided that the following conditions 88d7e7a98SRuslan Bukin * are met: 98d7e7a98SRuslan Bukin * 1. Redistributions of source code must retain the above copyright 108d7e7a98SRuslan Bukin * notice, this list of conditions and the following disclaimer. 118d7e7a98SRuslan Bukin * 2. Redistributions in binary form must reproduce the above copyright 128d7e7a98SRuslan Bukin * notice, this list of conditions and the following disclaimer in the 138d7e7a98SRuslan Bukin * documentation and/or other materials provided with the distribution. 148d7e7a98SRuslan Bukin * 158d7e7a98SRuslan Bukin * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 168d7e7a98SRuslan Bukin * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 178d7e7a98SRuslan Bukin * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 188d7e7a98SRuslan Bukin * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 198d7e7a98SRuslan Bukin * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 208d7e7a98SRuslan Bukin * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 218d7e7a98SRuslan Bukin * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 228d7e7a98SRuslan Bukin * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 238d7e7a98SRuslan Bukin * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 248d7e7a98SRuslan Bukin * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 258d7e7a98SRuslan Bukin * SUCH DAMAGE. 268d7e7a98SRuslan Bukin * 278d7e7a98SRuslan Bukin * $FreeBSD$ 288d7e7a98SRuslan Bukin */ 298d7e7a98SRuslan Bukin 308d7e7a98SRuslan Bukin #ifndef _MACHINE_DUMP_H_ 318d7e7a98SRuslan Bukin #define _MACHINE_DUMP_H_ 328d7e7a98SRuslan Bukin 338d7e7a98SRuslan Bukin #define KERNELDUMP_ARCH_VERSION KERNELDUMP_RISCV_VERSION 348d7e7a98SRuslan Bukin #define EM_VALUE EM_RISCV 358d7e7a98SRuslan Bukin 368d7e7a98SRuslan Bukin /* 20 phys_avail entry pairs correspond to 10 pa's */ 378d7e7a98SRuslan Bukin #define DUMPSYS_MD_PA_NPAIRS 10 388d7e7a98SRuslan Bukin #define DUMPSYS_NUM_AUX_HDRS 0 398d7e7a98SRuslan Bukin 40ab4ed843SMitchell Horne /* How often to check the dump progress bar? */ 41ab4ed843SMitchell Horne #define DUMPSYS_PB_CHECK_BITS 22 /* Every 4MB */ 42ab4ed843SMitchell Horne 438d7e7a98SRuslan Bukin static inline void 448d7e7a98SRuslan Bukin dumpsys_pa_init(void) 458d7e7a98SRuslan Bukin { 468d7e7a98SRuslan Bukin 478d7e7a98SRuslan Bukin dumpsys_gen_pa_init(); 488d7e7a98SRuslan Bukin } 498d7e7a98SRuslan Bukin 508d7e7a98SRuslan Bukin static inline struct dump_pa * 518d7e7a98SRuslan Bukin dumpsys_pa_next(struct dump_pa *p) 528d7e7a98SRuslan Bukin { 538d7e7a98SRuslan Bukin 548d7e7a98SRuslan Bukin return (dumpsys_gen_pa_next(p)); 558d7e7a98SRuslan Bukin } 568d7e7a98SRuslan Bukin 578d7e7a98SRuslan Bukin static inline void 588d7e7a98SRuslan Bukin dumpsys_wbinv_all(void) 598d7e7a98SRuslan Bukin { 608d7e7a98SRuslan Bukin 618d7e7a98SRuslan Bukin dumpsys_gen_wbinv_all(); 628d7e7a98SRuslan Bukin } 638d7e7a98SRuslan Bukin 648d7e7a98SRuslan Bukin static inline void 658d7e7a98SRuslan Bukin dumpsys_unmap_chunk(vm_paddr_t pa, size_t s, void *va) 668d7e7a98SRuslan Bukin { 678d7e7a98SRuslan Bukin 688d7e7a98SRuslan Bukin dumpsys_gen_unmap_chunk(pa, s, va); 698d7e7a98SRuslan Bukin } 708d7e7a98SRuslan Bukin 718d7e7a98SRuslan Bukin static inline int 728d7e7a98SRuslan Bukin dumpsys_write_aux_headers(struct dumperinfo *di) 738d7e7a98SRuslan Bukin { 748d7e7a98SRuslan Bukin 758d7e7a98SRuslan Bukin return (dumpsys_gen_write_aux_headers(di)); 768d7e7a98SRuslan Bukin } 778d7e7a98SRuslan Bukin 788d7e7a98SRuslan Bukin static inline int 798d7e7a98SRuslan Bukin dumpsys(struct dumperinfo *di) 808d7e7a98SRuslan Bukin { 818d7e7a98SRuslan Bukin 828d7e7a98SRuslan Bukin return (dumpsys_generic(di)); 838d7e7a98SRuslan Bukin } 848d7e7a98SRuslan Bukin 858d7e7a98SRuslan Bukin #endif /* !_MACHINE_DUMP_H_ */ 86