📄 ide.h
字号:
/* * linux/include/asm-m68k/ide.h * * Copyright (C) 1994-1996 Linus Torvalds & authors *//* Copyright(c) 1996 Kars de Jong *//* Based on the ide driver from 1.2.13pl8 *//* * Credits (alphabetical): * * - Bjoern Brauel * - Kars de Jong * - Torsten Ebeling * - Dwight Engen * - Thorsten Floeck * - Roman Hodek * - Guenther Kelleter * - Chris Lawrence * - Michael Rausch * - Christian Sauer * - Michael Schmitz * - Jes Soerensen * - Michael Thurm * - Geert Uytterhoeven */#ifndef _M68K_IDE_H#define _M68K_IDE_H#ifdef __KERNEL__#include <asm/setup.h>#include <asm/io.h>#include <asm/irq.h>#ifdef CONFIG_ATARI#include <linux/interrupt.h>#include <asm/atari_stdma.h>#endif#ifdef CONFIG_MAC#include <asm/macints.h>#endif#ifndef MAX_HWIFS#define MAX_HWIFS 4 /* same as the other archs */#endif/* * Get rid of defs from io.h - ide has its private and conflicting versions * Since so far no single m68k platform uses ISA/PCI I/O space for IDE, we * always use the `raw' MMIO versions */#undef inb#undef inw#undef insw#undef inl#undef insl#undef outb#undef outw#undef outsw#undef outl#undef outsl#undef readb#undef readw#undef readl#undef writeb#undef writew#undef writel#define inb in_8#define inw in_be16#define insw(port, addr, n) raw_insw((u16 *)port, addr, n)#define inl in_be32#define insl(port, addr, n) raw_insl((u32 *)port, addr, n)#define outb(val, port) out_8(port, val)#define outw(val, port) out_be16(port, val)#define outsw(port, addr, n) raw_outsw((u16 *)port, addr, n)#define outl(val, port) out_be32(port, val)#define outsl(port, addr, n) raw_outsl((u32 *)port, addr, n)#define readb in_8#define readw in_be16#define __ide_mm_insw(port, addr, n) raw_insw((u16 *)port, addr, n)#define readl in_be32#define __ide_mm_insl(port, addr, n) raw_insl((u32 *)port, addr, n)#define writeb(val, port) out_8(port, val)#define writew(val, port) out_be16(port, val)#define __ide_mm_outsw(port, addr, n) raw_outsw((u16 *)port, addr, n)#define writel(val, port) out_be32(port, val)#define __ide_mm_outsl(port, addr, n) raw_outsl((u32 *)port, addr, n)#if defined(CONFIG_ATARI) || defined(CONFIG_Q40)#define insw_swapw(port, addr, n) raw_insw_swapw((u16 *)port, addr, n)#define outsw_swapw(port, addr, n) raw_outsw_swapw((u16 *)port, addr, n)#endif/* Q40 and Atari have byteswapped IDE busses and since many interesting * values in the identification string are text, chars and words they * happened to be almost correct without swapping.. However *_capacity * is needed for drives over 8 GB. RZ */#if defined(CONFIG_Q40) || defined(CONFIG_ATARI)#define M68K_IDE_SWAPW (MACH_IS_Q40 || MACH_IS_ATARI)#endif#ifdef CONFIG_BLK_DEV_FALCON_IDE#define IDE_ARCH_LOCKextern int falconide_intr_lock;static __inline__ void ide_release_lock (void){ if (MACH_IS_ATARI) { if (falconide_intr_lock == 0) { printk("ide_release_lock: bug\n"); return; } falconide_intr_lock = 0; stdma_release(); }}static __inline__ voidide_get_lock(irq_handler_t handler, void *data){ if (MACH_IS_ATARI) { if (falconide_intr_lock == 0) { if (in_interrupt() > 0) panic( "Falcon IDE hasn't ST-DMA lock in interrupt" ); stdma_lock(handler, data); falconide_intr_lock = 1; } }}#endif /* CONFIG_BLK_DEV_FALCON_IDE */#define IDE_ARCH_ACK_INTR#define ide_ack_intr(hwif) ((hwif)->ack_intr ? (hwif)->ack_intr(hwif) : 1)#endif /* __KERNEL__ */#endif /* _M68K_IDE_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -