|
|
1.1 root 1: #define _ASM
2: #define __ASSEMBLY__
3: #include "macros.h"
4: #include "libhvcall.h"
5:
6: #define HVCALL .long 0x44000022
7:
8: .text
9: .align 3
10:
11: ENTRY(hv_generic)
12: HVCALL
13: blr
14:
15: ENTRY(hv_putchar)
16: sldi r6,r3,(24+32)
17: li r3,H_PUT_TERM_CHAR
18: li r4,0
19: li r5,1
20: HVCALL
21: blr
22:
23: ENTRY(hv_getchar)
24: mflr r10
25: bl .hv_haschar
26: mtlr r10
27: cmpwi cr0,r3,0
28: beqlr
29: lis r9,inbuf@h
30: ori r9,r9,inbuf@l
31: lwz r4,20(r9)
32: lbzx r3,r4,r9
33: addi r4,r4,1
34: stw r4,20(r9)
35: blr
36:
37: ENTRY(hv_haschar)
38: li r3,-1
39: lis r9,inbuf@h
40: ori r9,r9,inbuf@l
41: lwz r5,16(r9)
42: lwz r6,20(r9)
43: cmplw cr0,r5,r6
44: bnelr
45: li r3,H_GET_TERM_CHAR
46: li r4,0
47: HVCALL
48: lis r9,inbuf@h
49: ori r9,r9,inbuf@l
50: stw r4,16(r9)
51: li r3,0
52: stw r3,20(r9)
53: cmplwi cr0,r4,0
54: beqlr
55: li r3,-1
56: std r5,0(r9)
57: std r6,8(r9)
58: blr
59:
60: ENTRY(hv_send_crq)
61: ld r5,0(r4)
62: ld r6,8(r4)
63: mr r4,r3
64: li r3,H_SEND_CRQ
65: HVCALL
66: blr
67:
68: ENTRY(hv_send_logical_lan)
69: li r11,0 /* no continue token for now */
70: mr r10,r9
71: mr r9,r8
72: mr r8,r7
73: mr r7,r6
74: mr r6,r5
75: mr r5,r4
76: mr r4,r3
77: li r3,H_SEND_LOGICAL_LAN
78: HVCALL
79: blr
80:
81: .section ".bss"
82: inbuf: .space 16
83: inlen: .space 4
84: inpos: .space 4
85: .text
86:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.