delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2000/02/27/05:05:51

Message-ID: <20000227100933.A723@titanic.gerwinski.de>
Date: Sun, 27 Feb 2000 10:09:33 +0100
From: Peter Gerwinski <peter AT gerwinski DOT de>
To: djgpp AT delorie DOT com
Subject: Bill Currie's `serio' module: License and bugs
Mime-Version: 1.0
X-Mailer: Mutt 0.93.1i
Reply-To: djgpp AT delorie DOT com

Hello,

we would like to use Bill Currie's `serio' module in GPLed and
non-GPLed projects.

Since there is no notice about the license in the source we need 
a statement from the author (Hi, Bill!:-) to clarify this point.
GPL with exception for linking (as in `glibc') would be perfect
for us, LGPL would be fine as well, but of course the license is
the author's decision.

(Unfortunately I cannot reach Bill via email; if someone could
email me his current address that would be most helpful.)

And now for two bugs we have encountered:

We could not assemble `serio.s' with current versions of `gas'.
Below is a patch that fixes this problem.  We hope that it is
correct.

Second, we think that we have found a bug in _sio_write():

    _sio_write:.globl       _sio_write
                    call    disable
                    pushl   %eax
                    pushl   %ebx
                    pushl   %ebp
                    pushl   %edi
                    movl    24(%esp),%ebp

There is the return address (4 bytes) on the stack, and we
are `pushl'ing four registers, so the parameters should be
accessible at 20(%esp).  However we try to access them at
24(%esp).  Did this routine ever work correctly?

Happy hacking,

    Peter

-- 
http://home.pages.de/~Peter.Gerwinski/ - G-N-U GmbH: http://www.g-n-u.de
Maintainer GNU Pascal - http://home.pages.de/~GNU-Pascal/ - gpc-19990118
GnuPG key fingerprint: 9E7C 0FC4 8A62 5536 1730 A932 9834 65DB 2143 9422
keys: ftp://ftp.gerwinski.de/pub/keys/ - AntiSpam: http://spam.abuse.net


--- serio.s.orig	Tue Feb 22 23:50:15 2000
+++ serio.s	Tue Feb 22 23:50:23 2000
@@ -225,7 +225,7 @@
 		ret
 1:		andl	$3,%eax					## incase 16550
 #		movzbl	%al,%eax
-		call	commFuncTable(,%eax,4)	## call the appropriate comm routine
+		call	*commFuncTable(,%eax,4)	## call the appropriate comm routine
 										## IIR==0 (%al==0) -> msr
 										## IIR==2 (%al==1) -> xmit
 										## IIR==4 (%al==2) -> rcv
@@ -997,7 +997,7 @@
 		inb		%dx,%al
 		shrb	$1,%al
 		jc		3f
-		jmp		init_port_case(,%eax,4)
+		jmp		*init_port_case(,%eax,4)
 		.align	2
 init_port_case:
 		.long	ip_msr

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019