⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ps3-hvcall.s

📁 linux 内核源代码
💻 S
字号:
/* *  PS3 bootwrapper hvcalls. * *  Copyright (C) 2007 Sony Computer Entertainment Inc. *  Copyright 2007 Sony Corp. * *  This program is free software; you can redistribute it and/or modify *  it under the terms of the GNU General Public License as published by *  the Free Software Foundation; version 2 of the License. * *  This program is distributed in the hope that it will be useful, *  but WITHOUT ANY WARRANTY; without even the implied warranty of *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *  GNU General Public License for more details. * *  You should have received a copy of the GNU General Public License *  along with this program; if not, write to the Free Software *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */#include "ppc_asm.h"	.machine "ppc64"/* * The PS3 hypervisor uses a 64 bit "C" language calling convention. * The routines here marshal arguments between the 32 bit wrapper * program and the 64 bit hvcalls. * *  wrapper           lv1 *  32-bit (h,l)      64-bit * *  1: r3,r4          <-> r3 *  2: r5,r6          <-> r4 *  3: r7,r8          <-> r5 *  4: r9,r10         <-> r6 *  5: 8(r1),12(r1)   <-> r7 *  6: 16(r1),20(r1)  <-> r8 *  7: 24(r1),28(r1)  <-> r9 *  8: 32(r1),36(r1)  <-> r10 * */.macro GLOBAL name	.section ".text"	.balign 4	.globl \name\name:.endm.macro NO_SUPPORT name	GLOBAL \name	b ps3_no_support.endm.macro HVCALL num	li r11, \num	.long 0x44000022	extsw r3, r3.endm.macro SAVE_LR offset=4	mflr r0	stw r0, \offset(r1).endm.macro LOAD_LR offset=4	lwz r0, \offset(r1)	mtlr r0.endm.macro LOAD_64_REG target,high,low	sldi r11, \high, 32	or \target, r11, \low.endm.macro LOAD_64_STACK target,offset	ld \target, \offset(r1).endm.macro LOAD_R3	LOAD_64_REG r3,r3,r4.endm.macro LOAD_R4	LOAD_64_REG r4,r5,r6.endm.macro LOAD_R5	LOAD_64_REG r5,r7,r8.endm.macro LOAD_R6	LOAD_64_REG r6,r9,r10.endm.macro LOAD_R7	LOAD_64_STACK r7,8.endm.macro LOAD_R8	LOAD_64_STACK r8,16.endm.macro LOAD_R9	LOAD_64_STACK r9,24.endm.macro LOAD_R10	LOAD_64_STACK r10,32.endm.macro LOAD_REGS_0	stwu 1,-16(1)	stw 3, 8(1).endm.macro LOAD_REGS_5	LOAD_R3	LOAD_R4	LOAD_R5	LOAD_R6	LOAD_R7.endm.macro LOAD_REGS_6	LOAD_REGS_5	LOAD_R8.endm.macro LOAD_REGS_8	LOAD_REGS_6	LOAD_R9	LOAD_R10.endm.macro STORE_REGS_0_1	lwz r11, 8(r1)	std r4, 0(r11)	mr r4, r3	li r3, 0	addi r1,r1,16.endm.macro STORE_REGS_5_2	lwz r11, 16(r1)	std r4, 0(r11)	lwz r11, 24(r1)	std r5, 0(r11).endm.macro STORE_REGS_6_1	lwz r11, 24(r1)	std r4, 0(r11).endmGLOBAL lv1_get_logical_ppe_id	SAVE_LR	LOAD_REGS_0	HVCALL 69	STORE_REGS_0_1	LOAD_LR	blrGLOBAL lv1_get_logical_partition_id	SAVE_LR	LOAD_REGS_0	HVCALL 74	STORE_REGS_0_1	LOAD_LR	blrGLOBAL lv1_get_repository_node_value	SAVE_LR	LOAD_REGS_5	HVCALL 91	STORE_REGS_5_2	LOAD_LR	blrGLOBAL lv1_panic	SAVE_LR	LOAD_REGS_8	HVCALL 255	LOAD_LR	blr

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -