mirror of
https://github.com/avrdudes/avrdude.git
synced 2026-08-06 16:35:45 +03:00
mkII. The serial transport methods have been moved out into a record of function pointers for that purpose, defaulting to the actual serial connection that natively applies to the hosting system. Iff inside the JTAG ICE mkII handler a port name starting with "usb" has been detected, the record of function pointers is switched to USB. Optionally, a serial number might be specified, so only the JTAG ICE mkII matching the given serial number will be opened. The match is done right-to-left, so only the least significant bytes of the serial number need to be given. In order to make the change as least intrusive to existing drivers as possible, the entire naming scheme of the serial_foo() function entry points has been maintained as access macros that encapsulate these into the respective indirect function calls via serdev->foo(). git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@478 81a1dc3b-b13d-400b-aceb-764788c761c2
57 lines
1.8 KiB
C
57 lines
1.8 KiB
C
/*
|
|
* avrdude - A Downloader/Uploader for AVR device programmers
|
|
* Copyright (C) 2003-2004 Theodore A. Roth <troth@openavr.org>
|
|
*
|
|
* 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, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
*/
|
|
|
|
/* $Id$ */
|
|
|
|
/* This is the API for the generic serial interface. The implementations are
|
|
actually provided by the target dependant files:
|
|
|
|
ser_posix.c : posix serial interface.
|
|
ser_win32.c : native win32 serial interface.
|
|
|
|
The target file will be selected at configure time. */
|
|
|
|
#ifndef __serial_h__
|
|
#define __serial_h__
|
|
|
|
extern long serial_recv_timeout;
|
|
|
|
struct serial_device
|
|
{
|
|
int (*open)(char * port, long baud);
|
|
int (*setspeed)(int fd, long baud);
|
|
void (*close)(int fd);
|
|
|
|
int (*send)(int fd, char * buf, size_t buflen);
|
|
int (*recv)(int fd, char * buf, size_t buflen);
|
|
int (*drain)(int fd, int display);
|
|
};
|
|
|
|
extern struct serial_device *serdev;
|
|
extern struct serial_device serial_serdev, usb_serdev;
|
|
|
|
#define serial_open (serdev->open)
|
|
#define serial_setspeed (serdev->setspeed)
|
|
#define serial_close (serdev->close)
|
|
#define serial_send (serdev->send)
|
|
#define serial_recv (serdev->recv)
|
|
#define serial_drain (serdev->drain)
|
|
|
|
#endif /* __serial_h__ */
|