Rev 3386 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3386 | Rev 4153 | ||
---|---|---|---|
Line 24... | Line 24... | ||
24 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
24 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
26 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
27 | */ |
27 | */ |
28 | 28 | ||
29 | /** @addtogroup ia32 |
29 | /** @addtogroup ia32 |
30 | * @{ |
30 | * @{ |
31 | */ |
31 | */ |
32 | /** @file |
32 | /** @file |
33 | */ |
33 | */ |
34 | 34 | ||
Line 130... | Line 130... | ||
130 | #ifdef CONFIG_DEBUG |
130 | #ifdef CONFIG_DEBUG |
131 | printf("cpu%u: APIC spurious interrupt\n", CPU->id); |
131 | printf("cpu%u: APIC spurious interrupt\n", CPU->id); |
132 | #endif |
132 | #endif |
133 | } |
133 | } |
134 | 134 | ||
135 | static irq_ownership_t l_apic_timer_claim(void) |
135 | static irq_ownership_t l_apic_timer_claim(irq_t *irq) |
136 | { |
136 | { |
137 | return IRQ_ACCEPT; |
137 | return IRQ_ACCEPT; |
138 | } |
138 | } |
139 | 139 | ||
140 | static void l_apic_timer_irq_handler(irq_t *irq, void *arg __attribute__((unused)), ...) |
140 | static void l_apic_timer_irq_handler(irq_t *irq) |
141 | { |
141 | { |
142 | /* |
142 | /* |
143 | * Holding a spinlock could prevent clock() from preempting |
143 | * Holding a spinlock could prevent clock() from preempting |
144 | * the current thread. In this case, we don't need to hold the |
144 | * the current thread. In this case, we don't need to hold the |
145 | * irq->lock so we just unlock it and then lock it again. |
145 | * irq->lock so we just unlock it and then lock it again. |