summaryrefslogtreecommitdiff
path: root/databases/mysql-server/patches/patch-aj
blob: 1dd7b4a3d6afed243dae07809f686d791f1ed473 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
$NetBSD: patch-aj,v 1.5 2002/03/25 15:19:31 briggs Exp $

*** mit-pthreads/machdep/syscall-powerpc-netbsd.S	Thu Feb 14 12:30:14 2002
--- mit-pthreads/machdep/syscall-powerpc-netbsd.S	Mon Mar 25 09:52:47 2002
***************
*** 1,10 ****
  #include <machine/asm.h>
  #define COMPAT_43
  #include <sys/syscall.h>
- #ifndef __CONCAT
- #include <sys/cdefs.h>
- #endif
- #define        CONCAT          __CONCAT
  
  #undef SYSCALL
  
--- 1,6 ----
***************
*** 26,45 ****
     SYSCALL invocation.  */
  
  ENTRY(machdep_cerror)
! 	mflr    0		# Save LR in 0
! 	stwu	1,-16(1)	# allocate new stack frame
! 	stw	0,20(1)		# Stash 0 in stack
! 	stw	31,8(1)		# Stash 31 in stack (since it's callee-saved
! 	mr	31,3		# and we stash return there)
  	bl	PIC_PLT(_C_LABEL(__errno))
! 	stw	31,0(3)		# *errno() = err
! 	lwz	0,20(1)		# Restore LR from stack to 0
! 	neg	3,31		# return -errno to 3
! 	lwz	31,8(1)		# Restore 31 from stack
  	mtlr	0
! 	la	1,16(1)		# Restore stack frame
! 	li	4,-1		# Put -1 in r4 for those syscalls that return
! 	blr			# two values
  
  /* The fork system call is special...  */
  ENTRY(machdep_sys_fork)
--- 22,41 ----
     SYSCALL invocation.  */
  
  ENTRY(machdep_cerror)
! 	mflr    0		/* Save LR in 0 */
! 	stwu	1,-16(1)	/* allocate new stack frame */
! 	stw	0,20(1)		/* Stash 0 in stack */
! 	stw	31,8(1)		/* Stash 31 in stack (since it's callee-saved */
! 	mr	31,3		/* and we stash return there) */
  	bl	PIC_PLT(_C_LABEL(__errno))
! 	stw	31,0(3)		/* *errno() = err */
! 	lwz	0,20(1)		/* Restore LR from stack to 0 */
! 	neg	3,31		/* return -errno to 3 */
! 	lwz	31,8(1)		/* Restore 31 from stack */
  	mtlr	0
! 	la	1,16(1)		/* Restore stack frame */
! 	li	4,-1		/* Put -1 in r4 for those syscalls that ret */
! 	blr			/* two values */
  
  /* The fork system call is special...  */
  ENTRY(machdep_sys_fork)
***************
*** 55,64 ****
  	li	0,SYS_pipe
  	sc
  	bso	PIC_PLT(_C_LABEL(machdep_cerror))
! 	stw	3,0(5)		# Success, store fds
  	stw	4,4(5)
  	li	3,0
! 	blr			# And return 0
  
  #ifndef SYS___sigsuspend14
  /* The sigsuspend system call is special... */
--- 51,60 ----
  	li	0,SYS_pipe
  	sc
  	bso	PIC_PLT(_C_LABEL(machdep_cerror))
! 	stw	3,0(5)		/* Success, store fds */
  	stw	4,4(5)
  	li	3,0
! 	blr			/* And return 0 */
  
  #ifndef SYS___sigsuspend14
  /* The sigsuspend system call is special... */
***************
*** 72,91 ****
  #ifndef SYS___sigprocmask14
  /* The sigprocmask system call is special... */
  ENTRY(machdep_sys_sigprocmask)
! 	or.	4,4,4		# Set == NULL ?
! 	li	6,1		# how = SIG_BLOCK
  	beq	Ldoit
! 	lwz	4,0(4)		# if not, replace it in r4 with #set
  	mr	6,3
! Ldoit:	mr	3,6		# ... using sigprocmask(SIG_BLOCK)
  	li	0,SYS_compat_13_sigprocmask13
  	sc
  	bso	PIC_PLT(_C_LABEL(machdep_cerror))
! 	or.	5,5,5		# Check to see if oset requested
! 	beq	Ldone		# if oset != NULL
! 	stw	3,0(5)		#   *oset = oldmask
  Ldone:
! 	li	3,0		# return 0
  	blr
  #endif /* SYS_sigprocmask14 */
  
--- 68,87 ----
  #ifndef SYS___sigprocmask14
  /* The sigprocmask system call is special... */
  ENTRY(machdep_sys_sigprocmask)
! 	or.	4,4,4		/* Set == NULL ? */
! 	li	6,1		/* how = SIG_BLOCK */
  	beq	Ldoit
! 	lwz	4,0(4)		/* if not, replace it in r4 with #set */
  	mr	6,3
! Ldoit:	mr	3,6		/* ... using sigprocmask(SIG_BLOCK) */
  	li	0,SYS_compat_13_sigprocmask13
  	sc
  	bso	PIC_PLT(_C_LABEL(machdep_cerror))
! 	or.	5,5,5		/* Check to see if oset requested */
! 	beq	Ldone		/* if oset != NULL */
! 	stw	3,0(5)		/*   *oset = oldmask */
  Ldone:
! 	li	3,0		/* return 0 */
  	blr
  #endif /* SYS_sigprocmask14 */