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