Subversion Repositories HelenOS

Rev

Rev 3623 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3623 Rev 3675
Line 94... Line 94...
94
                ipi_send_ipi(id,eid,ipi);
94
                ipi_send_ipi(id,eid,ipi);
95
}
95
}
96
 
96
 
97
void ipi_broadcast_arch(int ipi )
97
void ipi_broadcast_arch(int ipi )
98
{
98
{
-
 
99
    int id,eid;
-
 
100
    int myid,myeid;
-
 
101
   
-
 
102
    myid=ia64_get_cpu_id();
-
 
103
    myeid=ia64_get_cpu_eid();
-
 
104
 
-
 
105
    //printf("Sending ipi %d on %d\n",ipi,CPU->id);
-
 
106
    for(id=0;id<256;id++)
-
 
107
        for(eid=0;eid<256;eid++)
-
 
108
            if((id!=myid) || (eid!=myeid))
-
 
109
                if(cpu_by_id_eid_list[id][eid])
99
    ipi_broadcast_arch_all(ipi);
110
                    ipi_send_ipi(id,eid,ipi);
-
 
111
 
100
}
112
}
101
 
113
 
102
 
114
 
103
void smp_init(void)
115
void smp_init(void)
104
{
116
{
-
 
117
    if(!bootinfo->hello_configured) return;
-
 
118
    //If we have not system prepared by hello, we are not able to start AP's
-
 
119
    //this means we are running on simulator
-
 
120
   
105
    sapic_init();
121
    sapic_init();
106
    ipi_broadcast_arch_all(bootinfo->wakeup_intno);
122
    ipi_broadcast_arch_all(bootinfo->wakeup_intno);
107
    volatile long long brk;
123
    volatile long long brk;
108
        for(brk=0;brk<100LL*1024LL*1024LL;brk++); //wait a while before CPUs starts
124
        for(brk=0;brk<100LL*1024LL*1024LL;brk++); //wait a while before CPUs starts
109
 
125