cregit-Linux how code gets into the kernel

Release 4.14 arch/mips/sgi-ip27/ip27-irqno.c

/*
 * This file is subject to the terms and conditions of the GNU General Public
 * License.  See the file "COPYING" in the main directory of this archive
 * for more details.
 */
#include <linux/init.h>
#include <linux/irq.h>
#include <linux/types.h>

#include <asm/barrier.h>

static DECLARE_BITMAP(irq_map, NR_IRQS);


int allocate_irqno(void) { int irq; again: irq = find_first_zero_bit(irq_map, NR_IRQS); if (irq >= NR_IRQS) return -ENOSPC; if (test_and_set_bit(irq, irq_map)) goto again; return irq; }

Contributors

PersonTokensPropCommitsCommitProp
Ralf Bächle46100.00%1100.00%
Total46100.00%1100.00%

/* * Allocate the 16 legacy interrupts for i8259 devices. This happens early * in the kernel initialization so treating allocation failure as BUG() is * ok. */
void __init alloc_legacy_irqno(void) { int i; for (i = 0; i <= 16; i++) BUG_ON(test_and_set_bit(i, irq_map)); }

Contributors

PersonTokensPropCommitsCommitProp
Ralf Bächle34100.00%1100.00%
Total34100.00%1100.00%


void free_irqno(unsigned int irq) { smp_mb__before_atomic(); clear_bit(irq, irq_map); smp_mb__after_atomic(); }

Contributors

PersonTokensPropCommitsCommitProp
Ralf Bächle22100.00%1100.00%
Total22100.00%1100.00%


Overall Contributors

PersonTokensPropCommitsCommitProp
Ralf Bächle124100.00%1100.00%
Total124100.00%1100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.