{
int status = 0;
struct chnl_object *pchnl = (struct chnl_object *)chnl_obj;
+
if (channel_info != NULL) {
if (pchnl) {
/* Return the requested information: */
int bridge_io_destroy(struct io_mgr *hio_mgr)
{
int status = 0;
+
if (hio_mgr) {
/* Free IO DPC object */
tasklet_kill(&hio_mgr->dpc_tasklet);
u32 total_bytes = ul_num_bytes;
u8 host_buf[BUFFERSIZE];
struct bridge_dev_context *dev_context = dev_ctxt;
+
while (total_bytes > 0 && !status) {
copy_bytes =
total_bytes > BUFFERSIZE ? BUFFERSIZE : total_bytes;
struct bridge_dev_context *dev_context = dev_ctxt;
u32 ul_remain_bytes = 0;
u32 ul_bytes = 0;
+
ul_remain_bytes = ul_num_bytes;
while (ul_remain_bytes > 0 && !status) {
ul_bytes =
struct cfg_hostres *resources = dev_context->resources;
int status = 0;
u32 base1, base2, base3;
+
base1 = OMAP_DSP_MEM1_SIZE;
base2 = OMAP_DSP_MEM2_BASE - OMAP_DSP_MEM1_BASE;
base3 = OMAP_DSP_MEM3_BASE - OMAP_DSP_MEM1_BASE;
u32 ul_shm_offset_virt = 0;
struct cfg_hostres *host_res = dev_context->resources;
bool trace_load = false;
+
temp_byte1 = 0x0;
temp_byte2 = 0x0;
void dsp_wdt_dpc(unsigned long data)
{
struct deh_mgr *deh_mgr;
+
dev_get_deh_mgr(dev_get_first(), &deh_mgr);
if (deh_mgr)
bridge_deh_notify(deh_mgr, DSP_WDTOVERFLOW, 0);
if (!dl_state.dload_errcount) {
/* fix up entry point address */
unsigned sref = dl_state.dfile_hdr.df_entry_secn - 1;
+
if (sref < dl_state.allocated_secn_count)
dl_state.dfile_hdr.df_entrypt +=
dl_state.ldr_sections[sref].run_addr;
if (!dl_state.dload_errcount) {
/* fix up entry point address */
unsigned sref = dl_state.dfile_hdr.df_entry_secn - 1;
+
if (sref < dl_state.allocated_secn_count)
dl_state.dfile_hdr.df_entrypt +=
dl_state.ldr_sections[sref].run_addr;
struct doff_scnhdr_t *shp;
struct ldr_section_info *asecs;
struct my_handle *hndl;
+
nsecs = dlthis->dfile_hdr.df_no_scns;
if (!nsecs)
return;
unsigned rinbuf;
int siz;
struct reloc_record_t *rp, rrec[MY_RELOC_BUF_SIZ];
+
rp = rrec;
rinbuf = rnum > MY_RELOC_BUF_SIZ ? MY_RELOC_BUF_SIZ : rnum;
siz = rinbuf * sizeof(struct reloc_record_t);
sp = (u16 *) data;
do {
register u16 tmp;
+
tmp = *sp;
*sp++ = SWAP16BY8(tmp);
} while ((i -= 1) > 0);
register tgt_au_t *src = (tgt_au_t *) srcp;
register tgt_au_t *dst = (tgt_au_t *) dstp;
register int cnt = charcount;
+
do {
#if TARGET_AU_BITS <= BITS_PER_AU
/* byte-swapping issues may exist for strings on target */
struct modules_header mhdr;
struct ldr_section_info dllview_info;
struct dynload_symbol *debug_mirror_sym;
+
hndl = dlthis->myhandle;
if (!hndl)
return; /* must be errors detected, so forget it */
*/
if (sgn) {
unsigned tmp = (val >> fieldsz) + (sgn & 0x1);
+
if (tmp > ovf_limit[sgn - 1])
return 1;
}
case RACT_C6BASE:
if (dlthis->bss_run_base == 0) {
struct dynload_symbol *symp;
+
symp = dlthis->mysym->find_matching_symbol
(dlthis->mysym, bsssymbol);
/* lookup value of global BSS base */
if (!status) {
struct bridge_drv_interface *intf_fxns;
+
dev_get_intf_fxns(hdev_obj, &intf_fxns);
/* Let Bridge channel module finish the create: */
status = (*intf_fxns->chnl_create) (&hchnl_mgr, hdev_obj,
strncpy(sz_sect_name, ".", 2);
do {
char *uuid = strsep(&tmp, "-");
+
if (!uuid)
break;
len -= strlen(uuid);
{
struct dev_object *dev;
struct cfg_devnode *dev_node;
+
if (atomic_read(&bridge_cref)) {
reinit_completion(&bridge_comp);
while (!wait_for_completion_timeout(&bridge_comp,
{
int status = 0;
struct process_context *ctxt = (struct process_context *)process_ctxt;
+
drv_remove_all_strm_res_elements(ctxt);
drv_remove_all_node_res_elements(ctxt);
drv_remove_all_dmm_res_elements(ctxt);
struct rmm_addr *rmm_addr_obj = (struct rmm_addr *)dsp_address;
bool mem_load_req = false;
int status = -ENOMEM; /* Set to fail */
+
nldr_obj = hnode->nldr_obj;
rmm = nldr_obj->rmm;
/* Convert size to DSP words */
enum node_state node_get_state(void *hnode)
{
struct node_object *pnode = (struct node_object *)hnode;
+
if (!pnode)
return -1;
return pnode->node_state;
(struct proc_object *)hnode->processor;
#endif
int status;
+
if (!hnode)
goto func_end;
hnode_mgr = hnode->node_mgr;
u32 mpu_addr, u32 size)
{
struct dmm_map_object *map_obj;
+
pr_debug("%s: looking for mpu_addr 0x%x size 0x%x\n", __func__,
mpu_addr, size);
int proc_get_trace(void *hprocessor, u8 *pbuf, u32 max_size)
{
int status;
+
status = -ENOSYS;
return status;
}
static s32 get_envp_count(char **envp)
{
s32 ret = 0;
+
if (envp) {
while (*envp++)
ret++;