Clean up legacy code

This commit is contained in:
Marius Greuel 2022-01-07 13:15:55 +01:00
parent fe6f08d48f
commit fc54ef5e59
32 changed files with 91 additions and 360 deletions

View File

@ -35,7 +35,6 @@ option(USE_LIBUSBWIN32 "Prefer libusb-win32 over libusb" OFF)
option(DEBUG_CMAKE "Enable debugging output for this CMake project" OFF)
include(CheckIncludeFile)
include(CheckFunctionExists)
include(CheckSymbolExists)
include(FetchContent)
include(FindPackageMessage)
@ -126,24 +125,6 @@ else()
endif()
endif()
# =====================================
# Detect headers
# =====================================
check_include_file(stdint.h HAVE_STDINT_H)
check_include_file(stdlib.h HAVE_STDLIB_H)
check_include_file(inttypes.h HAVE_INTTYPES_H)
check_include_file(netinet/in.h HAVE_NETINET_IN_H)
# =====================================
# Detect functions
# =====================================
check_function_exists(usleep HAVE_USLEEP)
check_function_exists(getaddrinfo HAVE_GETADDRINFO)
check_function_exists(gettimeofday HAVE_GETTIMEOFDAY)
check_function_exists(strcasecmp HAVE_STRCASECMP)
# =====================================
# Detect installed libraries
# =====================================
@ -274,7 +255,7 @@ if(USE_EXTERNAL)
FetchContent_Declare(libftdi
GIT_REPOSITORY https://github.com/avrdudes/libftdi.git
GIT_TAG facd9b16336539b68e8e824ece994d3d3eb2f091
GIT_TAG f3a54da710002a7d25a32a69e667a69ef84cc120
)
message(STATUS "Fetching external libraries, please wait...")
@ -313,10 +294,8 @@ endif()
add_compile_definitions(CONFIG_DIR=\"${CONFIG_DIR}\")
if(WIN32)
set(HAVE_LIBWS2_32 1)
set(EXTRA_WINDOWS_SOURCES "${PROJECT_BINARY_DIR}/windows.rc")
set(EXTRA_WINDOWS_LIBRARIES setupapi ws2_32)
add_compile_definitions(WIN32NATIVE=1)
endif()
if(NOT WIN32)
@ -325,11 +304,6 @@ if(NOT WIN32)
endif()
if(MSVC)
# The following functions are implemented in the MSVC compatibility layer
set(HAVE_USLEEP 1)
set(HAVE_GETTIMEOFDAY 1)
set(HAVE_STRCASECMP 1)
add_compile_definitions(_CRT_SECURE_NO_WARNINGS=1)
add_compile_definitions(_CRT_NONSTDC_NO_WARNINGS=1)
add_compile_definitions(_WINSOCK_DEPRECATED_NO_WARNINGS=1)
@ -395,7 +369,6 @@ if (DEBUG_CMAKE)
message(STATUS "HAVE_LIBFTDI: ${HAVE_LIBFTDI}")
message(STATUS "HAVE_LIBFTDI1: ${HAVE_LIBFTDI1}")
message(STATUS "HAVE_LIBREADLINE: ${HAVE_LIBREADLINE}")
message(STATUS "HAVE_LIBWS2_32: ${HAVE_LIBWS2_32}")
message(STATUS "HAVE_LIBELF_H: ${HAVE_LIBELF_H}")
message(STATUS "HAVE_LIBELF_LIBELF_H: ${HAVE_LIBELF_LIBELF_H}")
message(STATUS "HAVE_USB_H: ${HAVE_USB_H}")
@ -555,7 +528,6 @@ add_library(libavrdude STATIC
lists.c
micronucleus.c
micronucleus.h
my_ddk_hidsdi.h
par.c
par.h
pgm.c

View File

@ -138,7 +138,6 @@ libavrdude_a_SOURCES = \
lists.c \
micronucleus.c \
micronucleus.h \
my_ddk_hidsdi.h \
par.c \
par.h \
pgm.c \

View File

@ -22,7 +22,7 @@
#define avrdude_h
#define SYSTEM_CONF_FILE "avrdude.conf"
#if defined(WIN32NATIVE)
#if defined(WIN32)
#define USER_CONF_FILE "avrdude.rc"
#else
#define USER_CONF_FILE ".avrduderc"
@ -44,27 +44,4 @@ int avrdude_message(const int msglvl, const char *format, ...);
#define MSG_TRACE (4) /* displayed with -vvvv, show trace commuication */
#define MSG_TRACE2 (5) /* displayed with -vvvvv */
#if defined(WIN32NATIVE)
#include "ac_cfg.h"
#include <windows.h>
#ifdef __cplusplus
extern "C" {
#endif
#if !defined(HAVE_USLEEP)
int usleep(unsigned int us);
#endif
#if !defined(HAVE_GETTIMEOFDAY)
struct timezone;
int gettimeofday(struct timeval *tv, struct timezone *tz);
#endif /* HAVE_GETTIMEOFDAY */
#ifdef __cplusplus
}
#endif
#endif /* defined(WIN32NATIVE) */
#endif

View File

@ -28,7 +28,10 @@
#include <unistd.h>
#include <errno.h>
#if !defined(WIN32NATIVE)
#if defined(WIN32)
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#else
#include <signal.h>
#include <sys/time.h>
#endif
@ -43,7 +46,7 @@
static int delay_decrement;
#if defined(WIN32NATIVE)
#if defined(WIN32)
static int has_perfcount;
static LARGE_INTEGER freq;
#else
@ -57,14 +60,14 @@ static void alarmhandler(int signo)
done = 1;
signal(SIGALRM, saved_alarmhandler);
}
#endif /* WIN32NATIVE */
#endif /* WIN32 */
/*
* Calibrate the microsecond delay loop below.
*/
static void bitbang_calibrate_delay(void)
{
#if defined(WIN32NATIVE)
#if defined(WIN32)
/*
* If the hardware supports a high-resolution performance counter,
* we ultimately prefer that one, as it gives quite accurate delays
@ -91,7 +94,7 @@ static void bitbang_calibrate_delay(void)
progname);
delay_decrement = 100;
}
#else /* !WIN32NATIVE */
#else /* !WIN32 */
struct itimerval itv;
volatile int i;
@ -124,7 +127,7 @@ static void bitbang_calibrate_delay(void)
delay_decrement = -i / 100000;
avrdude_message(MSG_NOTICE2, " calibrated to %d cycles per us\n",
delay_decrement);
#endif /* WIN32NATIVE */
#endif /* WIN32 */
}
/*
@ -134,7 +137,7 @@ static void bitbang_calibrate_delay(void)
*/
void bitbang_delay(unsigned int us)
{
#if defined(WIN32NATIVE)
#if defined(WIN32)
LARGE_INTEGER countNow, countEnd;
if (has_perfcount)
@ -147,14 +150,14 @@ void bitbang_delay(unsigned int us)
}
else /* no performance counters -- run normal uncalibrated delay */
{
#endif /* WIN32NATIVE */
#endif /* WIN32 */
volatile unsigned int del = us * delay_decrement;
while (del > 0)
del--;
#if defined(WIN32NATIVE)
#if defined(WIN32)
}
#endif /* WIN32NATIVE */
#endif /* WIN32 */
}
/*

View File

@ -35,18 +35,6 @@
/* ----- Functions ----- */
/* Define to 1 if you have the `usleep' function. */
#cmakedefine HAVE_USLEEP 1
/* Define to 1 if you have the `getaddrinfo' function. */
#cmakedefine HAVE_GETADDRINFO 1
/* Define to 1 if you have the `gettimeofday' function. */
#cmakedefine HAVE_GETTIMEOFDAY 1
/* Define to 1 if you have the `strcasecmp' function. */
#cmakedefine HAVE_STRCASECMP 1
/* Define if lex/flex has yylex_destroy */
#cmakedefine HAVE_YYLEX_DESTROY 1
@ -61,15 +49,6 @@
/* Define to 1 if the system has the type `ulong_t'. */
#cmakedefine HAVE_ULONG_T 1
/* Define to 1 if you have the <stdint.h> header file. */
#cmakedefine HAVE_STDINT_H 1
/* Define to 1 if you have the <stdlib.h> header file. */
#cmakedefine HAVE_STDLIB_H 1
/* Define to 1 if you have the <inttypes.h> header file. */
#cmakedefine HAVE_INTTYPES_H 1
/* Define if ELF support is enabled via libelf */
#cmakedefine HAVE_LIBELF 1
@ -120,9 +99,3 @@
/* Define to 1 if you have the `readline' library (-lreadline). */
#cmakedefine HAVE_LIBREADLINE 1
/* Define to 1 if you have the `ws2_32' library (-lws2_32). */
#cmakedefine HAVE_LIBWS2_32 1
/* Define to 1 if you have the <netinet/in.h> header file. */
#cmakedefine HAVE_NETINET_IN_H 1

View File

@ -30,7 +30,7 @@
#include "libavrdude.h"
#include "config.h"
#if defined(WIN32NATIVE)
#if defined(WIN32)
#define strtok_r( _s, _sep, _lasts ) \
( *(_lasts) = strtok( (_s), (_sep) ) )
#endif

View File

@ -228,9 +228,6 @@ AC_HEADER_TIME
AC_CHECK_HEADERS([netinet/in.h])
# WinSock2
AC_CHECK_LIB([ws2_32], [puts])
# Checks for library functions.
AC_CHECK_FUNCS([memset select strcasecmp strdup strerror strncasecmp strtol strtoul gettimeofday usleep getaddrinfo])
@ -239,12 +236,7 @@ SAVED_LIBS="${LIBS}"
case $target in
*-*-mingw32* | *-*-cygwin* | *-*-windows*)
LIBHID="-lhid -lsetupapi"
if test $ac_cv_header_ddk_hidsdi_h = yes
then
HIDINCLUDE="#include <ddk/hidsdi.h>"
else
HIDINCLUDE="#include \"my_ddk_hidsdi.h\""
fi
HIDINCLUDE="#include <hidsdi.h>"
;;
*)
LIBHID=""

View File

@ -20,15 +20,13 @@
#include "avrdude.h"
#include "libavrdude.h"
#if defined(WIN32NATIVE)
#if defined(WIN32)
#include <limits.h>
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
static char *filename;
void win_sys_config_set(char sys_config[PATH_MAX])
{
sys_config[0] = 0;
@ -38,7 +36,6 @@ void win_sys_config_set(char sys_config[PATH_MAX])
return;
}
void win_usr_config_set(char usr_config[PATH_MAX])
{
usr_config[0] = 0;
@ -48,7 +45,4 @@ void win_usr_config_set(char usr_config[PATH_MAX])
return;
}
#endif

View File

@ -1369,7 +1369,7 @@ static int fmt_autodetect(char * fname)
int found;
int first = 1;
#if defined(WIN32NATIVE)
#if defined(WIN32)
f = fopen(fname, "r");
#else
f = fopen(fname, "rb");
@ -1518,7 +1518,7 @@ int fileio(int op, char * filename, FILEFMT format,
}
}
#if defined(WIN32NATIVE)
#if defined(WIN32)
/* Open Raw Binary and ELF format in binary mode on Windows.*/
if(format == FMT_RBIN || format == FMT_ELF)
{

View File

@ -23,6 +23,7 @@
#include "ac_cfg.h"
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@ -30,13 +31,6 @@
#include <limits.h>
#include <unistd.h>
#if HAVE_STDINT_H
#include <stdint.h>
#elif HAVE_INTTYPES_H
#include <inttypes.h>
#endif
#include "avrdude.h"
#include "libavrdude.h"

View File

@ -20,6 +20,7 @@
#include "ac_cfg.h"
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@ -27,12 +28,6 @@
#include <limits.h>
#include <unistd.h>
#if HAVE_STDINT_H
#include <stdint.h>
#elif HAVE_INTTYPES_H
#include <inttypes.h>
#endif
#include "avrdude.h"
#include "libavrdude.h"

View File

@ -73,10 +73,6 @@
#define TPIPCR_GT_0b 0x07
#define TPI_STOP_BITS 0x03
#if defined(_WIN32)
#include <windows.h>
#endif
#if defined(HAVE_LIBFTDI1) && defined(HAVE_LIBUSB_1_0)
# if defined(HAVE_LIBUSB_1_0_LIBUSB_H)
# include <libusb-1.0/libusb.h>

View File

@ -27,15 +27,9 @@
#include <stdio.h>
#include <limits.h>
#include <stdbool.h>
/* lets try to select at least 32 bits */
#ifdef HAVE_STDINT_H
#include <stdint.h>
typedef uint32_t pinmask_t;
#else
#error Need a C99 capable compiler
#endif
typedef uint32_t pinmask_t;
/* formerly lists.h */
@ -958,7 +952,7 @@ int read_config(const char * file);
/* formerly confwin.h */
#if defined(WIN32NATIVE)
#if defined(WIN32)
#ifdef __cplusplus
extern "C" {
@ -971,7 +965,7 @@ void win_usr_config_set(char usr_config[PATH_MAX]);
}
#endif
#endif /* WIN32NATIVE */
#endif /* WIN32 */
#endif /* libavrdude_h */

View File

@ -362,7 +362,7 @@ int main(int argc, char * argv [])
char * safemode_response;
int fuses_updated = 0;
#if !defined(WIN32NATIVE)
#if !defined(WIN32)
char * homedir;
#endif
@ -377,10 +377,10 @@ int main(int argc, char * argv [])
progname = strrchr(argv[0],'/');
#if defined (WIN32NATIVE)
#if defined (WIN32)
/* take care of backslash as dir sep in W32 */
if (!progname) progname = strrchr(argv[0],'\\');
#endif /* WIN32NATIVE */
#endif /* WIN32 */
if (progname)
progname++;
@ -730,7 +730,7 @@ int main(int argc, char * argv [])
}
if (!sys_config_found) {
// 3. Check CONFIG_DIR/avrdude.conf
#if defined(WIN32NATIVE)
#if defined(WIN32)
win_sys_config_set(sys_config);
#else
strcpy(sys_config, CONFIG_DIR);
@ -754,7 +754,7 @@ int main(int argc, char * argv [])
* -----------
* Determine the location of '.avrduderc'.
*/
#if defined(WIN32NATIVE)
#if defined(WIN32)
win_usr_config_set(usr_config);
#else
usr_config[0] = 0;

View File

@ -49,6 +49,7 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
#define WIN32_LEAN_AND_MEAN
#include <errno.h>
#include <stdlib.h>
#include <string.h>

View File

@ -3,6 +3,7 @@
* This file is part of the mingw-w64 runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
#define WIN32_LEAN_AND_MEAN
#include <time.h>
#include <sys/time.h>
#include <sys/timeb.h>

View File

@ -19,6 +19,19 @@
#ifndef _TIME_H_
#define _TIME_H_
// If you need both <windows.h> and <sys/time.h>,
// make sure you include <windows.h> first.
#ifndef _WINSOCKAPI_
#ifndef _TIMEVAL_DEFINED
#define _TIMEVAL_DEFINED
struct timeval
{
long tv_sec;
long tv_usec;
};
#endif /* _TIMEVAL_DEFINED */
#endif /* _WINSOCKAPI_ */
struct timezone
{
int tz_minuteswest;

View File

@ -1,48 +0,0 @@
/*
* avrdude - A Downloader/Uploader for AVR device programmers
* Copyright (C) 2006 Christian Starkjohann
*
* 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; either version 2 of the License, or
* (at your option) any later version.
*
* 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, see <http://www.gnu.org/licenses/>.
*/
/* $Id$ */
/*
The following is a replacement for hidsdi.h from the Windows DDK. It defines some
of the types and function prototypes of this header for our project. If you
have the Windows DDK version of this file or a version shipped with MinGW, use
that instead.
*/
#ifndef MY_DDK_HIDSDI_H
#define MY_DDK_HIDSDI_H
#include <pshpack4.h>
#include <ddk/hidusage.h>
#include <ddk/hidpi.h>
typedef struct{
ULONG Size;
USHORT VendorID;
USHORT ProductID;
USHORT VersionNumber;
}HIDD_ATTRIBUTES;
void __stdcall HidD_GetHidGuid(OUT LPGUID hidGuid);
BOOLEAN __stdcall HidD_GetAttributes(IN HANDLE device, OUT HIDD_ATTRIBUTES *attributes);
BOOLEAN __stdcall HidD_GetManufacturerString(IN HANDLE device, OUT void *buffer, IN ULONG bufferLen);
BOOLEAN __stdcall HidD_GetProductString(IN HANDLE device, OUT void *buffer, IN ULONG bufferLen);
BOOLEAN __stdcall HidD_GetSerialNumberString(IN HANDLE device, OUT void *buffer, IN ULONG bufferLen);
BOOLEAN __stdcall HidD_GetFeature(IN HANDLE device, OUT void *reportBuffer, IN ULONG bufferLen);
BOOLEAN __stdcall HidD_SetFeature(IN HANDLE device, IN void *reportBuffer, IN ULONG bufferLen);
BOOLEAN __stdcall HidD_GetNumInputBuffers(IN HANDLE device, OUT ULONG *numBuffers);
BOOLEAN __stdcall HidD_SetNumInputBuffers(IN HANDLE device, OUT ULONG numBuffers);
#include <poppack.h>
#endif /* MY_DDK_HIDSDI_H */

View File

@ -54,9 +54,10 @@
#include "avrdude.h"
#include "libavrdude.h"
#if defined(HAVE_LIBUSB) || (defined(WIN32NATIVE) && defined(HAVE_LIBHID))
#if defined(HAVE_LIBUSB) || (defined(WIN32) && defined(HAVE_LIBHID))
#if (defined(WIN32NATIVE) && defined(HAVE_LIBHID))
#if (defined(WIN32) && defined(HAVE_LIBHID))
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <hidsdi.h>
#include <setupapi.h>
@ -87,8 +88,7 @@
#define SPI_MAX_CHUNK (64 - 10) // max packet size less the command overhead
// win32native only:
#if (defined(WIN32NATIVE) && defined(HAVE_LIBHID))
#if (defined(WIN32) && defined(HAVE_LIBHID))
static HANDLE open_hid(unsigned short vid, unsigned short pid);
static const char *usb_strerror()
{
@ -102,7 +102,7 @@ static int usb_open_device(struct usb_dev_handle **dev, int vid, int pid);
#define USB_ERROR_NOTFOUND 2
#define USB_ERROR_BUSY 16
#define USB_ERROR_IO 5
#endif // WIN32NATIVE
#endif // WIN32
static int pickit2_write_report(PROGRAMMER *pgm, const unsigned char report[65]);
static int pickit2_read_report(PROGRAMMER *pgm, unsigned char report[65]);
@ -116,7 +116,7 @@ static int pickit2_read_report(PROGRAMMER *pgm, unsigned char report[65]);
*/
struct pdata
{
#if (defined(WIN32NATIVE) && defined(HAVE_LIBHID))
#if (defined(WIN32) && defined(HAVE_LIBHID))
HANDLE usb_handle, write_event, read_event;
#else
struct usb_dev_handle *usb_handle; // LIBUSB STUFF
@ -181,7 +181,7 @@ static void pickit2_teardown(PROGRAMMER * pgm)
static int pickit2_open(PROGRAMMER * pgm, char * port)
{
#if (defined(WIN32NATIVE) && defined(HAVE_LIBHID))
#if (defined(WIN32) && defined(HAVE_LIBHID))
PDATA(pgm)->usb_handle = open_hid(PICKIT2_VID, PICKIT2_PID);
if (PDATA(pgm)->usb_handle == INVALID_HANDLE_VALUE)
@ -229,13 +229,13 @@ static int pickit2_open(PROGRAMMER * pgm, char * port)
static void pickit2_close(PROGRAMMER * pgm)
{
#if (defined(WIN32NATIVE) && defined(HAVE_LIBHID))
#if (defined(WIN32) && defined(HAVE_LIBHID))
CloseHandle(PDATA(pgm)->usb_handle);
CloseHandle(PDATA(pgm)->read_event);
CloseHandle(PDATA(pgm)->write_event);
#else
usb_close(PDATA(pgm)->usb_handle);
#endif // WIN32NATIVE
#endif // WIN32
}
@ -810,7 +810,7 @@ static int pickit2_spi(struct programmer_t * pgm, const unsigned char *cmd,
return n_bytes;
}
#if (defined(WIN32NATIVE) && defined(HAVE_LIBHID))
#if (defined(WIN32) && defined(HAVE_LIBHID))
/*
Func: open_hid()
Desc: finds & opens device having specified VID & PID.
@ -1120,7 +1120,7 @@ static int pickit2_read_report(PROGRAMMER * pgm, unsigned char report[65])
return usb_read_interrupt(pgm, report, 65, PDATA(pgm)->transaction_timeout);
}
#else // WIN32NATIVE
#else // WIN32
/* taken (modified) from avrdude usbasp.c */
static int usb_open_device(struct usb_dev_handle **device, int vendor, int product)
{
@ -1184,7 +1184,7 @@ static int usb_open_device(struct usb_dev_handle **device, int vendor, int produ
static int pickit2_write_report(PROGRAMMER * pgm, const unsigned char report[65])
{
// endpoint 1 OUT??
return usb_interrupt_write(PDATA(pgm)->usb_handle, USB_ENDPOINT_OUT | 1, (const char*)(report+1), 64, PDATA(pgm)->transaction_timeout);
return usb_interrupt_write(PDATA(pgm)->usb_handle, USB_ENDPOINT_OUT | 1, (char*)(report+1), 64, PDATA(pgm)->transaction_timeout);
}
static int pickit2_read_report(PROGRAMMER * pgm, unsigned char report[65])
@ -1192,7 +1192,7 @@ static int pickit2_read_report(PROGRAMMER * pgm, unsigned char report[65])
// endpoint 1 IN??
return usb_interrupt_read(PDATA(pgm)->usb_handle, USB_ENDPOINT_IN | 1, (char*)(report+1), 64, PDATA(pgm)->transaction_timeout);
}
#endif // WIN323NATIVE
#endif // WIN32
static int pickit2_parseextparams(struct programmer_t * pgm, LISTID extparms)
{
@ -1310,7 +1310,7 @@ void pickit2_initpgm (PROGRAMMER * pgm)
#else
static int pickit2_nousb_open (struct programmer_t *pgm, char * name) {
avrdude_message(MSG_INFO,
#ifdef WIN32NATIVE
#ifdef WIN32
"%s: error: no usb or hid support. Please compile again with libusb or HID support from Win32 DDK installed.\n",
#else
"%s: error: no usb support. Please compile again with libusb installed.\n",
@ -1332,7 +1332,7 @@ void pickit2_initpgm (PROGRAMMER * pgm)
strncpy(pgm->type, "pickit2", sizeof(pgm->type));
}
#endif /* defined(HAVE_LIBUSB) || (defined(WIN32NATIVE) && defined(HAVE_LIBHID)) */
#endif /* defined(HAVE_LIBUSB) || (defined(WIN32) && defined(HAVE_LIBHID)) */
const char pickit2_desc[] = "Microchip's PICkit2 Programmer";

View File

@ -19,7 +19,7 @@
/* $Id$ */
#if !defined(WIN32NATIVE)
#if !defined(WIN32)
#include "ac_cfg.h"
@ -233,4 +233,4 @@ void ppi_close(union filedescriptor *fdp)
#endif /* HAVE_PARPORT */
#endif /* !WIN32NATIVE */
#endif /* !WIN32 */

View File

@ -32,8 +32,9 @@ reg = register as defined in an enum in ppi.h. This must be converted
#include "ac_cfg.h"
#if defined(HAVE_PARPORT) && defined(WIN32NATIVE)
#if defined(HAVE_PARPORT) && defined(WIN32)
#define WIN32_LEAN_AND_MEAN
#include <errno.h>
#include <fcntl.h>
#include <stdio.h>
@ -336,82 +337,4 @@ static void outb(unsigned char value, unsigned short port)
return;
}
#if !defined(HAVE_GETTIMEOFDAY)
struct timezone;
int gettimeofday(struct timeval *tv, struct timezone *unused){
// i've found only ms resolution, avrdude expects us
SYSTEMTIME st;
GetSystemTime(&st);
tv->tv_sec=(long)(st.wSecond+st.wMinute*60+st.wHour*3600);
tv->tv_usec=(long)(st.wMilliseconds*1000);
return 0;
}
#endif /* HAVE_GETTIMEOFDAY */
// #define W32USLEEPDBG
#ifdef W32USLEEPDBG
# define DEBUG_QueryPerformanceCounter(arg) QueryPerformanceCounter(arg)
# define DEBUG_DisplayTimingInfo(start, stop, freq, us, has_highperf) \
do { \
unsigned long dt; \
dt = (unsigned long)((stop.QuadPart - start.QuadPart) * 1000 * 1000 \
/ freq.QuadPart); \
avrdude_message(MSG_INFO, \
"hpt:%i usleep usec:%lu sleep msec:%lu timed usec:%lu\n", \
has_highperf, us, ((us + 999) / 1000), dt); \
} while (0)
#else
# define DEBUG_QueryPerformanceCounter(arg)
# define DEBUG_DisplayTimingInfo(start, stop, freq, us, has_highperf)
#endif
#if !defined(HAVE_USLEEP)
int usleep(unsigned int us)
{
int has_highperf;
LARGE_INTEGER freq,start,stop,loopend;
// workaround: although usleep is very precise if using
// high-performance-timers there are sometimes problems with
// verify - increasing the delay helps sometimes but not
// realiably. There must be some other problem. Maybe just
// with my test-hardware maybe in the code-base.
//// us=(unsigned long) (us*1.5);
has_highperf=QueryPerformanceFrequency(&freq);
//has_highperf=0; // debug
if (has_highperf) {
QueryPerformanceCounter(&start);
loopend.QuadPart=start.QuadPart+freq.QuadPart*us/(1000*1000);
do {
QueryPerformanceCounter(&stop);
} while (stop.QuadPart<=loopend.QuadPart);
}
else {
DEBUG_QueryPerformanceCounter(&start);
Sleep(1);
Sleep( (DWORD)((us+999)/1000) );
DEBUG_QueryPerformanceCounter(&stop);
}
DEBUG_DisplayTimingInfo(start, stop, freq, us, has_highperf);
return 0;
}
#endif /* !HAVE_USLEEP */
#endif

View File

@ -26,7 +26,7 @@
#include "ac_cfg.h"
#if defined(HAVE_LIBHIDAPI) || (defined(WIN32NATIVE) && defined(HAVE_LIBHID))
#if defined(HAVE_LIBHIDAPI) || (defined(WIN32) && defined(HAVE_LIBHID))
#include <stdio.h>
#include <string.h>
@ -161,6 +161,7 @@ static int usbGetReport(union filedescriptor *fdp, int reportType, int reportNum
/* ------------------------------------------------------------------------ */
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <setupapi.h>
#include <hidsdi.h>
@ -327,7 +328,7 @@ static int usbGetReport(union filedescriptor *fdp, int reportType, int reportNum
return rval == 0 ? USB_ERROR_IO : 0;
}
#endif /* WIN32NATIVE */
#endif /* WIN32 */
/* ------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------ */
@ -550,4 +551,4 @@ struct serial_device avrdoper_serdev =
.flags = SERDEV_FL_NONE,
};
#endif /* defined(HAVE_LIBHIDAPI) || (defined(WIN32NATIVE) && defined(HAVE_LIBHID)) */
#endif /* defined(HAVE_LIBHIDAPI) || (defined(WIN32) && defined(HAVE_LIBHID)) */

View File

@ -23,7 +23,7 @@
* Posix serial interface for avrdude.
*/
#if !defined(WIN32NATIVE)
#if !defined(WIN32)
#include "ac_cfg.h"
@ -174,7 +174,6 @@ static int ser_setparams(union filedescriptor *fd, long baud, unsigned long cfla
static int
net_open(const char *port, union filedescriptor *fdp)
{
#ifdef HAVE_GETADDRINFO
char *hp, *hstr, *pstr;
int s, fd, ret = -1;
struct addrinfo hints;
@ -247,12 +246,6 @@ net_open(const char *port, union filedescriptor *fdp)
error:
free(hp);
return ret;
#else
avrdude_message(MSG_INFO,
"%s: Networking is not supported on your platform.\n"
"If you need it, please open a bug report.\n", progname);
return -1;
#endif /* HAVE_GETADDRINFO */
}
@ -526,4 +519,4 @@ struct serial_device serial_serdev =
struct serial_device *serdev = &serial_serdev;
#endif /* WIN32NATIVE */
#endif /* WIN32 */

View File

@ -17,22 +17,18 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/* $Id$ */
/*
* Native Win32 serial interface for avrdude.
*/
#include "ac_cfg.h"
#if defined(WIN32NATIVE)
#ifdef HAVE_LIBWS2_32
/* winsock2.h must be included before windows.h from avrdude.h... */
# include <winsock2.h>
#endif
#if defined(WIN32)
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <winsock2.h>
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h> /* for isprint */
#include <errno.h> /* ENOTTY */
@ -154,7 +150,6 @@ static int ser_setparams(union filedescriptor *fd, long baud, unsigned long cfla
}
}
#ifdef HAVE_LIBWS2_32
static int
net_open(const char *port, union filedescriptor *fdp)
{
@ -246,7 +241,6 @@ net_open(const char *port, union filedescriptor *fdp)
serial_over_ethernet = 1;
return 0;
}
#endif
static int ser_open(char * port, union pinfo pinfo, union filedescriptor *fdp)
@ -260,14 +254,7 @@ static int ser_open(char * port, union pinfo pinfo, union filedescriptor *fdp)
* handle it as a TCP connection to a terminal server.
*/
if (strncmp(port, "net:", strlen("net:")) == 0) {
#ifdef HAVE_LIBWS2_32
return net_open(port + strlen("net:"), fdp);
#else
avrdude_message(MSG_INFO, "%s: ser_open(): "
"not configured for TCP connections\n",
progname);
return -1;
#endif
}
if (strncasecmp(port, "com", strlen("com")) == 0) {
@ -370,7 +357,6 @@ static int ser_set_dtr_rts(union filedescriptor *fd, int is_on)
}
}
#ifdef HAVE_LIBWS2_32
static int net_send(union filedescriptor *fd, const unsigned char * buf, size_t buflen)
{
LPVOID lpMsgBuf;
@ -429,16 +415,13 @@ static int net_send(union filedescriptor *fd, const unsigned char * buf, size_t
return 0;
}
#endif
static int ser_send(union filedescriptor *fd, const unsigned char * buf, size_t buflen)
{
#ifdef HAVE_LIBWS2_32
if (serial_over_ethernet) {
return net_send(fd, buf, buflen);
}
#endif
size_t len = buflen;
unsigned char c='\0';
@ -493,7 +476,6 @@ static int ser_send(union filedescriptor *fd, const unsigned char * buf, size_t
}
#ifdef HAVE_LIBWS2_32
static int net_recv(union filedescriptor *fd, unsigned char * buf, size_t buflen)
{
LPVOID lpMsgBuf;
@ -587,15 +569,12 @@ reselect:
return 0;
}
#endif
static int ser_recv(union filedescriptor *fd, unsigned char * buf, size_t buflen)
{
#ifdef HAVE_LIBWS2_32
if (serial_over_ethernet) {
return net_recv(fd, buf, buflen);
}
#endif
unsigned char c;
unsigned char * p = buf;
@ -660,7 +639,6 @@ static int ser_recv(union filedescriptor *fd, unsigned char * buf, size_t buflen
return 0;
}
#ifdef HAVE_LIBWS2_32
static int net_drain(union filedescriptor *fd, int display)
{
LPVOID lpMsgBuf;
@ -739,15 +717,12 @@ static int net_drain(union filedescriptor *fd, int display)
return 0;
}
#endif
static int ser_drain(union filedescriptor *fd, int display)
{
#ifdef HAVE_LIBWS2_32
if (serial_over_ethernet) {
return net_drain(fd, display);
}
#endif
// int rc;
unsigned char buf[10];
@ -813,4 +788,4 @@ struct serial_device serial_serdev =
struct serial_device *serdev = &serial_serdev;
#endif /* WIN32NATIVE */
#endif /* WIN32 */

View File

@ -23,7 +23,7 @@
* Posix serial bitbanging interface for avrdude.
*/
#if !defined(WIN32NATIVE)
#if !defined(WIN32)
#include "ac_cfg.h"
@ -318,4 +318,4 @@ void serbb_initpgm(PROGRAMMER *pgm)
pgm->write_byte = avr_write_byte_default;
}
#endif /* WIN32NATIVE */
#endif /* WIN32 */

View File

@ -25,11 +25,12 @@
#include "avrdude.h"
#if defined(WIN32NATIVE)
#if defined(WIN32)
#include "ac_cfg.h"
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <stdio.h>
@ -363,4 +364,4 @@ void serbb_initpgm(PROGRAMMER *pgm)
pgm->write_byte = avr_write_byte_default;
}
#endif /* WIN32NATIVE */
#endif /* WIN32 */

View File

@ -1613,7 +1613,7 @@ static int stk500v2_open(PROGRAMMER * pgm, char * port)
PDATA(pgm)->pgmtype = PGMTYPE_UNKNOWN;
if(strcasecmp(port, "avrdoper") == 0){
#if defined(HAVE_LIBHIDAPI) || (defined(WIN32NATIVE) && defined(HAVE_LIBHID))
#if defined(HAVE_LIBHIDAPI) || (defined(WIN32) && defined(HAVE_LIBHID))
serdev = &avrdoper_serdev;
PDATA(pgm)->pgmtype = PGMTYPE_STK500;
#else

View File

@ -27,11 +27,9 @@
#include <limits.h>
#if defined(HAVE_LIBREADLINE)
#if !defined(WIN32NATIVE)
# include <readline/readline.h>
# include <readline/history.h>
#endif
#endif
#include "avrdude.h"
#include "term.h"
@ -919,7 +917,7 @@ static int do_cmd(PROGRAMMER * pgm, struct avrpart * p,
char * terminal_get_input(const char *prompt)
{
#if defined(HAVE_LIBREADLINE) && !defined(WIN32NATIVE)
#if defined(HAVE_LIBREADLINE) && !defined(WIN32)
char *input;
input = readline(prompt);
if ((input != NULL) && (strlen(input) >= 1))

View File

@ -39,14 +39,9 @@
#include "updi_constants.h"
#include "updi_state.h"
#include <sys/time.h>
void msleep(int tms)
static void msleep(int tms)
{
struct timeval tv;
tv.tv_sec = tms / 1000;
tv.tv_usec = (tms % 1000) * 1000;
select (0, NULL, NULL, NULL, &tv);
usleep(tms * 1000);
}
static int updi_physical_open(PROGRAMMER* pgm, int baudrate, unsigned long cflags)

View File

@ -42,11 +42,6 @@
#include "usbdevs.h"
#if defined(WIN32NATIVE)
/* someone has defined "interface" to "struct" in Cygwin */
# undef interface
#endif
/*
* The "baud" parameter is meaningless for USB devices, so we reuse it
* to pass the desired USB device ID.

View File

@ -48,7 +48,7 @@
#include "usbdevs.h"
#if defined(WIN32NATIVE)
#if defined(WIN32)
/* someone has defined "interface" to "struct" in Cygwin */
# undef interface
#endif

View File

@ -52,13 +52,7 @@
#define TPIPCR_GT_0b 0x07
#define TPI_STOP_BITS 0x03
#ifdef HAVE_NETINET_IN_H
# include <netinet/in.h>
# define LITTLE_TO_BIG_16(x) (htons(x))
#else
// WIN32
#define LITTLE_TO_BIG_16(x) ((((x) << 8) & 0xFF00) | (((x) >> 8) & 0x00FF))
#endif
#ifndef HAVE_UINT_T
typedef unsigned int uint_t;