machdep.h revision 1.3
11.3Sskrll/* $NetBSD: machdep.h,v 1.3 2022/10/16 06:14:53 skrll Exp $ */ 21.1Sskrll 31.1Sskrll/*- 41.1Sskrll * Copyright (c) 2022 The NetBSD Foundation, Inc. 51.1Sskrll * All rights reserved. 61.1Sskrll * 71.1Sskrll * This code is derived from software contributed to The NetBSD Foundation 81.1Sskrll * by Nick Hudson 91.1Sskrll * 101.1Sskrll * Redistribution and use in source and binary forms, with or without 111.1Sskrll * modification, are permitted provided that the following conditions 121.1Sskrll * are met: 131.1Sskrll * 1. Redistributions of source code must retain the above copyright 141.1Sskrll * notice, this list of conditions and the following disclaimer. 151.1Sskrll * 2. Redistributions in binary form must reproduce the above copyright 161.1Sskrll * notice, this list of conditions and the following disclaimer in the 171.1Sskrll * documentation and/or other materials provided with the distribution. 181.1Sskrll * 191.1Sskrll * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 201.1Sskrll * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 211.1Sskrll * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 221.1Sskrll * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 231.1Sskrll * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 241.1Sskrll * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 251.1Sskrll * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 261.1Sskrll * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 271.1Sskrll * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 281.1Sskrll * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 291.1Sskrll * POSSIBILITY OF SUCH DAMAGE. 301.1Sskrll */ 311.1Sskrll 321.1Sskrll#ifndef _RISCV_MACHDEP_H_ 331.1Sskrll#define _RISCV_MACHDEP_H_ 341.1Sskrll 351.1Sskrll#include <sys/cdefs.h> 361.3Sskrll__KERNEL_RCSID(0, "$NetBSD: machdep.h,v 1.3 2022/10/16 06:14:53 skrll Exp $"); 371.1Sskrll 381.1Sskrll#include <sys/proc.h> 391.1Sskrll#include <sys/lwp.h> 401.1Sskrll#include <sys/siginfo.h> 411.1Sskrll 421.1Sskrllstatic inline paddr_t 431.1Sskrllriscv_kern_vtophys(vaddr_t va) 441.1Sskrll{ 451.1Sskrll extern unsigned long kern_vtopdiff; 461.1Sskrll 471.1Sskrll return va - kern_vtopdiff; 481.1Sskrll} 491.1Sskrll 501.1Sskrllstatic inline vaddr_t 511.1Sskrllriscv_kern_phystov(paddr_t pa) 521.1Sskrll{ 531.1Sskrll extern unsigned long kern_vtopdiff; 541.1Sskrll 551.1Sskrll return pa + kern_vtopdiff; 561.1Sskrll} 571.1Sskrll 581.1Sskrll#define KERN_VTOPHYS(va) riscv_kern_vtophys((vaddr_t)va) 591.1Sskrll#define KERN_PHYSTOV(pa) riscv_kern_phystov((paddr_t)pa) 601.1Sskrll 611.1Sskrll 621.1Sskrllvoid uartputc(int); 631.2Sskrllint uartgetc(void); 641.1Sskrll 651.1Sskrllpaddr_t init_mmu(paddr_t); 661.3Sskrllvoid init_riscv(register_t, paddr_t); 671.1Sskrll 681.1Sskrll 691.1Sskrll#endif /* _RISCV_MACHDEP_H_ */ 70