#ifdef uds_c


void avoid_empty_block(void);
void clear_uds_tx_buf(void);
void uds_wait(void);
void uds_10ms(void);
void uds_2ms(void);
void uds_timer_interrupt(void);
uint32_t uds_can_TxData(uint32_t index, uint32_t id, uint8_t ide, uint8_t dlc, uint8_t data[]);
void send_uds_tx(void);
void uds_logic_event(void);
void uds_init(void);
void goto_reset(void);
void uds_table_receve_finish(uint8_t print);
void set_flow_control(void);
void set_wait_flow_control(void);
void set_dtc_1st_frame(uint8_t type);
void uds_tx_buf_clear(void);
void uds_send_data_set(uint16_t did,uint16_t size,uint32_t address);
uint8_t uds_interrupt_sid_dtc(void);
uint8_t uds_SID_ControlDTCSetting(uint8_t k);
void uds_fail_massage(uint8_t sid,uint8_t fail_code);
void uds_fail_check_no_extended(uint8_t error_code);
uint8_t uds_SID_FF_dataread(uint8_t k);
void uds_single_frame_error_check(void);
void uds_fail_check_did_length(uint16_t did,uint8_t len);
uint8_t uds_SID_StopDiagnosticSession(uint8_t k);
uint8_t uds_SID_DiagnosticSessionControl(uint8_t k);
uint8_t uds_SID_ReadDataByIdentifier(uint8_t k);
uint8_t uds_SID_CommunicationControl(uint8_t k);
uint8_t uds_SID_RoutineControl(uint8_t k);
uint8_t uds_SID_RequestTransferExit(uint8_t k);
uint8_t uds_SID_RequestDownload(uint8_t k);
uint8_t uds_SID_TransferData(uint8_t k);
uint32_t seedToKey (uint32_t seed, uint8_t level); 
uint8_t uds_SID_SecurityAccess(uint8_t k);
uint8_t uds_data_receve_finish(uint8_t print);


uint8_t uds_single_frame(void);
uint8_t uds_SID_FF_NULL(uint8_t k);
uint8_t uds_first_frame(void);
void uds_logic_interrupt(uint8_t *buf);


#else

extern void avoid_empty_block(void);
extern void clear_uds_tx_buf(void);
extern void uds_wait(void);
extern void uds_10ms(void);
extern void uds_2ms(void);
extern void uds_timer_interrupt(void);
extern uint32_t uds_can_TxData(uint32_t index, uint32_t id, uint8_t ide, uint8_t dlc, uint8_t data[]);
extern void uds_logic_event(void);
extern void uds_logic_interrupt(uint8_t *buf);
extern void goto_reset(void);
extern void uds_table_receve_finish(uint8_t print);
extern void set_dtc_1st_frame(uint8_t type);
extern void uds_init(void);

extern T_UDS_	uds;

#endif

	
