common/xyzModem.c: unifdef (Remove useless #ifdefs)
Signed-off-by: Alexandru Gagniuc <alex.g@adaptrum.com>
This commit is contained in:
parent
0dcf18c69d
commit
306b236bc1
@ -39,25 +39,17 @@
|
||||
#define CAN 0x18
|
||||
#define EOF 0x1A /* ^Z for DOS officionados */
|
||||
|
||||
#define USE_YMODEM_LENGTH
|
||||
|
||||
/* Data & state local to the protocol */
|
||||
static struct
|
||||
{
|
||||
#ifdef REDBOOT
|
||||
hal_virtual_comm_table_t *__chan;
|
||||
#else
|
||||
int *__chan;
|
||||
#endif
|
||||
unsigned char pkt[1024], *bufp;
|
||||
unsigned char blk, cblk, crc1, crc2;
|
||||
unsigned char next_blk; /* Expected block */
|
||||
int len, mode, total_retries;
|
||||
int total_SOH, total_STX, total_CAN;
|
||||
bool crc_mode, at_eof, tx_ack;
|
||||
#ifdef USE_YMODEM_LENGTH
|
||||
unsigned long file_length, read_length;
|
||||
#endif
|
||||
} xyz;
|
||||
|
||||
#define xyzModem_CHAR_TIMEOUT 2000 /* 2 seconds */
|
||||
@ -66,7 +58,6 @@ static struct
|
||||
#define xyzModem_CAN_COUNT 3 /* Wait for 3 CAN before quitting */
|
||||
|
||||
|
||||
#ifndef REDBOOT /*SB */
|
||||
typedef int cyg_int32;
|
||||
static int
|
||||
CYGACC_COMM_IF_GETC_TIMEOUT (char chan, char *c)
|
||||
@ -156,17 +147,7 @@ parse_num (char *s, unsigned long *val, char **es, char *delim)
|
||||
if (_is_hex (c) && ((digit = _from_hex (c)) < radix))
|
||||
{
|
||||
/* Valid digit */
|
||||
#ifdef CYGPKG_HAL_MIPS
|
||||
/* FIXME: tx49 compiler generates 0x2539018 for MUL which */
|
||||
/* isn't any good. */
|
||||
if (16 == radix)
|
||||
result = result << 4;
|
||||
else
|
||||
result = 10 * result;
|
||||
result += digit;
|
||||
#else
|
||||
result = (result * radix) + digit;
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -190,41 +171,8 @@ parse_num (char *s, unsigned long *val, char **es, char *delim)
|
||||
return true;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#define USE_SPRINTF
|
||||
#ifdef DEBUG
|
||||
#ifndef USE_SPRINTF
|
||||
/*
|
||||
* Note: this debug setup only works if the target platform has two serial ports
|
||||
* available so that the other one (currently only port 1) can be used for debug
|
||||
* messages.
|
||||
*/
|
||||
static int
|
||||
zm_dprintf (char *fmt, ...)
|
||||
{
|
||||
int cur_console;
|
||||
va_list args;
|
||||
|
||||
va_start (args, fmt);
|
||||
#ifdef REDBOOT
|
||||
cur_console =
|
||||
CYGACC_CALL_IF_SET_CONSOLE_COMM
|
||||
(CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT);
|
||||
CYGACC_CALL_IF_SET_CONSOLE_COMM (1);
|
||||
#endif
|
||||
diag_vprintf (fmt, args);
|
||||
#ifdef REDBOOT
|
||||
CYGACC_CALL_IF_SET_CONSOLE_COMM (cur_console);
|
||||
#endif
|
||||
}
|
||||
|
||||
static void
|
||||
zm_flush (void)
|
||||
{
|
||||
}
|
||||
|
||||
#else
|
||||
/*
|
||||
* Note: this debug setup works by storing the strings in a fixed buffer
|
||||
*/
|
||||
@ -253,23 +201,13 @@ zm_dprintf (char *fmt, ...)
|
||||
static void
|
||||
zm_flush (void)
|
||||
{
|
||||
#ifdef REDBOOT
|
||||
char *p = zm_out_start;
|
||||
while (*p)
|
||||
mon_write_char (*p++);
|
||||
#endif
|
||||
zm_out = zm_out_start;
|
||||
}
|
||||
#endif
|
||||
|
||||
static void
|
||||
zm_dump_buf (void *buf, int len)
|
||||
{
|
||||
#ifdef REDBOOT
|
||||
diag_vdump_buf_with_offset (zm_dprintf, buf, len, 0);
|
||||
#else
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
static unsigned char zm_buf[2048];
|
||||
@ -476,9 +414,6 @@ xyzModem_get_hdr (void)
|
||||
int
|
||||
xyzModem_stream_open (connection_info_t * info, int *err)
|
||||
{
|
||||
#ifdef REDBOOT
|
||||
int console_chan;
|
||||
#endif
|
||||
int stat = 0;
|
||||
int retries = xyzModem_MAX_RETRIES;
|
||||
int crc_retries = xyzModem_MAX_RETRIES_WITH_CRC;
|
||||
@ -492,29 +427,9 @@ xyzModem_stream_open (connection_info_t * info, int *err)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef REDBOOT
|
||||
/* Set up the I/O channel. Note: this allows for using a different port in the future */
|
||||
console_chan =
|
||||
CYGACC_CALL_IF_SET_CONSOLE_COMM
|
||||
(CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT);
|
||||
if (info->chan >= 0)
|
||||
{
|
||||
CYGACC_CALL_IF_SET_CONSOLE_COMM (info->chan);
|
||||
}
|
||||
else
|
||||
{
|
||||
CYGACC_CALL_IF_SET_CONSOLE_COMM (console_chan);
|
||||
}
|
||||
xyz.__chan = CYGACC_CALL_IF_CONSOLE_PROCS ();
|
||||
|
||||
CYGACC_CALL_IF_SET_CONSOLE_COMM (console_chan);
|
||||
CYGACC_COMM_IF_CONTROL (*xyz.__chan, __COMMCTL_SET_TIMEOUT,
|
||||
xyzModem_CHAR_TIMEOUT);
|
||||
#else
|
||||
/* TODO: CHECK ! */
|
||||
int dummy = 0;
|
||||
xyz.__chan = &dummy;
|
||||
#endif
|
||||
xyz.len = 0;
|
||||
xyz.crc_mode = true;
|
||||
xyz.at_eof = false;
|
||||
@ -524,10 +439,8 @@ xyzModem_stream_open (connection_info_t * info, int *err)
|
||||
xyz.total_SOH = 0;
|
||||
xyz.total_STX = 0;
|
||||
xyz.total_CAN = 0;
|
||||
#ifdef USE_YMODEM_LENGTH
|
||||
xyz.read_length = 0;
|
||||
xyz.file_length = 0;
|
||||
#endif
|
||||
|
||||
CYGACC_COMM_IF_PUTC (*xyz.__chan, (xyz.crc_mode ? 'C' : NAK));
|
||||
|
||||
@ -546,12 +459,10 @@ xyzModem_stream_open (connection_info_t * info, int *err)
|
||||
/* Y-modem file information header */
|
||||
if (xyz.blk == 0)
|
||||
{
|
||||
#ifdef USE_YMODEM_LENGTH
|
||||
/* skip filename */
|
||||
while (*xyz.bufp++);
|
||||
/* get the length */
|
||||
parse_num ((char *) xyz.bufp, &xyz.file_length, NULL, " ");
|
||||
#endif
|
||||
/* The rest of the file name data block quietly discarded */
|
||||
xyz.tx_ack = true;
|
||||
}
|
||||
@ -604,13 +515,8 @@ xyzModem_stream_read (char *buf, int size, int *err)
|
||||
("ACK block %d (%d)\n", xyz.blk, __LINE__));
|
||||
xyz.next_blk = (xyz.next_blk + 1) & 0xFF;
|
||||
|
||||
#if defined(xyzModem_zmodem) || defined(USE_YMODEM_LENGTH)
|
||||
if (xyz.mode == xyzModem_xmodem || xyz.file_length == 0)
|
||||
{
|
||||
#else
|
||||
if (1)
|
||||
{
|
||||
#endif
|
||||
/* Data blocks can be padded with ^Z (EOF) characters */
|
||||
/* This code tries to detect and remove them */
|
||||
if ((xyz.bufp[xyz.len - 1] == EOF) &&
|
||||
@ -625,7 +531,6 @@ xyzModem_stream_read (char *buf, int size, int *err)
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef USE_YMODEM_LENGTH
|
||||
/*
|
||||
* See if accumulated length exceeds that of the file.
|
||||
* If so, reduce size (i.e., cut out pad bytes)
|
||||
@ -640,7 +545,6 @@ xyzModem_stream_read (char *buf, int size, int *err)
|
||||
xyz.len -= (xyz.read_length - xyz.file_length);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
else if (xyz.blk == ((xyz.next_blk - 1) & 0xFF))
|
||||
@ -809,10 +713,3 @@ xyzModem_error (int err)
|
||||
/*
|
||||
* RedBoot interface
|
||||
*/
|
||||
#if 0 /* SB */
|
||||
GETC_IO_FUNCS (xyzModem_io, xyzModem_stream_open, xyzModem_stream_close,
|
||||
xyzModem_stream_terminate, xyzModem_stream_read,
|
||||
xyzModem_error);
|
||||
RedBoot_load (xmodem, xyzModem_io, false, false, xyzModem_xmodem);
|
||||
RedBoot_load (ymodem, xyzModem_io, false, false, xyzModem_ymodem);
|
||||
#endif
|
||||
|
@ -44,9 +44,6 @@
|
||||
#define xyzModem_abort 2
|
||||
|
||||
|
||||
#ifdef REDBOOT
|
||||
extern getc_io_funcs_t xyzModem_io;
|
||||
#else
|
||||
#define CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT
|
||||
#define CYGACC_CALL_IF_SET_CONSOLE_COMM(x)
|
||||
|
||||
@ -60,12 +57,8 @@ typedef struct {
|
||||
char *filename;
|
||||
int mode;
|
||||
int chan;
|
||||
#ifdef CYGPKG_REDBOOT_NETWORKING
|
||||
struct sockaddr_in *server;
|
||||
#endif
|
||||
} connection_info_t;
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
int xyzModem_stream_open(connection_info_t *info, int *err);
|
||||
|
Loading…
Reference in New Issue
Block a user