cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

dcr-mmio.h (1026B)


      1/* SPDX-License-Identifier: GPL-2.0-or-later */
      2/*
      3 * (c) Copyright 2006 Benjamin Herrenschmidt, IBM Corp.
      4 *                    <benh@kernel.crashing.org>
      5 */
      6
      7#ifndef _ASM_POWERPC_DCR_MMIO_H
      8#define _ASM_POWERPC_DCR_MMIO_H
      9#ifdef __KERNEL__
     10
     11#include <asm/io.h>
     12
     13typedef struct {
     14	void __iomem *token;
     15	unsigned int stride;
     16	unsigned int base;
     17} dcr_host_mmio_t;
     18
     19static inline bool dcr_map_ok_mmio(dcr_host_mmio_t host)
     20{
     21	return host.token != NULL;
     22}
     23
     24extern dcr_host_mmio_t dcr_map_mmio(struct device_node *dev,
     25				    unsigned int dcr_n,
     26				    unsigned int dcr_c);
     27extern void dcr_unmap_mmio(dcr_host_mmio_t host, unsigned int dcr_c);
     28
     29static inline u32 dcr_read_mmio(dcr_host_mmio_t host, unsigned int dcr_n)
     30{
     31	return in_be32(host.token + ((host.base + dcr_n) * host.stride));
     32}
     33
     34static inline void dcr_write_mmio(dcr_host_mmio_t host,
     35				  unsigned int dcr_n,
     36				  u32 value)
     37{
     38	out_be32(host.token + ((host.base + dcr_n) * host.stride), value);
     39}
     40
     41#endif /* __KERNEL__ */
     42#endif /* _ASM_POWERPC_DCR_MMIO_H */
     43
     44