OXIESEC PANEL
- Current Dir:
/
/
usr
/
src
/
linux-headers-4.15.0-197
/
arch
/
s390
/
include
/
asm
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
11/17/2022 06:42:16 AM
rwxr-xr-x
📄
Kbuild
557 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
airq.h
3.02 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
alternative-asm.h
3.07 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
alternative.h
4.99 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
ap.h
9.9 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
appldata.h
1.54 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
archrandom.h
1.1 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
asm-prototypes.h
227 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
atomic.h
5.1 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
atomic_ops.h
4.02 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
barrier.h
1.84 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
bitops.h
10.13 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
bug.h
1.49 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
bugs.h
441 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
cache.h
387 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
ccwdev.h
7.99 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
ccwgroup.h
2.53 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
checksum.h
3.24 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
chpid.h
974 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
cio.h
8.01 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
clp.h
1.32 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
cmb.h
425 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
cmpxchg.h
1.76 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
compat.h
7.9 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
cpacf.h
16.8 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
cpcmd.h
1.11 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
cpu.h
549 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
cpu_mf.h
8.99 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
cpufeature.h
963 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
cputime.h
805 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
crw.h
1.86 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
css_chars.h
769 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
ctl_reg.h
2.89 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
current.h
405 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
debug.h
8.1 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
delay.h
721 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
diag.h
5.94 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
dis.h
637 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
dma-mapping.h
621 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
dma.h
456 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
eadm.h
2.03 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
ebcdic.h
1.41 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
elf.h
10.36 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
exec.h
269 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
extable.h
875 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
extmem.h
804 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
facility.h
2.44 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
fcx.h
7.91 KB
01/28/2018 09:20:33 PM
rw-r--r--
📁
fpu
-
11/17/2022 06:42:21 AM
rwxr-xr-x
📄
ftrace.h
1.66 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
futex.h
2.07 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
gmap.h
4.93 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
hardirq.h
670 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
hugetlb.h
2.82 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
hw_irq.h
249 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
idals.h
5.22 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
idle.h
709 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
io.h
2.03 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
ipl.h
3.6 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
irq.h
2.55 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
irqflags.h
1.76 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
isc.h
1000 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
itcw.h
950 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
jump_label.h
1.36 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
kdebug.h
386 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
kexec.h
1.32 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
kprobes.h
2.24 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
kvm_host.h
22.24 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
kvm_para.h
5.78 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
linkage.h
633 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
livepatch.h
461 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
lowcore.h
6.29 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
mmu.h
1.19 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
mmu_context.h
3.84 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
mmzone.h
316 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
module.h
802 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
nmi.h
3.44 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
nospec-branch.h
342 bytes
11/01/2022 04:52:05 PM
rw-r--r--
📄
nospec-insn.h
3.81 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
numa.h
730 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
os_info.h
1.1 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
page-states.h
486 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
page.h
5.12 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
pci.h
6.26 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
pci_clp.h
4.25 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
pci_debug.h
608 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
pci_dma.h
5.7 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
pci_insn.h
2.59 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
pci_io.h
4.58 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
percpu.h
6.43 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
perf_event.h
2.71 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
pgalloc.h
4.32 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
pgtable.h
47.7 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
pkey.h
4.23 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
preempt.h
3.25 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
processor.h
10.42 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
ptrace.h
5.27 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
qdio.h
11.67 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
reset.h
471 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
runtime_instr.h
1.76 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
schid.h
525 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
sclp.h
3.38 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
scsw.h
24.1 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
seccomp.h
516 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
sections.h
155 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
segment.h
93 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
serial.h
147 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
set_memory.h
779 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
setup.h
4.44 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
shmparam.h
285 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
signal.h
644 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
sigp.h
1.8 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
smp.h
2.45 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
sparsemem.h
214 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
spinlock.h
3.53 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
spinlock_types.h
437 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
stp.h
1.26 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
string.h
4.5 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
switch_to.h
1.37 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
syscall.h
2.63 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
sysinfo.h
4.22 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
termios.h
685 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
thread_info.h
3.15 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
timex.h
6.15 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
tlb.h
5.71 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
tlbflush.h
3.52 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
topology.h
2.69 KB
11/01/2022 04:52:05 PM
rw-r--r--
📁
trace
-
11/17/2022 06:42:21 AM
rwxr-xr-x
📄
uaccess.h
6.57 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
unistd.h
1.03 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
uprobes.h
588 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
user.h
3.3 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
vdso.h
1.8 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
vga.h
170 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
vtime.h
182 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
vtimer.h
866 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
vx-insn.h
10.66 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
xor.h
454 bytes
01/28/2018 09:20:33 PM
rw-r--r--
Editing: timex.h
Close
/* SPDX-License-Identifier: GPL-2.0 */ /* * S390 version * Copyright IBM Corp. 1999 * * Derived from "include/asm-i386/timex.h" * Copyright (C) 1992, Linus Torvalds */ #ifndef _ASM_S390_TIMEX_H #define _ASM_S390_TIMEX_H #include <linux/preempt.h> #include <linux/time64.h> #include <asm/lowcore.h> /* The value of the TOD clock for 1.1.1970. */ #define TOD_UNIX_EPOCH 0x7d91048bca000000ULL extern u64 clock_comparator_max; /* Inline functions for clock register access. */ static inline int set_tod_clock(__u64 time) { int cc; asm volatile( " sck %1\n" " ipm %0\n" " srl %0,28\n" : "=d" (cc) : "Q" (time) : "cc"); return cc; } static inline int store_tod_clock(__u64 *time) { int cc; asm volatile( " stck %1\n" " ipm %0\n" " srl %0,28\n" : "=d" (cc), "=Q" (*time) : : "cc"); return cc; } static inline void set_clock_comparator(__u64 time) { asm volatile("sckc %0" : : "Q" (time)); } static inline void store_clock_comparator(__u64 *time) { asm volatile("stckc %0" : "=Q" (*time)); } void clock_comparator_work(void); void __init time_early_init(void); extern unsigned char ptff_function_mask[16]; /* Function codes for the ptff instruction. */ #define PTFF_QAF 0x00 /* query available functions */ #define PTFF_QTO 0x01 /* query tod offset */ #define PTFF_QSI 0x02 /* query steering information */ #define PTFF_QUI 0x04 /* query UTC information */ #define PTFF_ATO 0x40 /* adjust tod offset */ #define PTFF_STO 0x41 /* set tod offset */ #define PTFF_SFS 0x42 /* set fine steering rate */ #define PTFF_SGS 0x43 /* set gross steering rate */ /* Query TOD offset result */ struct ptff_qto { unsigned long long physical_clock; unsigned long long tod_offset; unsigned long long logical_tod_offset; unsigned long long tod_epoch_difference; } __packed; static inline int ptff_query(unsigned int nr) { unsigned char *ptr; ptr = ptff_function_mask + (nr >> 3); return (*ptr & (0x80 >> (nr & 7))) != 0; } /* Query UTC information result */ struct ptff_qui { unsigned int tm : 2; unsigned int ts : 2; unsigned int : 28; unsigned int pad_0x04; unsigned long leap_event; short old_leap; short new_leap; unsigned int pad_0x14; unsigned long prt[5]; unsigned long cst[3]; unsigned int skew; unsigned int pad_0x5c[41]; } __packed; /* * ptff - Perform timing facility function * @ptff_block: Pointer to ptff parameter block * @len: Length of parameter block * @func: Function code * Returns: Condition code (0 on success) */ #define ptff(ptff_block, len, func) \ ({ \ struct addrtype { char _[len]; }; \ register unsigned int reg0 asm("0") = func; \ register unsigned long reg1 asm("1") = (unsigned long) (ptff_block);\ int rc; \ \ asm volatile( \ " .word 0x0104\n" \ " ipm %0\n" \ " srl %0,28\n" \ : "=d" (rc), "+m" (*(struct addrtype *) reg1) \ : "d" (reg0), "d" (reg1) : "cc"); \ rc; \ }) static inline unsigned long long local_tick_disable(void) { unsigned long long old; old = S390_lowcore.clock_comparator; S390_lowcore.clock_comparator = clock_comparator_max; set_clock_comparator(S390_lowcore.clock_comparator); return old; } static inline void local_tick_enable(unsigned long long comp) { S390_lowcore.clock_comparator = comp; set_clock_comparator(S390_lowcore.clock_comparator); } #define CLOCK_TICK_RATE 1193180 /* Underlying HZ */ #define STORE_CLOCK_EXT_SIZE 16 /* stcke writes 16 bytes */ typedef unsigned long long cycles_t; static inline void get_tod_clock_ext(char *clk) { typedef struct { char _[STORE_CLOCK_EXT_SIZE]; } addrtype; asm volatile("stcke %0" : "=Q" (*(addrtype *) clk) : : "cc"); } static inline unsigned long long get_tod_clock(void) { char clk[STORE_CLOCK_EXT_SIZE]; get_tod_clock_ext(clk); return *((unsigned long long *)&clk[1]); } static inline unsigned long long get_tod_clock_fast(void) { #ifdef CONFIG_HAVE_MARCH_Z9_109_FEATURES unsigned long long clk; asm volatile("stckf %0" : "=Q" (clk) : : "cc"); return clk; #else return get_tod_clock(); #endif } static inline cycles_t get_cycles(void) { return (cycles_t) get_tod_clock() >> 2; } #define get_cycles get_cycles int get_phys_clock(unsigned long *clock); void init_cpu_timer(void); unsigned long long monotonic_clock(void); extern unsigned char tod_clock_base[16] __aligned(8); /** * get_clock_monotonic - returns current time in clock rate units * * The clock and tod_clock_base get changed via stop_machine. * Therefore preemption must be disabled, otherwise the returned * value is not guaranteed to be monotonic. */ static inline unsigned long long get_tod_clock_monotonic(void) { unsigned long long tod; preempt_disable_notrace(); tod = get_tod_clock() - *(unsigned long long *) &tod_clock_base[1]; preempt_enable_notrace(); return tod; } /** * tod_to_ns - convert a TOD format value to nanoseconds * @todval: to be converted TOD format value * Returns: number of nanoseconds that correspond to the TOD format value * * Converting a 64 Bit TOD format value to nanoseconds means that the value * must be divided by 4.096. In order to achieve that we multiply with 125 * and divide by 512: * * ns = (todval * 125) >> 9; * * In order to avoid an overflow with the multiplication we can rewrite this. * With a split todval == 2^9 * th + tl (th upper 55 bits, tl lower 9 bits) * we end up with * * ns = ((2^9 * th + tl) * 125 ) >> 9; * -> ns = (th * 125) + ((tl * 125) >> 9); * */ static inline unsigned long long tod_to_ns(unsigned long long todval) { return ((todval >> 9) * 125) + (((todval & 0x1ff) * 125) >> 9); } /** * tod_after - compare two 64 bit TOD values * @a: first 64 bit TOD timestamp * @b: second 64 bit TOD timestamp * * Returns: true if a is later than b */ static inline int tod_after(unsigned long long a, unsigned long long b) { if (MACHINE_HAS_SCC) return (long long) a > (long long) b; return a > b; } /** * tod_after_eq - compare two 64 bit TOD values * @a: first 64 bit TOD timestamp * @b: second 64 bit TOD timestamp * * Returns: true if a is later than b */ static inline int tod_after_eq(unsigned long long a, unsigned long long b) { if (MACHINE_HAS_SCC) return (long long) a >= (long long) b; return a >= b; } #endif