home *** CD-ROM | disk | FTP | other *** search
- /*
-
- TP.H
-
- Transfer Protokol
-
- (c) 1996 Oliver Kraus
-
- Transfer Block:
-
- short id
- short version
- id specific data
-
- */
-
- #ifndef _TP_H
- #define _TP_H
-
- #include "ipx.h"
-
- #define TP_VERSION (0x0101)
-
- #define TP_MSG_PSTART 1000
- #define TP_MSG_PDATA 1001
- #define TP_MSG_PEND 1002
-
- struct _tp_pdata_struct
- {
- long total;
- long curr;
- unsigned long crc;
- char *path;
- clock_t file_start;
- };
- typedef struct _tp_pdata_struct tp_pdata_struct;
-
-
- /* #define tp_debug_out(str) (puts(str)) */
- #define tp_debug_out(str)
-
- #define tp_get_blk_id(blk) (((short *)(blk))[0])
- #define tp_get_blk_ver(blk) (((short *)(blk))[1])
- #define tp_get_blk_data_adr(blk) ((char *)(((short *)(blk))+2))
-
- #define tp_set_blk_id(blk,id) ((((short *)(blk))[0]) = (id))
- #define tp_set_blk_ver(blk,ver) ((((short *)(blk))[1]) = (ver))
-
- #define tp_ecb_get_id(ecb) tp_get_blk_id((ecb)->fragaddr2)
- #define tp_ecb_get_ver(ecb) tp_get_blk_ver((ecb)->fragaddr2)
- #define tp_ecb_get_data_adr(ecb) tp_get_blk_data_adr((ecb)->fragaddr2)
-
- #define TP_BLK_HEADER_SIZE (2*sizeof(short))
-
- #define TP_FLAG_IS_NO_USER_CHECK (0x0001)
- #define TP_FLAG_IS_SKIP (0x0002)
- #define TP_FLAG_IS_DISABLE_CRC (0x0004)
- #define TP_FLAG_IS_TEST_MODE (0x0008)
- #define TP_FLAG_IS_CRC32 (0x0010)
- #define TP_FLAG_IS_DIR (0x0020)
-
- #define TP_ID_ERROR (-1)
-
- #define TP_ID_REQUEST (-2)
- struct _tp_request_struct
- {
- ipx_adr_struct adr;
- long file_size;
- int flags;
- unsigned attr;
- unsigned time;
- unsigned date;
- };
- typedef struct _tp_request_struct tp_request_struct;
- typedef struct _tp_request_struct *tp_request;
-
- #define TP_ID_ACK_REQUEST (-3)
- struct _tp_ack_request_struct
- {
- ipx_adr_struct adr;
- int exist;
- };
- typedef struct _tp_ack_request_struct tp_ack_request_struct;
- typedef struct _tp_ack_request_struct *tp_ack_request;
-
- #define TP_ID_FILE_START (-4)
- struct _tp_file_start_struct
- {
- int is_skip_file;
- int flags;
- };
- typedef struct _tp_file_start_struct tp_file_start_struct;
- typedef struct _tp_file_start_struct *tp_file_start;
-
- #define TP_ID_ACK_FILE_START (-5)
-
- #define TP_ID_BLOCK_START (-6)
-
- struct _tp_block_start_struct
- {
- short cnt;
- };
- typedef struct _tp_block_start_struct tp_block_start_struct;
- typedef struct _tp_block_start_struct *tp_block_start;
-
- #define TP_ID_ACK_BLOCK_START (-7)
-
- #define TP_ID_DATA (-8)
-
- struct _tp_data_struct
- {
- short no;
- short len;
- };
- typedef struct _tp_data_struct tp_data_struct;
- typedef struct _tp_data_struct *tp_data;
-
- #define TP_ID_BLOCK_END (-9)
-
- struct _tp_block_end_struct
- {
- unsigned long crc;
- };
- typedef struct _tp_block_end_struct tp_block_end_struct;
- typedef struct _tp_block_end_struct *tp_block_end;
-
- #define TP_ID_MISSED_BLOCKS (-10)
-
- struct _tp_missed_blocks_struct
- {
- short cnt;
- };
- typedef struct _tp_missed_blocks_struct tp_missed_blocks_struct;
- typedef struct _tp_missed_blocks_struct *tp_missed_blocks;
-
- #define TP_ID_ACK_BLOCK_END (-11)
-
- #define TP_ID_FILE_END (-12)
-
- #define TP_ID_ACK_FILE_END (-13)
-
- #define TP_ID_NONE (-100)
-
- #define TP_BLK_INFO_SIZE (TP_BLK_HEADER_SIZE+sizeof(tp_data_struct))
- #endif
-