Rev 1 | Rev 11 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1 | Rev 5 | ||
---|---|---|---|
Line 140... | Line 140... | ||
140 | 140 | ||
141 | return !esr; |
141 | return !esr; |
142 | } |
142 | } |
143 | 143 | ||
144 | /* |
144 | /* |
- | 145 | * Send all CPUs excluding the->cpu IPI vector. |
|
- | 146 | */ |
|
- | 147 | int l_apic_broadcast_custom_ipi(__u8 vector) |
|
- | 148 | { |
|
- | 149 | __u32 lo; |
|
- | 150 | ||
- | 151 | /* |
|
- | 152 | * Read the ICR register in and zero all non-reserved fields. |
|
- | 153 | */ |
|
- | 154 | lo = l_apic[ICRlo] & ICRloClear; |
|
- | 155 | ||
- | 156 | lo |= DLVRMODE_FIXED | DESTMODE_LOGIC | LEVEL_ASSERT | SHORTHAND_EXCL | TRGRMODE_LEVEL | vector; |
|
- | 157 | ||
- | 158 | l_apic[ICRlo] = lo; |
|
- | 159 | ||
- | 160 | lo = l_apic[ICRlo] & ICRloClear; |
|
- | 161 | if (lo & SEND_PENDING) |
|
- | 162 | printf("IPI is pending.\n"); |
|
- | 163 | ||
- | 164 | return apic_poll_errors(); |
|
- | 165 | } |
|
- | 166 | ||
- | 167 | /* |
|
145 | * Universal Start-up Algorithm for bringing up the AP processors. |
168 | * Universal Start-up Algorithm for bringing up the AP processors. |
146 | */ |
169 | */ |
147 | int l_apic_send_init_ipi(__u8 apicid) |
170 | int l_apic_send_init_ipi(__u8 apicid) |
148 | { |
171 | { |
149 | __u32 lo, hi; |
172 | __u32 lo, hi; |