Clean this up a bit, and use the trap gate to enter the kernel.

This commit is contained in:
mycroft 1994-10-26 19:41:13 +00:00
parent 87ce99227c
commit c1a45e7763
3 changed files with 87 additions and 90 deletions

View File

@ -27,7 +27,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* $Id: mdprologue.S,v 1.4 1994/08/03 15:57:58 pk Exp $
* $Id: mdprologue.S,v 1.5 1994/10/26 19:41:13 mycroft Exp $
*/
/*
@ -35,7 +35,6 @@
*/
#include <sys/syscall.h>
#define LCALL(x,y) .byte 0x9a ; .long y; .word x
.text
.globl _binder, _binder_entry
@ -48,6 +47,7 @@ _rtl: # crt0 calls us here
pushl %ebp # Allocate stack frame
movl %esp,%ebp
pushl %ebx
call 1f # PIC function prologue
1:
popl %ebx
@ -65,8 +65,8 @@ _rtl: # crt0 calls us here
call %eax # _rtld(version, crtp, DYNAMIC)
addl $12,%esp # pop arguments
movl -4(%ebp), %ebx # restore %ebx
leave # remove stack frame,
popl %ebx
leave # remove stack frame
ret # let's rock
# First call to a procedure generally comes through here for
@ -77,7 +77,7 @@ _binder_entry:
movl %esp,%ebp
pusha # save all regs
movl $0, %eax # clear
xorl %eax,%eax # clear
movl 4(%ebp),%esi # return address in PLT
movw (%esi),%ax # get hold of relocation number
subl $6,%esi # make it point to the jmpslot
@ -98,8 +98,8 @@ _binder_entry:
.globl _getreuid, _getregid
_getreuid:
lea SYS_getuid, %eax
LCALL(7,0)
movl $SYS_getuid,%eax
int $0x80
jc out
movl 4(%esp),%ecx # get 1st arg
movl %eax,(%ecx) # put value in it
@ -108,8 +108,8 @@ _getreuid:
ret # done
_getregid:
lea SYS_getgid, %eax
LCALL(7,0)
movl $SYS_getgid,%eax
int $0x80
jc out
movl 4(%esp),%ecx # get 1st arg
movl %eax,(%ecx) # put value in it
@ -118,4 +118,3 @@ _getregid:
ret # done
out: jmp cerror@PLT # Call common error routine

View File

@ -27,7 +27,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* $Id: mdprologue.S,v 1.4 1994/08/03 15:57:58 pk Exp $
* $Id: mdprologue.S,v 1.5 1994/10/26 19:41:13 mycroft Exp $
*/
/*
@ -35,7 +35,6 @@
*/
#include <sys/syscall.h>
#define LCALL(x,y) .byte 0x9a ; .long y; .word x
.text
.globl _binder, _binder_entry
@ -48,6 +47,7 @@ _rtl: # crt0 calls us here
pushl %ebp # Allocate stack frame
movl %esp,%ebp
pushl %ebx
call 1f # PIC function prologue
1:
popl %ebx
@ -65,8 +65,8 @@ _rtl: # crt0 calls us here
call %eax # _rtld(version, crtp, DYNAMIC)
addl $12,%esp # pop arguments
movl -4(%ebp), %ebx # restore %ebx
leave # remove stack frame,
popl %ebx
leave # remove stack frame
ret # let's rock
# First call to a procedure generally comes through here for
@ -77,7 +77,7 @@ _binder_entry:
movl %esp,%ebp
pusha # save all regs
movl $0, %eax # clear
xorl %eax,%eax # clear
movl 4(%ebp),%esi # return address in PLT
movw (%esi),%ax # get hold of relocation number
subl $6,%esi # make it point to the jmpslot
@ -98,8 +98,8 @@ _binder_entry:
.globl _getreuid, _getregid
_getreuid:
lea SYS_getuid, %eax
LCALL(7,0)
movl $SYS_getuid,%eax
int $0x80
jc out
movl 4(%esp),%ecx # get 1st arg
movl %eax,(%ecx) # put value in it
@ -108,8 +108,8 @@ _getreuid:
ret # done
_getregid:
lea SYS_getgid, %eax
LCALL(7,0)
movl $SYS_getgid,%eax
int $0x80
jc out
movl 4(%esp),%ecx # get 1st arg
movl %eax,(%ecx) # put value in it
@ -118,4 +118,3 @@ _getregid:
ret # done
out: jmp cerror@PLT # Call common error routine

View File

@ -27,7 +27,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* $Id: mdprologue.S,v 1.4 1994/08/03 15:57:58 pk Exp $
* $Id: mdprologue.S,v 1.5 1994/10/26 19:41:13 mycroft Exp $
*/
/*
@ -35,7 +35,6 @@
*/
#include <sys/syscall.h>
#define LCALL(x,y) .byte 0x9a ; .long y; .word x
.text
.globl _binder, _binder_entry
@ -48,6 +47,7 @@ _rtl: # crt0 calls us here
pushl %ebp # Allocate stack frame
movl %esp,%ebp
pushl %ebx
call 1f # PIC function prologue
1:
popl %ebx
@ -65,8 +65,8 @@ _rtl: # crt0 calls us here
call %eax # _rtld(version, crtp, DYNAMIC)
addl $12,%esp # pop arguments
movl -4(%ebp), %ebx # restore %ebx
leave # remove stack frame,
popl %ebx
leave # remove stack frame
ret # let's rock
# First call to a procedure generally comes through here for
@ -77,7 +77,7 @@ _binder_entry:
movl %esp,%ebp
pusha # save all regs
movl $0, %eax # clear
xorl %eax,%eax # clear
movl 4(%ebp),%esi # return address in PLT
movw (%esi),%ax # get hold of relocation number
subl $6,%esi # make it point to the jmpslot
@ -98,8 +98,8 @@ _binder_entry:
.globl _getreuid, _getregid
_getreuid:
lea SYS_getuid, %eax
LCALL(7,0)
movl $SYS_getuid,%eax
int $0x80
jc out
movl 4(%esp),%ecx # get 1st arg
movl %eax,(%ecx) # put value in it
@ -108,8 +108,8 @@ _getreuid:
ret # done
_getregid:
lea SYS_getgid, %eax
LCALL(7,0)
movl $SYS_getgid,%eax
int $0x80
jc out
movl 4(%esp),%ecx # get 1st arg
movl %eax,(%ecx) # put value in it
@ -118,4 +118,3 @@ _getregid:
ret # done
out: jmp cerror@PLT # Call common error routine