cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

floppy.h (2503B)


      1/*
      2 * This file is subject to the terms and conditions of the GNU General Public
      3 * License.  See the file "COPYING" in the main directory of this archive
      4 * for more details.
      5 *
      6 * Copyright (C) 1996, 1997, 1998, 2003 by Ralf Baechle
      7 */
      8#ifndef __ASM_MACH_GENERIC_FLOPPY_H
      9#define __ASM_MACH_GENERIC_FLOPPY_H
     10
     11#include <linux/delay.h>
     12#include <linux/ioport.h>
     13#include <linux/sched.h>
     14#include <linux/linkage.h>
     15#include <linux/types.h>
     16#include <linux/mm.h>
     17
     18#include <asm/bootinfo.h>
     19#include <asm/cachectl.h>
     20#include <asm/dma.h>
     21#include <asm/floppy.h>
     22#include <asm/io.h>
     23#include <asm/irq.h>
     24
     25/*
     26 * How to access the FDC's registers.
     27 */
     28static inline unsigned char fd_inb(unsigned int base, unsigned int reg)
     29{
     30	return inb_p(base + reg);
     31}
     32
     33static inline void fd_outb(unsigned char value, unsigned int base, unsigned int reg)
     34{
     35	outb_p(value, base + reg);
     36}
     37
     38/*
     39 * How to access the floppy DMA functions.
     40 */
     41static inline void fd_enable_dma(void)
     42{
     43	enable_dma(FLOPPY_DMA);
     44}
     45
     46static inline void fd_disable_dma(void)
     47{
     48	disable_dma(FLOPPY_DMA);
     49}
     50
     51static inline int fd_request_dma(void)
     52{
     53	return request_dma(FLOPPY_DMA, "floppy");
     54}
     55
     56static inline void fd_free_dma(void)
     57{
     58	free_dma(FLOPPY_DMA);
     59}
     60
     61static inline void fd_clear_dma_ff(void)
     62{
     63	clear_dma_ff(FLOPPY_DMA);
     64}
     65
     66static inline void fd_set_dma_mode(char mode)
     67{
     68	set_dma_mode(FLOPPY_DMA, mode);
     69}
     70
     71static inline void fd_set_dma_addr(char *addr)
     72{
     73	set_dma_addr(FLOPPY_DMA, (unsigned long) addr);
     74}
     75
     76static inline void fd_set_dma_count(unsigned int count)
     77{
     78	set_dma_count(FLOPPY_DMA, count);
     79}
     80
     81static inline int fd_get_dma_residue(void)
     82{
     83	return get_dma_residue(FLOPPY_DMA);
     84}
     85
     86static inline void fd_enable_irq(void)
     87{
     88	enable_irq(FLOPPY_IRQ);
     89}
     90
     91static inline void fd_disable_irq(void)
     92{
     93	disable_irq(FLOPPY_IRQ);
     94}
     95
     96static inline int fd_request_irq(void)
     97{
     98	return request_irq(FLOPPY_IRQ, floppy_interrupt,
     99			   0, "floppy", NULL);
    100}
    101
    102static inline void fd_free_irq(void)
    103{
    104	free_irq(FLOPPY_IRQ, NULL);
    105}
    106
    107#define fd_free_irq()		free_irq(FLOPPY_IRQ, NULL);
    108
    109
    110static inline unsigned long fd_getfdaddr1(void)
    111{
    112	return 0x3f0;
    113}
    114
    115static inline unsigned long fd_dma_mem_alloc(unsigned long size)
    116{
    117	return __get_dma_pages(GFP_KERNEL, get_order(size));
    118}
    119
    120static inline void fd_dma_mem_free(unsigned long addr, unsigned long size)
    121{
    122	free_pages(addr, get_order(size));
    123}
    124
    125static inline unsigned long fd_drive_type(unsigned long n)
    126{
    127	if (n == 0)
    128		return 4;	/* 3,5", 1.44mb */
    129
    130	return 0;
    131}
    132
    133#endif /* __ASM_MACH_GENERIC_FLOPPY_H */