mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-21 04:53:46 -04:00
powerpc/vdso: Merge vdso64 and vdso32 into a single directory
merge vdso64 into vdso32 and rename it vdso. Reported-by: kernel test robot <lkp@intel.com> Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/4dbe05cc130f6a0858d09ac72e436c373cb08b70.1642782130.git.christophe.leroy@csgroup.eu
This commit is contained in:
committed by
Michael Ellerman
parent
d88378d8d2
commit
fd1feade75
64
arch/powerpc/kernel/vdso/datapage.S
Normal file
64
arch/powerpc/kernel/vdso/datapage.S
Normal file
@@ -0,0 +1,64 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* Access to the shared data page by the vDSO & syscall map
|
||||
*
|
||||
* Copyright (C) 2004 Benjamin Herrenschmuidt (benh@kernel.crashing.org), IBM Corp.
|
||||
*/
|
||||
|
||||
#include <asm/processor.h>
|
||||
#include <asm/ppc_asm.h>
|
||||
#include <asm/asm-offsets.h>
|
||||
#include <asm/unistd.h>
|
||||
#include <asm/vdso.h>
|
||||
#include <asm/vdso_datapage.h>
|
||||
|
||||
.text
|
||||
|
||||
/*
|
||||
* void *__kernel_get_syscall_map(unsigned int *syscall_count) ;
|
||||
*
|
||||
* returns a pointer to the syscall map. the map is agnostic to the
|
||||
* size of "long", unlike kernel bitops, it stores bits from top to
|
||||
* bottom so that memory actually contains a linear bitmap
|
||||
* check for syscall N by testing bit (0x80000000 >> (N & 0x1f)) of
|
||||
* 32 bits int at N >> 5.
|
||||
*/
|
||||
V_FUNCTION_BEGIN(__kernel_get_syscall_map)
|
||||
.cfi_startproc
|
||||
mflr r12
|
||||
.cfi_register lr,r12
|
||||
mr. r4,r3
|
||||
get_datapage r3
|
||||
mtlr r12
|
||||
#ifdef __powerpc64__
|
||||
addi r3,r3,CFG_SYSCALL_MAP64
|
||||
#else
|
||||
addi r3,r3,CFG_SYSCALL_MAP32
|
||||
#endif
|
||||
crclr cr0*4+so
|
||||
beqlr
|
||||
li r0,NR_syscalls
|
||||
stw r0,0(r4)
|
||||
blr
|
||||
.cfi_endproc
|
||||
V_FUNCTION_END(__kernel_get_syscall_map)
|
||||
|
||||
/*
|
||||
* void unsigned long long __kernel_get_tbfreq(void);
|
||||
*
|
||||
* returns the timebase frequency in HZ
|
||||
*/
|
||||
V_FUNCTION_BEGIN(__kernel_get_tbfreq)
|
||||
.cfi_startproc
|
||||
mflr r12
|
||||
.cfi_register lr,r12
|
||||
get_datapage r3
|
||||
#ifndef __powerpc64__
|
||||
lwz r4,(CFG_TB_TICKS_PER_SEC + 4)(r3)
|
||||
#endif
|
||||
PPC_LL r3,CFG_TB_TICKS_PER_SEC(r3)
|
||||
mtlr r12
|
||||
crclr cr0*4+so
|
||||
blr
|
||||
.cfi_endproc
|
||||
V_FUNCTION_END(__kernel_get_tbfreq)
|
||||
Reference in New Issue
Block a user