API int fcd_bl_get_address_range(FCD *dev, unsigned int *start, unsigned int *end) { int result; uint32_t range[2]; /* get raw address range */ result = fcd_get(dev, FCD_CMD_GET_BYTE_ADDR_RANGE, range, sizeof(range)); if (result) { return result; } /* output in native format */ if (NULL != start) { *start = convert_le_u32(range[0]); } if (NULL != end) { *end = convert_le_u32(range[1]); } return 0; }
static void print_r2p_datarate (const unsigned char *msg, size_t msglen) { print_r2p_header ("RDR_to_PC_DataRate", msg, msglen); if (msglen < 10) return; if (msglen >= 18) { printf (" dwClockFrequency ..: %u\n", convert_le_u32 (msg+10)); printf (" dwDataRate ..... ..: %u\n", convert_le_u32 (msg+14)); print_pr_data (msg, msglen, 18); } else print_pr_data (msg, msglen, 10); }
static void print_p2r_header (const char *name, const unsigned char *msg, size_t msglen) { printf ("%s:\n", name); if (msglen < 7) return; printf (" dwLength ..........: %u\n", convert_le_u32 (msg+1)); printf (" bSlot .............: %u\n", msg[5]); printf (" bSeq ..............: %u\n", msg[6]); }
API int fcd_bl_set_address(FCD *dev, unsigned int addr) { uint32_t address; /* convert from native format */ address = convert_le_u32(addr); /* set address */ return fcd_set(dev, FCD_CMD_SET_BYTE_ADDR, &address, sizeof(address)); }