static int debug_read_ch(char *buf, int max) { void *shared, *buffer; unsigned buffer_sz; int n, i = 0; for (n = 0; n < SMD_CHANNELS; n++) { shared = smem_find(ID_SMD_CHANNELS + n, 2 * sizeof(struct smd_half_channel)); if (shared == 0) continue; buffer = smem_get_entry(SMEM_SMD_FIFO_BASE_ID + n, &buffer_sz); if (buffer == 0) continue; i += dump_ch(buf + i, max - i, n, shared, (shared + sizeof(struct smd_half_channel)), buffer_sz / 2); } return i; }
static int debug_read_ch(char *buf, int max) { void *shared; int n, i = 0; struct smd_alloc_elm *ch_tbl; unsigned ch_type; unsigned shared_size; ch_tbl = smem_find(ID_CH_ALLOC_TBL, sizeof(*ch_tbl) * 64); if (!ch_tbl) goto fail; for (n = 0; n < SMD_CHANNELS; n++) { ch_type = SMD_CHANNEL_TYPE(ch_tbl[n].type); if (is_word_access_ch(ch_type)) shared_size = sizeof(struct smd_half_channel_word_access); else shared_size = sizeof(struct smd_half_channel); shared = smem_find(ID_SMD_CHANNELS + n, 2 * shared_size + SMD_BUF_SIZE); if (shared == 0) continue; i += dump_ch(buf + i, max - i, n, shared, (shared + shared_size + SMD_BUF_SIZE), get_half_ch_funcs(ch_type), SMD_BUF_SIZE); } fail: return i; }
static int debug_read_ch(char *buf, int max) { struct smd_channel *ch; unsigned long flags; int i = 0; spin_lock_irqsave(&smd_lock, flags); list_for_each_entry(ch, &smd_ch_list_dsp, ch_list) i += dump_ch(buf + i, max - i, ch); list_for_each_entry(ch, &smd_ch_list_modem, ch_list) i += dump_ch(buf + i, max - i, ch); list_for_each_entry(ch, &smd_ch_closed_list, ch_list) i += dump_ch(buf + i, max - i, ch); spin_unlock_irqrestore(&smd_lock, flags); return i; }
static int debug_read_ch(char *buf, int max) { void *shared; int n, i = 0; for (n = 0; n < SMD_CHANNELS; n++) { shared = smem_find(ID_SMD_CHANNELS + n, 2 * (sizeof(struct smd_half_channel) + SMD_BUF_SIZE)); if (shared == 0) continue; i += dump_ch(buf + i, max - i, n, shared, (shared + sizeof(struct smd_half_channel) + SMD_BUF_SIZE), SMD_BUF_SIZE); } return i; }