LCOV - code coverage report
Current view: top level - kernel/irq - dummychip.c (source / functions) Hit Total Coverage
Test: coverage.info Lines: 0 8 0.0 %
Date: 2023-07-19 18:55:55 Functions: 0 3 0.0 %

          Line data    Source code
       1             : // SPDX-License-Identifier: GPL-2.0
       2             : /*
       3             :  * Copyright (C) 1992, 1998-2006 Linus Torvalds, Ingo Molnar
       4             :  * Copyright (C) 2005-2006, Thomas Gleixner, Russell King
       5             :  *
       6             :  * This file contains the dummy interrupt chip implementation
       7             :  */
       8             : #include <linux/interrupt.h>
       9             : #include <linux/irq.h>
      10             : #include <linux/export.h>
      11             : 
      12             : #include "internals.h"
      13             : 
      14             : /*
      15             :  * What should we do if we get a hw irq event on an illegal vector?
      16             :  * Each architecture has to answer this themselves.
      17             :  */
      18           0 : static void ack_bad(struct irq_data *data)
      19             : {
      20           0 :         struct irq_desc *desc = irq_data_to_desc(data);
      21             : 
      22           0 :         print_irq_desc(data->irq, desc);
      23           0 :         ack_bad_irq(data->irq);
      24           0 : }
      25             : 
      26             : /*
      27             :  * NOP functions
      28             :  */
      29           0 : static void noop(struct irq_data *data) { }
      30             : 
      31           0 : static unsigned int noop_ret(struct irq_data *data)
      32             : {
      33           0 :         return 0;
      34             : }
      35             : 
      36             : /*
      37             :  * Generic no controller implementation
      38             :  */
      39             : struct irq_chip no_irq_chip = {
      40             :         .name           = "none",
      41             :         .irq_startup    = noop_ret,
      42             :         .irq_shutdown   = noop,
      43             :         .irq_enable     = noop,
      44             :         .irq_disable    = noop,
      45             :         .irq_ack        = ack_bad,
      46             :         .flags          = IRQCHIP_SKIP_SET_WAKE,
      47             : };
      48             : 
      49             : /*
      50             :  * Generic dummy implementation which can be used for
      51             :  * real dumb interrupt sources
      52             :  */
      53             : struct irq_chip dummy_irq_chip = {
      54             :         .name           = "dummy",
      55             :         .irq_startup    = noop_ret,
      56             :         .irq_shutdown   = noop,
      57             :         .irq_enable     = noop,
      58             :         .irq_disable    = noop,
      59             :         .irq_ack        = noop,
      60             :         .irq_mask       = noop,
      61             :         .irq_unmask     = noop,
      62             :         .flags          = IRQCHIP_SKIP_SET_WAKE,
      63             : };
      64             : EXPORT_SYMBOL_GPL(dummy_irq_chip);

Generated by: LCOV version 1.14