⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sbull.h

📁 Linux Device Drivers 2nd 经典书籍的配套源码
💻 H
字号:
/* * sbull.h -- definitions for the char module * * Copyright (C) 2001 Alessandro Rubini and Jonathan Corbet * Copyright (C) 2001 O'Reilly & Associates * * The source code in this file can be freely used, adapted, * and redistributed in source or binary form, so long as an * acknowledgment appears in derived source files.  The citation * should list that the code comes from the book "Linux Device * Drivers" by Alessandro Rubini and Jonathan Corbet, published * by O'Reilly & Associates.   No warranty is attached; * we cannot take responsibility for errors or fitness for use. * */#include <linux/ioctl.h>/* version dependencies have been confined to a separate file */#include "sysdep.h"/* Multiqueue only works on 2.4 */#ifdef SBULL_MULTIQUEUE#  ifndef LINUX_24#    warning "Multiqueue only works on 2.4 kernels"#    undef SBULL_MULTIQUEUE#  endif#endif/* * Macros to help debugging */#undef PDEBUG             /* undef it, just in case */#ifdef SBULL_DEBUG#  ifdef __KERNEL__     /* This one if debugging is on, and kernel space */#    define PDEBUG(fmt, args...) printk( KERN_DEBUG "sbull: " fmt, ## args)#  else     /* This one for user space */#    define PDEBUG(fmt, args...) fprintf(stderr, fmt, ## args)#  endif#else#  define PDEBUG(fmt, args...) /* not debugging: nothing */#endif#undef PDEBUGG#define PDEBUGG(fmt, args...) /* nothing: it's a placeholder */#define SBULL_MAJOR 0       /* dynamic major by default */#define SBULL_DEVS 2        /* two disks */#define SBULL_RAHEAD 2      /* two sectors */#define SBULL_SIZE 2048     /* two megs each */#define SBULL_BLKSIZE 1024  /* 1k blocks */#define SBULL_HARDSECT 512  /* 2.2 and 2.4 can used different values */#define SBULLR_MAJOR 0      /* Dynamic major for raw device *//* * The sbull device is removable: if it is left closed for more than * half a minute, it is removed. Thus use a usage count and a * kernel timer */typedef struct Sbull_Dev {   int size;   int usage;   struct timer_list timer;   spinlock_t lock;   u8 *data;#ifdef SBULL_MULTIQUEUE   request_queue_t queue;   int busy;#endif}              Sbull_Dev;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -