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