summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2007-05-31 15:53:37 -0700
committerH. Peter Anvin <hpa@zytor.com>2007-05-31 15:53:37 -0700
commite9601c59e62abc17c79e6e8b205595b944dc6e09 (patch)
treefcb36ce198778fe8d00026d79b75eb4bab1c3d36
parentc5df73c44dc38eed2197c2d4799b324ce0542da6 (diff)
downloadsyslinux-e9601c59e62abc17c79e6e8b205595b944dc6e09.tar.gz
If no serial console is configured, don't bother calling into it
If there is no serial console configured, we can simply drop writes from com32 rather than letting syslinux do that.
-rw-r--r--com32/lib/sys/serial_write.c4
-rw-r--r--com32/lib/sys/xserial_write.c4
2 files changed, 8 insertions, 0 deletions
diff --git a/com32/lib/sys/serial_write.c b/com32/lib/sys/serial_write.c
index 0235620b..b5930833 100644
--- a/com32/lib/sys/serial_write.c
+++ b/com32/lib/sys/serial_write.c
@@ -35,6 +35,7 @@
#include <string.h>
#include <com32.h>
#include <minmax.h>
+#include <syslinux/config.h>
#include "file.h"
ssize_t __serial_write(struct file_info *fp, const void *buf, size_t count)
@@ -45,6 +46,9 @@ ssize_t __serial_write(struct file_info *fp, const void *buf, size_t count)
(void)fp;
+ if (!syslinux_serial_console_info()->iobase)
+ return count; /* Nothing to do */
+
memset(&ireg, 0, sizeof ireg);
ireg.eax.b[1] = 0x04;
diff --git a/com32/lib/sys/xserial_write.c b/com32/lib/sys/xserial_write.c
index ebdf296b..7964042e 100644
--- a/com32/lib/sys/xserial_write.c
+++ b/com32/lib/sys/xserial_write.c
@@ -37,6 +37,7 @@
#include <com32.h>
#include <minmax.h>
#include <colortbl.h>
+#include <syslinux/config.h>
#include "file.h"
static void emit(char ch)
@@ -61,6 +62,9 @@ ssize_t __xserial_write(struct file_info *fp, const void *buf, size_t count)
(void)fp;
+ if (!syslinux_serial_console_info()->iobase)
+ return count; /* Nothing to do */
+
while ( count-- ) {
unsigned char ch = *bufp++;