1*4882a593Smuzhiyun /* 2*4882a593Smuzhiyun *========================================================================== 3*4882a593Smuzhiyun * 4*4882a593Smuzhiyun * xyzModem.h 5*4882a593Smuzhiyun * 6*4882a593Smuzhiyun * RedBoot stream handler for xyzModem protocol 7*4882a593Smuzhiyun * 8*4882a593Smuzhiyun *========================================================================== 9*4882a593Smuzhiyun * SPDX-License-Identifier: eCos-2.0 10*4882a593Smuzhiyun *========================================================================== 11*4882a593Smuzhiyun *#####DESCRIPTIONBEGIN#### 12*4882a593Smuzhiyun * 13*4882a593Smuzhiyun * Author(s): gthomas 14*4882a593Smuzhiyun * Contributors: gthomas 15*4882a593Smuzhiyun * Date: 2000-07-14 16*4882a593Smuzhiyun * Purpose: 17*4882a593Smuzhiyun * Description: 18*4882a593Smuzhiyun * 19*4882a593Smuzhiyun * This code is part of RedBoot (tm). 20*4882a593Smuzhiyun * 21*4882a593Smuzhiyun *####DESCRIPTIONEND#### 22*4882a593Smuzhiyun * 23*4882a593Smuzhiyun *========================================================================== 24*4882a593Smuzhiyun */ 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun #ifndef _XYZMODEM_H_ 27*4882a593Smuzhiyun #define _XYZMODEM_H_ 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun #define xyzModem_xmodem 1 30*4882a593Smuzhiyun #define xyzModem_ymodem 2 31*4882a593Smuzhiyun /* Don't define this until the protocol support is in place */ 32*4882a593Smuzhiyun /*#define xyzModem_zmodem 3 */ 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun #define xyzModem_access -1 35*4882a593Smuzhiyun #define xyzModem_noZmodem -2 36*4882a593Smuzhiyun #define xyzModem_timeout -3 37*4882a593Smuzhiyun #define xyzModem_eof -4 38*4882a593Smuzhiyun #define xyzModem_cancel -5 39*4882a593Smuzhiyun #define xyzModem_frame -6 40*4882a593Smuzhiyun #define xyzModem_cksum -7 41*4882a593Smuzhiyun #define xyzModem_sequence -8 42*4882a593Smuzhiyun 43*4882a593Smuzhiyun #define xyzModem_close 1 44*4882a593Smuzhiyun #define xyzModem_abort 2 45*4882a593Smuzhiyun 46*4882a593Smuzhiyun 47*4882a593Smuzhiyun #define CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT 48*4882a593Smuzhiyun #define CYGACC_CALL_IF_SET_CONSOLE_COMM(x) 49*4882a593Smuzhiyun 50*4882a593Smuzhiyun #define diag_vprintf vprintf 51*4882a593Smuzhiyun #define diag_printf printf 52*4882a593Smuzhiyun #define diag_vsprintf vsprintf 53*4882a593Smuzhiyun 54*4882a593Smuzhiyun #define CYGACC_CALL_IF_DELAY_US(x) udelay(x) 55*4882a593Smuzhiyun 56*4882a593Smuzhiyun typedef struct { 57*4882a593Smuzhiyun char *filename; 58*4882a593Smuzhiyun int mode; 59*4882a593Smuzhiyun int chan; 60*4882a593Smuzhiyun } connection_info_t; 61*4882a593Smuzhiyun 62*4882a593Smuzhiyun 63*4882a593Smuzhiyun 64*4882a593Smuzhiyun int xyzModem_stream_open(connection_info_t *info, int *err); 65*4882a593Smuzhiyun void xyzModem_stream_close(int *err); 66*4882a593Smuzhiyun void xyzModem_stream_terminate(bool method, int (*getc)(void)); 67*4882a593Smuzhiyun int xyzModem_stream_read(char *buf, int size, int *err); 68*4882a593Smuzhiyun char *xyzModem_error(int err); 69*4882a593Smuzhiyun 70*4882a593Smuzhiyun #endif /* _XYZMODEM_H_ */ 71