Ejemplo n.º 1
0
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;
    }
}
Ejemplo n.º 2
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;

}