summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile2
-rw-r--r--arch.h33
-rw-r--r--archtest.c2
-rw-r--r--flash.h4
-rw-r--r--flashrom.c2
-rw-r--r--hwaccess.c20
-rw-r--r--hwaccess.h87
-rw-r--r--internal.c16
-rw-r--r--os.h2
-rw-r--r--platform.h54
-rw-r--r--programmer.h2
-rw-r--r--serial.c40
-rw-r--r--serprog.c10
-rw-r--r--udelay.c2
-rw-r--r--util/ich_descriptors_tool/ich_descriptors_tool.c2
15 files changed, 163 insertions, 115 deletions
diff --git a/Makefile b/Makefile
index 7d3da08..96a51a3 100644
--- a/Makefile
+++ b/Makefile
@@ -316,7 +316,7 @@ endif
# IMPORTANT: The following line must be placed before ARCH is ever used
# (of course), but should come after any lines setting CC because the line
# below uses CC itself.
-override ARCH := $(strip $(shell LC_ALL=C $(CC) $(CPPFLAGS) -E arch.h 2>/dev/null | grep -v '^\#' | grep '"' | cut -f 2 -d'"'))
+override ARCH := $(strip $(shell LC_ALL=C $(CC) $(CPPFLAGS) -E archtest.c 2>/dev/null | grep -v '^\#' | grep '"' | cut -f 2 -d'"'))
# PCI port I/O support is unimplemented on PPC/MIPS and unavailable on ARM.
# Right now this means the drivers below only work on x86.
diff --git a/arch.h b/arch.h
deleted file mode 100644
index f3f3b0d..0000000
--- a/arch.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * This file is part of the flashrom project.
- *
- * Copyright (C) 2011 Carl-Daniel Hailfinger
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/*
- * Header file for CPU architecture checking.
- */
-
-#if defined (__i386__) || defined (__x86_64__)
-#define __FLASHROM_ARCH__ "x86"
-#elif defined (__mips) || defined (__mips__) || defined (_mips) || defined (mips)
-#define __FLASHROM_ARCH__ "mips"
-#elif defined(__powerpc__) || defined(__powerpc64__) || defined(__ppc__) || defined(__ppc64__)
-#define __FLASHROM_ARCH__ "ppc"
-#elif defined(__arm__)
-#define __FLASHROM_ARCH__ "arm"
-#endif
-__FLASHROM_ARCH__
diff --git a/archtest.c b/archtest.c
new file mode 100644
index 0000000..791f1a3
--- /dev/null
+++ b/archtest.c
@@ -0,0 +1,2 @@
+#include "platform.h"
+__FLASHROM_ARCH__
diff --git a/flash.h b/flash.h
index 81fd61b..56d9e4b 100644
--- a/flash.h
+++ b/flash.h
@@ -24,12 +24,14 @@
#ifndef __FLASH_H__
#define __FLASH_H__ 1
+#include "platform.h"
+
#include <inttypes.h>
#include <stdio.h>
#include <stdint.h>
#include <stddef.h>
#include <stdbool.h>
-#ifdef _WIN32
+#if IS_WINDOWS
#include <windows.h>
#undef min
#undef max
diff --git a/flashrom.c b/flashrom.c
index 104ecb8..9df1478 100644
--- a/flashrom.c
+++ b/flashrom.c
@@ -1661,7 +1661,7 @@ void list_programmers_linebreak(int startcol, int cols, int paren)
void print_sysinfo(void)
{
-#ifdef _WIN32
+#if IS_WINDOWS
SYSTEM_INFO si;
OSVERSIONINFOEX osvi;
diff --git a/hwaccess.c b/hwaccess.c
index 5b18c32..c90490b 100644
--- a/hwaccess.c
+++ b/hwaccess.c
@@ -18,19 +18,7 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
-#define IS_X86 (defined(__i386__) || defined(__x86_64__) || defined(__amd64__))
-#define IS_MIPS (defined (__mips) || defined (__mips__) || defined (__MIPS__) || defined (mips))
-#define IS_PPC (defined(__powerpc__) || defined(__powerpc64__) || defined(__ppc__) || defined(__ppc64__))
-#define IS_ARM (defined (__arm__) || defined (_ARM))
-#if !(IS_X86 || IS_MIPS || IS_PPC || IS_ARM)
-#error Unknown architecture
-#endif
-
-#define IS_LINUX (defined(__gnu_linux__) || defined(__linux__))
-#define IS_MACOSX (defined(__APPLE__) && defined(__MACH__))
-#if !(IS_LINUX || IS_MACOSX || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__) || defined(__DJGPP__) || defined(__LIBPAYLOAD__) || defined(__sun))
-#error "Unknown operating system"
-#endif
+#include "platform.h"
#include <stdint.h>
#include <string.h>
@@ -45,6 +33,10 @@
#include "flash.h"
#include "hwaccess.h"
+#if !(IS_LINUX || IS_MACOSX || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__) || defined(__DJGPP__) || defined(__LIBPAYLOAD__) || defined(__sun))
+#error "Unknown operating system"
+#endif
+
#define USE_IOPL (IS_LINUX || IS_MACOSX || defined(__NetBSD__) || defined(__OpenBSD__))
#define USE_DEV_IO (defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__))
@@ -62,7 +54,7 @@ static inline void sync_primitive(void)
* - MIPS uses uncached accesses in mode 2 on /dev/mem which has also a strongly ordered memory model
* - ARM uses a strongly ordered memory model for device memories.
*/
-#if IS_PPC
+#if IS_PPC // cf. http://lxr.free-electrons.com/source/arch/powerpc/include/asm/barrier.h
asm("eieio" : : : "memory");
#endif
}
diff --git a/hwaccess.h b/hwaccess.h
index 83f349e..f2b14df 100644
--- a/hwaccess.h
+++ b/hwaccess.h
@@ -24,7 +24,9 @@
#ifndef __HWACCESS_H__
#define __HWACCESS_H__ 1
-#if defined (__i386__) || defined (__x86_64__)
+#include "platform.h"
+
+#if IS_X86
#if defined(__GLIBC__)
#include <sys/io.h>
#endif
@@ -45,14 +47,22 @@
#endif
#undef index
+#endif /* NEED_PCI == 1 */
+
+
+/* The next big hunk tries to guess endianess from various preprocessor macros */
+/* First some error checking in case some weird header has defines both.
+ * NB: OpenBSD always defines _BIG_ENDIAN and _LITTLE_ENDIAN. */
+#if defined (__LITTLE_ENDIAN__) && defined (__BIG_ENDIAN__)
+#error Conflicting endianness #define
#endif
-#if defined (__i386__) || defined (__x86_64__)
+#if IS_X86
/* All x86 is little-endian. */
#define __FLASHROM_LITTLE_ENDIAN__ 1
-#elif defined (__mips) || defined (__mips__) || defined (_mips) || defined (mips)
+#elif IS_MIPS
/* MIPS can be either endian. */
#if defined (__MIPSEL) || defined (__MIPSEL__) || defined (_MIPSEL) || defined (MIPSEL)
@@ -61,29 +71,45 @@
#define __FLASHROM_BIG_ENDIAN__ 1
#endif
-#elif defined(__powerpc__) || defined(__powerpc64__) || defined(__ppc__) || defined(__ppc64__)
+#elif IS_PPC
/* PowerPC can be either endian. */
#if defined (_BIG_ENDIAN) || defined (__BIG_ENDIAN__)
#define __FLASHROM_BIG_ENDIAN__ 1
-/* Error checking in case some weird header has #defines for LE as well. */
-#if defined (_LITTLE_ENDIAN) || defined (__LITTLE_ENDIAN__)
-#error Conflicting endianness #define
-#endif
-#else
-#error Little-endian PowerPC #defines are unknown
+#elif defined (_LITTLE_ENDIAN) || defined (__LITTLE_ENDIAN__)
+#define __FLASHROM_LITTLE_ENDIAN__ 1
#endif
-#elif defined (__arm__)
-#if defined (__ARMEL__)
+#elif IS_ARM
+
+/* ARM can be either endian. */
+#if defined (__ARMEB__)
+#define __FLASHROM_BIG_ENDIAN__ 1
+#elif defined (__ARMEL__)
#define __FLASHROM_LITTLE_ENDIAN__ 1
-#else
-#error Big-endian ARM #defines are unknown
#endif
+#endif /* IS_? */
+
+#if !defined (__FLASHROM_BIG_ENDIAN__) && !defined (__FLASHROM_LITTLE_ENDIAN__)
+
+/* If architecture-specific approaches fail try generic variants. First: BSD (works about everywhere). */
+#if !IS_WINDOWS
+#include <sys/param.h>
+
+#if defined (__BYTE_ORDER)
+#if __BYTE_ORDER == __LITTLE_ENDIAN
+#define __FLASHROM_LITTLE_ENDIAN__
+#elif __BYTE_ORDER == __BIG_ENDIAN
+#define __FLASHROM_BIG_ENDIAN__
+#else
+#error Unknown byte order!
#endif
+#endif /* defined __BYTE_ORDER */
+#endif /* !IS_WINDOWS */
#if !defined (__FLASHROM_BIG_ENDIAN__) && !defined (__FLASHROM_LITTLE_ENDIAN__)
+
/* Nonstandard libc-specific macros for determining endianness. */
#if defined(__GLIBC__)
#include <endian.h>
@@ -95,8 +121,10 @@
#endif
#endif
+#endif
+
#if !defined (__FLASHROM_BIG_ENDIAN__) && !defined (__FLASHROM_LITTLE_ENDIAN__)
-#error Unable to determine endianness. Please add support for your arch or libc.
+#error Unable to determine endianness.
#endif
#define ___constant_swab8(x) ((uint8_t) ( \
@@ -158,11 +186,7 @@ cpu_to_be(64)
#define cpu_to_le32
#define cpu_to_le64
-#else
-
-#error Could not determine endianness.
-
-#endif
+#endif /* __FLASHROM_BIG_ENDIAN__ / __FLASHROM_LITTLE_ENDIAN__ */
#define be_to_cpu8 cpu_to_be8
#define be_to_cpu16 cpu_to_be16
@@ -174,12 +198,12 @@ cpu_to_be(64)
#define le_to_cpu64 cpu_to_le64
#if NEED_PCI == 1
-#if defined (__i386__) || defined (__x86_64__)
+#if IS_X86
#define __FLASHROM_HAVE_OUTB__ 1
/* for iopl and outb under Solaris */
-#if defined (__sun) && (defined(__i386) || defined(__amd64))
+#if defined (__sun)
#include <sys/sysi86.h>
#include <sys/psw.h>
#include <asm/sunddi.h>
@@ -202,11 +226,13 @@ cpu_to_be(64)
#define INW(x) __extension__ ({ u_int inw_tmp = (x); inw(inw_tmp); })
#define INL(x) __extension__ ({ u_int inl_tmp = (x); inl(inl_tmp); })
#else
+
#if defined(__MACH__) && defined(__APPLE__)
/* Header is part of the DirectHW library. */
#include <DirectHW/DirectHW.h>
-#endif
-#if defined (__sun) && (defined(__i386) || defined(__amd64))
+#else
+
+#if defined (__sun)
/* Note different order for outb */
#define OUTB(x,y) outb(y, x)
#define OUTW(x,y) outw(y, x)
@@ -236,9 +262,8 @@ cpu_to_be(64)
#define INB inb
#define INW inw
#define INL inl
-
#endif
-
+#endif
#endif
#endif
@@ -324,15 +349,15 @@ int libpayload_wrmsr(int addr, msr_t msr);
#define wrmsr libpayload_wrmsr
#endif
-#elif defined(__powerpc__) || defined(__powerpc64__) || defined(__ppc__) || defined(__ppc64__)
+#elif IS_PPC
/* PCI port I/O is not yet implemented on PowerPC. */
-#elif defined (__mips) || defined (__mips__) || defined (_mips) || defined (mips)
+#elif IS_MIPS
/* PCI port I/O is not yet implemented on MIPS. */
-#elif defined(__arm__)
+#elif IS_ARM
/* Non memory mapped I/O is not supported on ARM. */
@@ -340,7 +365,7 @@ int libpayload_wrmsr(int addr, msr_t msr);
#error Unknown architecture, please check if it supports PCI port IO.
-#endif
-#endif
+#endif /* IS_* */
+#endif /* NEED_PCI == 1 */
#endif /* !__HWACCESS_H__ */
diff --git a/internal.c b/internal.c
index e646ca8..f6146d1 100644
--- a/internal.c
+++ b/internal.c
@@ -160,14 +160,14 @@ enum chipbustype internal_buses_supported = BUS_NONE;
int internal_init(void)
{
-#if __FLASHROM_LITTLE_ENDIAN__
+#if defined __FLASHROM_LITTLE_ENDIAN__
int ret = 0;
#endif
int force_laptop = 0;
int not_a_laptop = 0;
const char *board_vendor = NULL;
const char *board_model = NULL;
-#if defined (__i386__) || defined (__x86_64__) || defined (__arm__)
+#if IS_X86 || IS_ARM
const char *cb_vendor = NULL;
const char *cb_model = NULL;
#endif
@@ -249,7 +249,7 @@ int internal_init(void)
return 1;
}
-#if defined(__i386__) || defined(__x86_64__) || defined (__arm__)
+#if IS_X86 || IS_ARM
if ((cb_parse_table(&cb_vendor, &cb_model) == 0) && (board_vendor != NULL) && (board_model != NULL)) {
if (strcasecmp(board_vendor, cb_vendor) || strcasecmp(board_model, cb_model)) {
msg_pwarn("Warning: The mainboard IDs set by -p internal:mainboard (%s:%s) do not\n"
@@ -262,7 +262,7 @@ int internal_init(void)
}
#endif
-#if defined(__i386__) || defined(__x86_64__)
+#if IS_X86
dmi_init();
/* In case Super I/O probing would cause pretty explosions. */
@@ -312,7 +312,7 @@ int internal_init(void)
}
}
-#if __FLASHROM_LITTLE_ENDIAN__
+#ifdef __FLASHROM_LITTLE_ENDIAN__
/* try to enable it. Failure IS an option, since not all motherboards
* really need this to be done, etc., etc.
*/
@@ -323,18 +323,18 @@ int internal_init(void)
} else if (ret == ERROR_FATAL)
return ret;
-#if defined(__i386__) || defined(__x86_64__)
+#if IS_X86
/* Probe unconditionally for ITE Super I/O chips. This enables LPC->SPI translation on IT87* and
* parallel writes on IT8705F. Also, this handles the manual chip select for Gigabyte's DualBIOS. */
init_superio_ite();
-#endif
if (board_flash_enable(board_vendor, board_model, cb_vendor, cb_model)) {
msg_perr("Aborting to be safe.\n");
return 1;
}
+#endif
-#if defined(__i386__) || defined(__x86_64__) || defined (__mips)
+#if IS_X86 || IS_MIPS
register_par_master(&par_master_internal, internal_buses_supported);
return 0;
#else
diff --git a/os.h b/os.h
index f1b366f..2e6dbaa 100644
--- a/os.h
+++ b/os.h
@@ -21,6 +21,8 @@
* Header file for OS checking.
*/
+#include "platform.h"
+
// Solaris
#if defined (__sun) && (defined(__i386) || defined(__amd64))
#define __FLASHROM_OS__ "SunOS"
diff --git a/platform.h b/platform.h
new file mode 100644
index 0000000..f57fd12
--- /dev/null
+++ b/platform.h
@@ -0,0 +1,54 @@
+/*
+ * This file is part of the flashrom project.
+ *
+ * Copyright (C) 2011 Carl-Daniel Hailfinger
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * Header file to determine target OS and CPU architecture.
+ */
+
+#ifndef __PLATFORM_H__
+#define __PLATFORM_H__ 1
+
+// Helper defines for operating systems
+#define IS_LINUX (defined(__gnu_linux__) || defined(__linux__))
+#define IS_MACOSX (defined(__APPLE__) && defined(__MACH__)) /* yes, both. */
+#define IS_WINDOWS (defined(_WIN32) || defined(_WIN64) || defined(__WIN32__) || defined(__WINDOWS__))
+
+// Likewise for target architectures
+#if defined (__i386__) || defined (__x86_64__) || defined(__amd64__)
+ #define __FLASHROM_ARCH__ "x86"
+ #define IS_X86 1
+#elif defined (__mips) || defined (__mips__) || defined (__MIPS__) || defined (mips)
+ #define __FLASHROM_ARCH__ "mips"
+ #define IS_MIPS 1
+#elif defined(__powerpc) || defined(__powerpc__) || defined(__powerpc64__) || defined(__POWERPC__) || \
+ defined(__ppc__) || defined(__ppc64__) || defined(_M_PPC) || defined(_ARCH_PPC) || \
+ defined(_ARCH_PPC64) || defined(__ppc)
+ #define __FLASHROM_ARCH__ "ppc"
+ #define IS_PPC 1
+#elif defined(__arm__) || defined(__TARGET_ARCH_ARM) || defined(_ARM) || defined(_M_ARM) || defined(__arm) || \
+ defined(__aarch64__)
+ #define __FLASHROM_ARCH__ "arm"
+ #define IS_ARM 1
+#endif
+
+#if !(IS_X86 || IS_MIPS || IS_PPC || IS_ARM)
+#error Unknown architecture
+#endif
+
+#endif /* !__PLATFORM_H__ */
diff --git a/programmer.h b/programmer.h
index d6e06cb..f82e950 100644
--- a/programmer.h
+++ b/programmer.h
@@ -700,7 +700,7 @@ void serprog_delay(unsigned int usecs);
#endif
/* serial.c */
-#ifdef _WIN32
+#if IS_WINDOWS
typedef HANDLE fdtype;
#define SER_INV_FD INVALID_HANDLE_VALUE
#else
diff --git a/serial.c b/serial.c
index e4e911d..94f9b7d 100644
--- a/serial.c
+++ b/serial.c
@@ -19,6 +19,8 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include "platform.h"
+
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
@@ -28,7 +30,7 @@
#include <sys/stat.h>
#include <errno.h>
#include <inttypes.h>
-#ifdef _WIN32
+#if IS_WINDOWS
#include <conio.h>
#else
#include <termios.h>
@@ -41,7 +43,7 @@
fdtype sp_fd = SER_INV_FD;
-#ifdef _WIN32
+#if IS_WINDOWS
struct baudentry {
DWORD flag;
unsigned int baud;
@@ -137,7 +139,7 @@ const struct baudentry *round_baud(unsigned int baud)
static void msg_perr_strerror(const char *msg)
{
msg_perr("Error: %s", msg);
-#ifdef _WIN32
+#if IS_WINDOWS
char *lpMsgBuf;
DWORD nErr = GetLastError();
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL, nErr,
@@ -159,7 +161,7 @@ int serialport_config(fdtype fd, unsigned int baud)
return 1;
}
-#ifdef _WIN32
+#if IS_WINDOWS
DCB dcb;
if (!GetCommState(fd, &dcb)) {
msg_perr_strerror("Could not fetch original serial port configuration: ");
@@ -224,7 +226,7 @@ int serialport_config(fdtype fd, unsigned int baud)
fdtype sp_openserport(char *dev, unsigned int baud)
{
fdtype fd;
-#ifdef _WIN32
+#if IS_WINDOWS
char *dev2 = dev;
if ((strlen(dev) > 3) &&
(tolower((unsigned char)dev[0]) == 'c') &&
@@ -266,7 +268,7 @@ fdtype sp_openserport(char *dev, unsigned int baud)
}
void sp_set_pin(enum SP_PIN pin, int val) {
-#ifdef _WIN32
+#if IS_WINDOWS
DWORD ctl;
if(pin == PIN_TXD) {
@@ -302,7 +304,7 @@ void sp_set_pin(enum SP_PIN pin, int val) {
int sp_get_pin(enum SP_PIN pin) {
int s;
-#ifdef _WIN32
+#if IS_WINDOWS
DWORD ctl;
s = (pin == PIN_CTS) ? MS_CTS_ON : MS_DSR_ON;
@@ -319,7 +321,7 @@ int sp_get_pin(enum SP_PIN pin) {
void sp_flush_incoming(void)
{
-#ifdef _WIN32
+#if IS_WINDOWS
PurgeComm(sp_fd, PURGE_RXCLEAR);
#else
/* FIXME: error handling */
@@ -330,7 +332,7 @@ void sp_flush_incoming(void)
int serialport_shutdown(void *data)
{
-#ifdef _WIN32
+#if IS_WINDOWS
CloseHandle(sp_fd);
#else
close(sp_fd);
@@ -340,7 +342,7 @@ int serialport_shutdown(void *data)
int serialport_write(const unsigned char *buf, unsigned int writecnt)
{
-#ifdef _WIN32
+#if IS_WINDOWS
DWORD tmp = 0;
#else
ssize_t tmp = 0;
@@ -348,7 +350,7 @@ int serialport_write(const unsigned char *buf, unsigned int writecnt)
unsigned int empty_writes = 250; /* results in a ca. 125ms timeout */
while (writecnt > 0) {
-#ifdef _WIN32
+#if IS_WINDOWS
WriteFile(sp_fd, buf, writecnt, &tmp, NULL);
#else
tmp = write(sp_fd, buf, writecnt);
@@ -375,14 +377,14 @@ int serialport_write(const unsigned char *buf, unsigned int writecnt)
int serialport_read(unsigned char *buf, unsigned int readcnt)
{
-#ifdef _WIN32
+#if IS_WINDOWS
DWORD tmp = 0;
#else
ssize_t tmp = 0;
#endif
while (readcnt > 0) {
-#ifdef _WIN32
+#if IS_WINDOWS
ReadFile(sp_fd, buf, readcnt, &tmp, NULL);
#else
tmp = read(sp_fd, buf, readcnt);
@@ -407,7 +409,7 @@ int serialport_read_nonblock(unsigned char *c, unsigned int readcnt, unsigned in
{
int ret = 1;
/* disable blocked i/o and declare platform-specific variables */
-#ifdef _WIN32
+#if IS_WINDOWS
DWORD rv;
COMMTIMEOUTS oldTimeout;
COMMTIMEOUTS newTimeout = {
@@ -442,7 +444,7 @@ int serialport_read_nonblock(unsigned char *c, unsigned int readcnt, unsigned in
int rd_bytes = 0;
for (i = 0; i < timeout; i++) {
msg_pspew("readcnt %d rd_bytes %d\n", readcnt, rd_bytes);
-#ifdef _WIN32
+#if IS_WINDOWS
ReadFile(sp_fd, c + rd_bytes, readcnt - rd_bytes, &rv, NULL);
msg_pspew("read %lu bytes\n", rv);
#else
@@ -466,7 +468,7 @@ int serialport_read_nonblock(unsigned char *c, unsigned int readcnt, unsigned in
*really_read = rd_bytes;
/* restore original blocking behavior */
-#ifdef _WIN32
+#if IS_WINDOWS
if (!SetCommTimeouts(sp_fd, &oldTimeout)) {
msg_perr_strerror("Could not restore serial port timeout settings: ");
ret = -1;
@@ -487,7 +489,7 @@ int serialport_write_nonblock(const unsigned char *buf, unsigned int writecnt, u
{
int ret = 1;
/* disable blocked i/o and declare platform-specific variables */
-#ifdef _WIN32
+#if IS_WINDOWS
DWORD rv;
COMMTIMEOUTS oldTimeout;
COMMTIMEOUTS newTimeout = {
@@ -522,7 +524,7 @@ int serialport_write_nonblock(const unsigned char *buf, unsigned int writecnt, u
int wr_bytes = 0;
for (i = 0; i < timeout; i++) {
msg_pspew("writecnt %d wr_bytes %d\n", writecnt, wr_bytes);
-#ifdef _WIN32
+#if IS_WINDOWS
WriteFile(sp_fd, buf + wr_bytes, writecnt - wr_bytes, &rv, NULL);
msg_pspew("wrote %lu bytes\n", rv);
#else
@@ -548,7 +550,7 @@ int serialport_write_nonblock(const unsigned char *buf, unsigned int writecnt, u
*really_wrote = wr_bytes;
/* restore original blocking behavior */
-#ifdef _WIN32
+#if IS_WINDOWS
if (!SetCommTimeouts(sp_fd, &oldTimeout)) {
msg_perr_strerror("Could not restore serial port timeout settings: ");
return -1;
diff --git a/serprog.c b/serprog.c
index e52c994..3de0182 100644
--- a/serprog.c
+++ b/serprog.c
@@ -19,8 +19,10 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include "platform.h"
+
#include <stdio.h>
-#ifndef _WIN32 /* stuff (presumably) needed for sockets only */
+#if ! IS_WINDOWS /* stuff (presumably) needed for sockets only */
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
@@ -30,7 +32,7 @@
#include <netinet/tcp.h>
#include <netdb.h>
#endif
-#ifdef _WIN32
+#if IS_WINDOWS
#include <conio.h>
#else
#include <termios.h>
@@ -83,7 +85,7 @@ static int sp_opbuf_usage = 0;
whether the command is supported before doing it */
static int sp_check_avail_automatic = 0;
-#ifndef WIN32
+#if ! IS_WINDOWS
static int sp_opensocket(char *ip, unsigned int port)
{
int flag = 1;
@@ -375,7 +377,7 @@ int serprog_init(void)
}
free(device);
-#ifndef _WIN32
+#if !IS_WINDOWS
device = extract_programmer_param("ip");
if (have_device && device) {
msg_perr("Error: Both host and device specified.\n"
diff --git a/udelay.c b/udelay.c
index ee858b8..c03bcc4 100644
--- a/udelay.c
+++ b/udelay.c
@@ -172,7 +172,7 @@ recalibrate:
/* Not very precise sleep. */
void internal_sleep(unsigned int usecs)
{
-#ifdef _WIN32
+#if IS_WINDOWS
Sleep((usecs + 999) / 1000);
#else
sleep(usecs / 1000000);
diff --git a/util/ich_descriptors_tool/ich_descriptors_tool.c b/util/ich_descriptors_tool/ich_descriptors_tool.c
index b6c1b12..c3d9ba1 100644
--- a/util/ich_descriptors_tool/ich_descriptors_tool.c
+++ b/util/ich_descriptors_tool/ich_descriptors_tool.c
@@ -35,7 +35,7 @@
/* Some DJGPP builds define __unix__ although they don't support mmap().
* Cygwin defines __unix__ and supports mmap(), but it does not work well.
*/
-#if !defined(__MSDOS__) && !defined(_WIN32) && (defined(unix) || defined(__unix__) || defined(__unix)) || (defined(__MACH__) && defined(__APPLE__))
+#if !defined(__MSDOS__) && !IS_WINDOWS && (defined(unix) || defined(__unix__) || defined(__unix)) || (defined(__MACH__) && defined(__APPLE__))
#define HAVE_MMAP 1
#include <sys/mman.h>
#endif
OpenPOWER on IntegriCloud