static puint_t get_free_frame() { if (frame_pool == NULL) { return ((puint_t)malign(0x1000, 0x1000)-0xFFFFFFFF80000000); } else { section_info_t* section = (section_info_t*)physical_to_virtual((puint_t)frame_pool); while (section != NULL) { if (section->head != NULL) { stack_element_t* se = (stack_element_t*) physical_to_virtual((puint_t)section->head); section->head = se->next; ((frame_info_t*)physical_to_virtual((puint_t)section->frame_array)) [se->array_ord].usage_count = 1; return se->frame_address; } section = (section_info_t*)physical_to_virtual((puint_t)section->next_section); } proc_spinlock_unlock(&__frame_lock); return 0; } }
void align_from_tree(ALNPTR mult_aln,OPT opt,Boolean usemenu,Boolean from_complete_align,Boolean verbose,ALNCOUNT *alncount) { char path[FILENAMELEN+1],temp[MAXLINE+1]; sint i,count,nanchors; if(mult_aln->nseqs<=0) { error("No sequences in memory. Load sequences first."); return; } if (mult_aln->nseqs == 1) { error("Less than 2 sequences in memory. Load sequences first."); return; } count = malign(mult_aln,*opt.mult_opt,opt.alnout_opt->output_order,verbose,alncount); if (count <= 0) return; if (usemenu) fprintf(stdout,"\n\n\n"); mult_aln->treename[0]=EOS; }