Exemple #1
0
/* get truncated string from database */
void sort_getstring_for_dirent(char *ptr, uint32_t addr) {
  uint8_t leaf_offset;
  if(addr & 0x80000000) {
    /* is directory link, name offset 4 */
    leaf_offset = sram_readbyte(addr + 4 + SRAM_MENU_ADDR);
    sram_readblock(ptr, addr + 5 + leaf_offset + SRAM_MENU_ADDR, 20);
  } else {
    /* is file link, name offset 6 */
    leaf_offset = sram_readbyte(addr + 6 + SRAM_MENU_ADDR);
    sram_readblock(ptr, addr + 7 + leaf_offset + SRAM_MENU_ADDR, 20);
  }
  ptr[20]=0;
}
Exemple #2
0
void sram_hexdump(uint32_t addr, uint32_t len) {
  static uint8_t buf[16];
  uint32_t ptr;
  for(ptr=0; ptr < len; ptr += 16) {
    sram_readblock((void*)buf, ptr+addr, 16);
    uart_trace(buf, 0, 16);
  }
}
Exemple #3
0
void sort_dir(uint32_t addr, unsigned int size)
{
stat_getstring=0;
  if(size > QSORT_MAXELEM) {
    printf("more than %d dir entries, doing slower in-place sort\n", QSORT_MAXELEM);
    ext_heapsort(addr, size);
  } else {
    /* retrieve, sort, and store dir table */
    sram_readblock(ptrcache, addr, size*4);
    qsort((void*)ptrcache, size, 4, sort_cmp_elem);
    sram_writeblock(ptrcache, addr, size*4);
  }
}
Exemple #4
0
void get_selected_name(uint8_t* fn) {
  uint32_t addr;
  addr = sram_readlong(SRAM_PARAM_ADDR);
  printf("fd addr=%lx\n", addr);
  sram_readblock(fn, addr + 7 + SRAM_MENU_ADDR, 256);
}
Exemple #5
0
/* dump binary config from menu */
void cfg_get_from_menu() {
  sram_readblock(&CFG, SRAM_MENU_CFG_ADDR, sizeof(cfg_t));
}