[gbx] - try fix ecm and cw messages
[oscam.git] / oscam-ecm.h
blob7172d920892fa7bb314bf8111a251ace310140d2
1 #ifndef OSCAM_ECM_H_
2 #define OSCAM_ECM_H_
4 void cw_process_thread_start(void);
5 void cw_process_thread_wakeup(void);
7 void convert_to_beta(struct s_client *cl, ECM_REQUEST *er, uint16_t caidto);
8 void convert_to_nagra(struct s_client *cl, ECM_REQUEST *er, uint16_t caidto);
10 int32_t write_ecm_answer(struct s_reader *reader, ECM_REQUEST *er, int8_t rc, uint8_t rcEx, uint8_t *cw, char *msglog, uint16_t used_cardtier, EXTENDED_CW* cw_ex);
12 void get_cw(struct s_client *, ECM_REQUEST *);
14 void update_chid(ECM_REQUEST *ecm);
15 uint32_t get_subid(ECM_REQUEST *er);
16 uint32_t chk_provid(uint8_t *ecm, uint16_t caid);
18 int32_t send_dcw(struct s_client *client, ECM_REQUEST *er);
19 void free_ecm(ECM_REQUEST *ecm);
20 void free_push_in_ecm(ECM_REQUEST *ecm);
21 void write_ecm_answer_fromcache(struct s_write_from_cache *wfc);
22 void fallback_timeout(ECM_REQUEST *er);
23 void ecm_timeout(ECM_REQUEST *er);
24 void reader_get_ecm(struct s_reader *reader, ECM_REQUEST *er);
25 ECM_REQUEST *get_ecmtask(void);
26 struct s_ecm_answer *get_ecm_answer(struct s_reader *reader, ECM_REQUEST *er);
27 void cleanup_ecmtasks(struct s_client *cl);
28 void remove_reader_from_ecm(struct s_reader *rdr);
30 void chk_dcw(struct s_ecm_answer *ea);
31 void request_cw_from_readers(ECM_REQUEST *er, uint8_t stop_stage);
33 void checkCW(ECM_REQUEST *er);
34 uint8_t checkCWpart(uint8_t *cw, int8_t part);
36 #define debug_ecm(mask, args...) \
37 do { \
38 if (config_enabled(WITH_DEBUG) && ((mask) & cs_dblevel)) { \
39 char buf[ECM_FMT_LEN]; \
40 format_ecm(er, buf, ECM_FMT_LEN); \
41 cs_log_dbg(mask, ##args); \
42 } \
43 } while(0)
45 int32_t ecmfmt(char *result, size_t size, uint16_t caid, uint16_t onid, uint32_t prid, uint16_t chid, uint16_t pid,
46 uint16_t srvid, uint16_t l, char *ecmd5hex, char *csphash, char *cw, uint16_t origin_peer, uint8_t distance, char *payload, char *tier);
48 int32_t format_ecm(ECM_REQUEST *ecm, char *result, size_t size);
50 #endif