Message-ID: <20000227100933.A723@titanic.gerwinski.de> Date: Sun, 27 Feb 2000 10:09:33 +0100 From: Peter Gerwinski To: djgpp AT delorie DOT com Subject: Bill Currie's `serio' module: License and bugs Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii 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