LCOV - code coverage report
Current view: top level - arch/um/kernel - sigio.c (source / functions) Hit Total Coverage
Test: coverage.info Lines: 0 16 0.0 %
Date: 2023-03-27 20:00:47 Functions: 0 4 0.0 %

          Line data    Source code
       1             : // SPDX-License-Identifier: GPL-2.0
       2             : /*
       3             :  * Copyright (C) 2002 - 2007 Jeff Dike (jdike@{linux.intel,addtoit}.com)
       4             :  */
       5             : 
       6             : #include <linux/interrupt.h>
       7             : #include <irq_kern.h>
       8             : #include <os.h>
       9             : #include <sigio.h>
      10             : 
      11             : /* Protected by sigio_lock() called from write_sigio_workaround */
      12             : static int sigio_irq_fd = -1;
      13             : 
      14           0 : static irqreturn_t sigio_interrupt(int irq, void *data)
      15             : {
      16             :         char c;
      17             : 
      18           0 :         os_read_file(sigio_irq_fd, &c, sizeof(c));
      19           0 :         return IRQ_HANDLED;
      20             : }
      21             : 
      22           0 : int write_sigio_irq(int fd)
      23             : {
      24             :         int err;
      25             : 
      26           0 :         err = um_request_irq(SIGIO_WRITE_IRQ, fd, IRQ_READ, sigio_interrupt,
      27             :                              0, "write sigio", NULL);
      28           0 :         if (err < 0) {
      29           0 :                 printk(KERN_ERR "write_sigio_irq : um_request_irq failed, "
      30             :                        "err = %d\n", err);
      31           0 :                 return -1;
      32             :         }
      33           0 :         sigio_irq_fd = fd;
      34           0 :         return 0;
      35             : }
      36             : 
      37             : /* These are called from os-Linux/sigio.c to protect its pollfds arrays. */
      38             : static DEFINE_MUTEX(sigio_mutex);
      39             : 
      40           0 : void sigio_lock(void)
      41             : {
      42           0 :         mutex_lock(&sigio_mutex);
      43           0 : }
      44             : 
      45           0 : void sigio_unlock(void)
      46             : {
      47           0 :         mutex_unlock(&sigio_mutex);
      48           0 : }

Generated by: LCOV version 1.14