Lines Matching refs:prog

3115 drmach_copy_rename_prog__relocatable(drmach_copy_rename_program_t *prog,  in drmach_copy_rename_prog__relocatable()  argument
3142 prog->critical->stat[cpuid] = FMEM_LOOP_COPY_READY; in drmach_copy_rename_prog__relocatable()
3145 if (prog->data->cpuid == cpuid) { in drmach_copy_rename_prog__relocatable()
3149 if (CPU_IN_SET(prog->data->cpu_slave_set, i)) { in drmach_copy_rename_prog__relocatable()
3152 if (prog->critical->stat[i] == in drmach_copy_rename_prog__relocatable()
3156 DR_DELAY_IL(1, prog->data->stick_freq); in drmach_copy_rename_prog__relocatable()
3160 prog->data->fmem_status.error = in drmach_copy_rename_prog__relocatable()
3166 prog->data->fmem_status.stat = FMEM_LOOP_COPY_READY; in drmach_copy_rename_prog__relocatable()
3171 if (prog->data->fmem_status.stat == in drmach_copy_rename_prog__relocatable()
3175 if (prog->data->fmem_status.error) { in drmach_copy_rename_prog__relocatable()
3176 prog->data->error[cpuid] = EOPL_FMEM_TERMINATE; in drmach_copy_rename_prog__relocatable()
3179 DR_DELAY_IL(1, prog->data->stick_freq); in drmach_copy_rename_prog__relocatable()
3186 if (CPU_IN_SET(prog->data->cpu_copy_set, cpuid)) { in drmach_copy_rename_prog__relocatable()
3187 for (ml = prog->data->cpu_ml[cpuid]; ml; ml = ml->ml_next) { in drmach_copy_rename_prog__relocatable()
3191 s_pa = prog->data->s_copybasepa + ml->ml_address; in drmach_copy_rename_prog__relocatable()
3192 t_pa = prog->data->t_copybasepa + ml->ml_address; in drmach_copy_rename_prog__relocatable()
3200 if (prog->data->fmem_status.error != in drmach_copy_rename_prog__relocatable()
3202 prog->data->error[cpuid] = in drmach_copy_rename_prog__relocatable()
3227 prog->stat->nbytes[cpuid] += 32; in drmach_copy_rename_prog__relocatable()
3237 prog->critical->stat[cpuid] = FMEM_LOOP_COPY_DONE; in drmach_copy_rename_prog__relocatable()
3251 if (prog->data->cpuid == cpuid) { in drmach_copy_rename_prog__relocatable()
3254 limit = copy_start + prog->data->copy_delay; in drmach_copy_rename_prog__relocatable()
3256 if (!CPU_IN_SET(prog->data->cpu_slave_set, i)) in drmach_copy_rename_prog__relocatable()
3264 if (prog->critical->stat[i] == in drmach_copy_rename_prog__relocatable()
3269 if (prog->data->error[i] == in drmach_copy_rename_prog__relocatable()
3271 prog->data->fmem_status.error = in drmach_copy_rename_prog__relocatable()
3283 prog->data->slowest_cpuid = i; in drmach_copy_rename_prog__relocatable()
3284 prog->data->copy_wait_time = curr - copy_start; in drmach_copy_rename_prog__relocatable()
3287 last = prog->stat->nbytes[i]; in drmach_copy_rename_prog__relocatable()
3289 DR_DELAY_IL(1, prog->data->stick_freq); in drmach_copy_rename_prog__relocatable()
3291 now = prog->stat->nbytes[i]; in drmach_copy_rename_prog__relocatable()
3297 DR_DELAY_IL(1, prog->data->stick_freq); in drmach_copy_rename_prog__relocatable()
3298 if (prog->critical->stat[i] == in drmach_copy_rename_prog__relocatable()
3302 if (prog->data->error[i] == in drmach_copy_rename_prog__relocatable()
3304 prog->data-> fmem_status.error = in drmach_copy_rename_prog__relocatable()
3309 prog->data->copy_rename_count++; in drmach_copy_rename_prog__relocatable()
3310 if (prog->data->copy_rename_count in drmach_copy_rename_prog__relocatable()
3314 prog->data->fmem_status.error = in drmach_copy_rename_prog__relocatable()
3322 prog->critical->stat[cpuid] = FMEM_LOOP_FMEM_READY; in drmach_copy_rename_prog__relocatable()
3323 prog->data->fmem_status.stat = FMEM_LOOP_FMEM_READY; in drmach_copy_rename_prog__relocatable()
3326 flush_instr_mem_il((void*) (prog->critical)); in drmach_copy_rename_prog__relocatable()
3330 rtn = prog->critical->fmem((void *)prog->critical, PAGESIZE); in drmach_copy_rename_prog__relocatable()
3333 flush_instr_mem_il((void*) (prog->critical)); in drmach_copy_rename_prog__relocatable()
3337 rtn = prog->critical->loop((void *)(prog->critical), PAGESIZE, in drmach_copy_rename_prog__relocatable()
3338 (void *)&(prog->critical->stat[cpuid])); in drmach_copy_rename_prog__relocatable()
3339 prog->data->error[cpuid] = rtn; in drmach_copy_rename_prog__relocatable()
3432 drmach_copy_rename_program_t *prog = NULL; in drmach_copy_rename_init() local
3533 prog_kmem->prog = prog_kmem; in drmach_copy_rename_init()
3551 prog = prog_kmem->locked_prog = vmem_alloc(heap_arena, in drmach_copy_rename_init()
3553 wp = bp = (caddr_t)prog; in drmach_copy_rename_init()
3556 drmach_lock_critical((caddr_t)prog_kmem, (caddr_t)prog); in drmach_copy_rename_init()
3559 prog->data = (drmach_copy_rename_data_t *)roundup(((uint64_t)prog + in drmach_copy_rename_init()
3562 ASSERT(((uint64_t)prog->data + sizeof (drmach_copy_rename_data_t)) in drmach_copy_rename_init()
3563 <= ((uint64_t)prog + PAGESIZE)); in drmach_copy_rename_init()
3565 prog->critical = (drmach_copy_rename_critical_t *) in drmach_copy_rename_init()
3568 prog->memlist_buffer = (caddr_t)(wp + DRMACH_FMEM_MLIST_PAGE * in drmach_copy_rename_init()
3571 prog->stat = (drmach_cr_stat_t *)(wp + DRMACH_FMEM_STAT_PAGE * in drmach_copy_rename_init()
3578 prog->critical->scf_reg_base = (uint64_t)-1; in drmach_copy_rename_init()
3579 prog->critical->scf_td[0] = (s_bd & 0xff); in drmach_copy_rename_init()
3580 prog->critical->scf_td[1] = (t_bd & 0xff); in drmach_copy_rename_init()
3582 prog->critical->scf_td[i] = 0; in drmach_copy_rename_init()
3584 prog->critical->scf_td[15] = ((0xaa + s_bd + t_bd) & 0xff); in drmach_copy_rename_init()
3586 bp = (caddr_t)prog->critical; in drmach_copy_rename_init()
3615 bp = (caddr_t)prog->critical; in drmach_copy_rename_init()
3619 prog->critical->run = (int (*)())(wp); in drmach_copy_rename_init()
3627 prog->critical->fmem = (int (*)())(wp); in drmach_copy_rename_init()
3636 prog->critical->loop = (int (*)())(wp); in drmach_copy_rename_init()
3642 prog->critical->loop_rtn = (void (*)()) (wp+len); in drmach_copy_rename_init()
3644 prog->data->fmem_status.error = ESBD_NOERROR; in drmach_copy_rename_init()
3651 prog->data->scf_fmem_end = scf_fmem_end; in drmach_copy_rename_init()
3652 prog->data->scf_fmem_cancel = scf_fmem_cancel; in drmach_copy_rename_init()
3653 prog->data->scf_get_base_addr = scf_get_base_addr; in drmach_copy_rename_init()
3654 prog->data->fmem_status.op |= OPL_FMEM_SCF_START; in drmach_copy_rename_init()
3658 prog->data->fmem_status.op |= OPL_FMEM_MC_SUSPEND; in drmach_copy_rename_init()
3659 prog->data->mc_resume = mc_resume; in drmach_copy_rename_init()
3661 prog->critical->inst_loop_ret = in drmach_copy_rename_init()
3662 *(uint64_t *)(prog->critical->loop_rtn); in drmach_copy_rename_init()
3668 *(uint_t *)(prog->critical->loop_rtn) = (uint_t)(0x30800000); in drmach_copy_rename_init()
3673 prog->critical->delay = fmem_timeout * system_clock_freq; in drmach_copy_rename_init()
3675 prog->data->s_mem = (drmachid_t)s_mem; in drmach_copy_rename_init()
3676 prog->data->t_mem = (drmachid_t)t_mem; in drmach_copy_rename_init()
3679 prog->data->cpuid = cpuid; in drmach_copy_rename_init()
3680 prog->data->cpu_ready_set = cpu_ready_set; in drmach_copy_rename_init()
3681 prog->data->cpu_slave_set = cpu_ready_set; in drmach_copy_rename_init()
3682 prog->data->slowest_cpuid = (processorid_t)-1; in drmach_copy_rename_init()
3683 prog->data->copy_wait_time = 0; in drmach_copy_rename_init()
3684 prog->data->copy_rename_count = 0; in drmach_copy_rename_init()
3685 CPUSET_DEL(prog->data->cpu_slave_set, cpuid); in drmach_copy_rename_init()
3688 prog->data->cpu_ml[i] = NULL; in drmach_copy_rename_init()
3698 max_elms = drmach_setup_memlist(prog); in drmach_copy_rename_init()
3707 CPUSET_ADD(prog->data->cpu_copy_set, cpuid); in drmach_copy_rename_init()
3735 !CPU_IN_SET(prog->data->cpu_copy_set, in drmach_copy_rename_init()
3737 CPUSET_ADD(prog->data->cpu_copy_set, i); in drmach_copy_rename_init()
3768 prog->data->stick_freq = system_clock_freq; in drmach_copy_rename_init()
3769 prog->data->copy_delay = ((copy_sz / min_copy_size_per_sec) + 2) * in drmach_copy_rename_init()
3777 prog->stat->nbytes[i] = 0; in drmach_copy_rename_init()
3778 if (!CPU_IN_SET(prog->data->cpu_copy_set, i)) { in drmach_copy_rename_init()
3785 if ((prog->data->cpu_ml[i] = in drmach_copy_rename_init()
3786 drmach_memlist_add_span(prog, in drmach_copy_rename_init()
3787 prog->data->cpu_ml[i], in drmach_copy_rename_init()
3802 if ((prog->data->cpu_ml[i] = in drmach_copy_rename_init()
3803 drmach_memlist_add_span(prog, in drmach_copy_rename_init()
3804 prog->data->cpu_ml[i], in drmach_copy_rename_init()
3826 prog->data->s_copybasepa = s_copybasepa; in drmach_copy_rename_init()
3827 prog->data->t_copybasepa = t_copybasepa; in drmach_copy_rename_init()
3828 prog->data->c_ml = c_ml; in drmach_copy_rename_init()
3832 drmach_unlock_critical((caddr_t)prog); in drmach_copy_rename_init()
3837 rv = (*prog->data->scf_fmem_cancel)(); in drmach_copy_rename_init()
3842 if (prog != NULL) { in drmach_copy_rename_init()
3843 drmach_unlock_critical((caddr_t)prog); in drmach_copy_rename_init()
3844 vmem_free(heap_arena, prog, DRMACH_FMEM_LOCKED_PAGES * in drmach_copy_rename_init()
3856 drmach_copy_rename_program_t *prog = id; in drmach_copy_rename_fini() local
3875 (void) drmach_lock_critical((caddr_t)prog, (caddr_t)prog->locked_prog); in drmach_copy_rename_fini()
3877 if (prog->data->c_ml != NULL) in drmach_copy_rename_fini()
3878 memlist_delete(prog->data->c_ml); in drmach_copy_rename_fini()
3880 if ((prog->data->fmem_status.op & in drmach_copy_rename_fini()
3884 "code %x\n", prog->data->fmem_status.op); in drmach_copy_rename_fini()
3887 fmem_error = prog->data->fmem_status.error; in drmach_copy_rename_fini()
3893 if (prog->critical->fmem_issued) { in drmach_copy_rename_fini()
3898 rv = (*prog->data->scf_fmem_end)(); in drmach_copy_rename_fini()
3906 drmach_swap_pa((drmach_mem_t *)prog->data->s_mem, in drmach_copy_rename_fini()
3907 (drmach_mem_t *)prog->data->t_mem); in drmach_copy_rename_fini()
3909 rv = (*prog->data->scf_fmem_cancel)(); in drmach_copy_rename_fini()
3920 (*prog->data->mc_resume)(); in drmach_copy_rename_fini()
3922 drmach_unlock_critical((caddr_t)prog->locked_prog); in drmach_copy_rename_fini()
3924 vmem_free(heap_arena, prog->locked_prog, in drmach_copy_rename_fini()
3926 kmem_free(prog, DRMACH_FMEM_LOCKED_PAGES * PAGESIZE); in drmach_copy_rename_fini()
3934 drmach_copy_rename_program_t *prog = in drmach_copy_rename_slave() local
3946 prog->data->error[cpuid] = EOPL_FMEM_COPY_ERROR; in drmach_copy_rename_slave()
3947 prog->critical->stat[cpuid] = FMEM_LOOP_EXIT; in drmach_copy_rename_slave()
3958 drmach_flush(prog->critical, PAGESIZE); in drmach_copy_rename_slave()
3959 (void) prog->critical->run(prog, cpuid); in drmach_copy_rename_slave()
3964 prog->critical->stat[cpuid] = FMEM_LOOP_EXIT; in drmach_copy_rename_slave()
4012 drmach_copy_rename_program_t *prog; in drmach_copy_rename() local
4026 prog = prog_kmem->locked_prog; in drmach_copy_rename()
4034 (void) drmach_lock_critical((caddr_t)prog_kmem, (caddr_t)prog); in drmach_copy_rename()
4042 prog->critical->scf_reg_base = (*prog->data->scf_get_base_addr)(); in drmach_copy_rename()
4044 if (prog->critical->scf_reg_base == (uint64_t)-1 || in drmach_copy_rename()
4045 prog->critical->scf_reg_base == NULL) { in drmach_copy_rename()
4046 prog->data->fmem_status.error = EOPL_FMEM_SCF_ERR; in drmach_copy_rename()
4047 drmach_unlock_critical((caddr_t)prog); in drmach_copy_rename()
4051 cpuset = prog->data->cpu_ready_set; in drmach_copy_rename()
4055 prog->critical->stat[cpuid] = FMEM_LOOP_START; in drmach_copy_rename()
4056 prog->data->error[cpuid] = ESBD_NOERROR; in drmach_copy_rename()
4069 (uint64_t)prog_kmem, (uint64_t)prog); in drmach_copy_rename()
4076 (uint64_t)drmach_copy_rename_slave, (uint64_t)prog); in drmach_copy_rename()
4089 drmach_flush(prog->critical, PAGESIZE); in drmach_copy_rename()
4090 rtn = prog->critical->run(prog, cpuid); in drmach_copy_rename()
4114 inst = patch_inst((uint64_t *)prog->critical->loop_rtn, in drmach_copy_rename()
4115 prog->critical->inst_loop_ret); in drmach_copy_rename()
4116 if (prog->critical->inst_loop_ret == inst) { in drmach_copy_rename()
4126 last = prog->stat->nbytes[cpuid]; in drmach_copy_rename()
4140 if (prog->critical->stat[cpuid] == FMEM_LOOP_EXIT) in drmach_copy_rename()
4144 now = prog->stat->nbytes[cpuid]; in drmach_copy_rename()
4147 if (prog->critical->stat[cpuid] == in drmach_copy_rename()
4155 if (prog->data->error[cpuid] == EOPL_FMEM_HW_ERROR) { in drmach_copy_rename()
4170 (uint64_t)prog, 0); in drmach_copy_rename()
4180 (void) drmach_unlock_critical((caddr_t)prog); in drmach_copy_rename()
4186 (void) drmach_lock_critical((caddr_t)prog_kmem, (caddr_t)prog); in drmach_copy_rename()
4188 if (prog->data->fmem_status.error == ESBD_NOERROR) in drmach_copy_rename()
4189 prog->data->fmem_status.error = rtn; in drmach_copy_rename()
4191 if (prog->data->copy_wait_time > 0) { in drmach_copy_rename()
4194 prog->data->copy_wait_time/prog->data->stick_freq, in drmach_copy_rename()
4195 prog->data->slowest_cpuid); in drmach_copy_rename()
4197 drmach_unlock_critical((caddr_t)prog); in drmach_copy_rename()