OXIESEC PANEL
- Current Dir:
/
/
usr
/
src
/
linux-headers-4.15.0-213
/
arch
/
ia64
/
include
/
asm
/
sn
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
05/09/2024 07:14:16 AM
rwxr-xr-x
📄
acpi.h
423 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
addrs.h
9.69 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
arch.h
2.72 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
bte.h
7.61 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
clksupport.h
844 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
geo.h
3.51 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
intr.h
2.24 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
io.h
5.68 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
ioc3.h
7.91 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
klconfig.h
10.15 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
l1.h
2.28 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
leds.h
819 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
module.h
4.01 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
mspec.h
1.78 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
nodepda.h
2.21 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
pcibr_provider.h
5.52 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
pcibus_provider_defs.h
2.16 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
pcidev.h
3.05 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
pda.h
1.94 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
pic.h
9.06 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
rw_mmr.h
944 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
shub_mmr.h
26.25 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
shubio.h
127.34 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
simulator.h
917 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📁
sn2
-
05/09/2024 07:14:16 AM
rwxr-xr-x
📄
sn_cpuid.h
4.24 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
sn_feature_sets.h
1.61 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
sn_sal.h
33.14 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
tioca.h
20.21 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
tioca_provider.h
6 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
tioce.h
29.87 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
tioce_provider.h
1.49 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
tiocp.h
8.3 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
tiocx.h
2.24 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
types.h
957 bytes
01/28/2018 09:20:33 PM
rw-r--r--
Editing: io.h
Close
/* * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive * for more details. * * Copyright (C) 2000-2004 Silicon Graphics, Inc. All rights reserved. */ #ifndef _ASM_SN_IO_H #define _ASM_SN_IO_H #include <linux/compiler.h> #include <asm/intrinsics.h> extern void * sn_io_addr(unsigned long port) __attribute_const__; /* Forward definition */ extern void __sn_mmiowb(void); /* Forward definition */ extern int num_cnodes; #define __sn_mf_a() ia64_mfa() extern void sn_dma_flush(unsigned long); #define __sn_inb ___sn_inb #define __sn_inw ___sn_inw #define __sn_inl ___sn_inl #define __sn_outb ___sn_outb #define __sn_outw ___sn_outw #define __sn_outl ___sn_outl #define __sn_readb ___sn_readb #define __sn_readw ___sn_readw #define __sn_readl ___sn_readl #define __sn_readq ___sn_readq #define __sn_readb_relaxed ___sn_readb_relaxed #define __sn_readw_relaxed ___sn_readw_relaxed #define __sn_readl_relaxed ___sn_readl_relaxed #define __sn_readq_relaxed ___sn_readq_relaxed /* * Convenience macros for setting/clearing bits using the above accessors */ #define __sn_setq_relaxed(addr, val) \ writeq((__sn_readq_relaxed(addr) | (val)), (addr)) #define __sn_clrq_relaxed(addr, val) \ writeq((__sn_readq_relaxed(addr) & ~(val)), (addr)) /* * The following routines are SN Platform specific, called when * a reference is made to inX/outX set macros. SN Platform * inX set of macros ensures that Posted DMA writes on the * Bridge is flushed. * * The routines should be self explainatory. */ static inline unsigned int ___sn_inb (unsigned long port) { volatile unsigned char *addr; unsigned char ret = -1; if ((addr = sn_io_addr(port))) { ret = *addr; __sn_mf_a(); sn_dma_flush((unsigned long)addr); } return ret; } static inline unsigned int ___sn_inw (unsigned long port) { volatile unsigned short *addr; unsigned short ret = -1; if ((addr = sn_io_addr(port))) { ret = *addr; __sn_mf_a(); sn_dma_flush((unsigned long)addr); } return ret; } static inline unsigned int ___sn_inl (unsigned long port) { volatile unsigned int *addr; unsigned int ret = -1; if ((addr = sn_io_addr(port))) { ret = *addr; __sn_mf_a(); sn_dma_flush((unsigned long)addr); } return ret; } static inline void ___sn_outb (unsigned char val, unsigned long port) { volatile unsigned char *addr; if ((addr = sn_io_addr(port))) { *addr = val; __sn_mmiowb(); } } static inline void ___sn_outw (unsigned short val, unsigned long port) { volatile unsigned short *addr; if ((addr = sn_io_addr(port))) { *addr = val; __sn_mmiowb(); } } static inline void ___sn_outl (unsigned int val, unsigned long port) { volatile unsigned int *addr; if ((addr = sn_io_addr(port))) { *addr = val; __sn_mmiowb(); } } /* * The following routines are SN Platform specific, called when * a reference is made to readX/writeX set macros. SN Platform * readX set of macros ensures that Posted DMA writes on the * Bridge is flushed. * * The routines should be self explainatory. */ static inline unsigned char ___sn_readb (const volatile void __iomem *addr) { unsigned char val; val = *(volatile unsigned char __force *)addr; __sn_mf_a(); sn_dma_flush((unsigned long)addr); return val; } static inline unsigned short ___sn_readw (const volatile void __iomem *addr) { unsigned short val; val = *(volatile unsigned short __force *)addr; __sn_mf_a(); sn_dma_flush((unsigned long)addr); return val; } static inline unsigned int ___sn_readl (const volatile void __iomem *addr) { unsigned int val; val = *(volatile unsigned int __force *)addr; __sn_mf_a(); sn_dma_flush((unsigned long)addr); return val; } static inline unsigned long ___sn_readq (const volatile void __iomem *addr) { unsigned long val; val = *(volatile unsigned long __force *)addr; __sn_mf_a(); sn_dma_flush((unsigned long)addr); return val; } /* * For generic and SN2 kernels, we have a set of fast access * PIO macros. These macros are provided on SN Platform * because the normal inX and readX macros perform an * additional task of flushing Post DMA request on the Bridge. * * These routines should be self explainatory. */ static inline unsigned int sn_inb_fast (unsigned long port) { volatile unsigned char *addr = (unsigned char *)port; unsigned char ret; ret = *addr; __sn_mf_a(); return ret; } static inline unsigned int sn_inw_fast (unsigned long port) { volatile unsigned short *addr = (unsigned short *)port; unsigned short ret; ret = *addr; __sn_mf_a(); return ret; } static inline unsigned int sn_inl_fast (unsigned long port) { volatile unsigned int *addr = (unsigned int *)port; unsigned int ret; ret = *addr; __sn_mf_a(); return ret; } static inline unsigned char ___sn_readb_relaxed (const volatile void __iomem *addr) { return *(volatile unsigned char __force *)addr; } static inline unsigned short ___sn_readw_relaxed (const volatile void __iomem *addr) { return *(volatile unsigned short __force *)addr; } static inline unsigned int ___sn_readl_relaxed (const volatile void __iomem *addr) { return *(volatile unsigned int __force *) addr; } static inline unsigned long ___sn_readq_relaxed (const volatile void __iomem *addr) { return *(volatile unsigned long __force *) addr; } struct pci_dev; static inline int sn_pci_set_vchan(struct pci_dev *pci_dev, unsigned long *addr, int vchan) { if (vchan > 1) { return -1; } if (!(*addr >> 32)) /* Using a mask here would be cleaner */ return 0; /* but this generates better code */ if (vchan == 1) { /* Set Bit 57 */ *addr |= (1UL << 57); } else { /* Clear Bit 57 */ *addr &= ~(1UL << 57); } return 0; } #endif /* _ASM_SN_IO_H */