ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

ideuser.h
Go to the documentation of this file.
00001 /*++
00002 
00003 Copyright (C) Microsoft Corporation, 1999 - 1999
00004 
00005 Module Name:
00006 
00007     ideuser.h
00008 
00009 Abstract:
00010 
00011     These are the structures and defines that are used in the
00012     PCI IDE mini drivers.
00013 
00014 Revision History:
00015 
00016 --*/
00017 
00018 #if !defined (___ideuser_h___)
00019 #define ___ideuser_h___
00020 
00021   
00022 #define PIO_MODE0           (1 << 0)
00023 #define PIO_MODE1           (1 << 1)
00024 #define PIO_MODE2           (1 << 2)
00025 #define PIO_MODE3           (1 << 3)
00026 #define PIO_MODE4           (1 << 4)
00027 
00028 #define SWDMA_MODE0         (1 << 5)
00029 #define SWDMA_MODE1         (1 << 6)
00030 #define SWDMA_MODE2         (1 << 7)
00031 
00032 #define MWDMA_MODE0         (1 << 8)
00033 #define MWDMA_MODE1         (1 << 9)
00034 #define MWDMA_MODE2         (1 << 10)
00035 
00036 #define UDMA_MODE0          (1 << 11)
00037 #define UDMA_MODE1          (1 << 12)
00038 #define UDMA_MODE2          (1 << 13)
00039 #define UDMA_MODE3          (1 << 14)
00040 #define UDMA_MODE4          (1 << 15)
00041 #define UDMA_MODE5          (1 << 16)
00042 
00043 #define PIO_SUPPORT         (PIO_MODE0      | PIO_MODE1     | PIO_MODE2    | PIO_MODE3     | PIO_MODE4)
00044 #define SWDMA_SUPPORT       (SWDMA_MODE0    | SWDMA_MODE1   | SWDMA_MODE2)
00045 #define MWDMA_SUPPORT       (MWDMA_MODE0    | MWDMA_MODE1   | MWDMA_MODE2)
00046 #define UDMA33_SUPPORT      (UDMA_MODE0     | UDMA_MODE1    | UDMA_MODE2)
00047 #define UDMA66_SUPPORT      (UDMA_MODE3     | UDMA_MODE4)
00048 #define UDMA100_SUPPORT     (UDMA_MODE5 )
00049 #define UDMA_SUPPORT        (UNINITIALIZED_TRANSFER_MODE & (~(PIO_SUPPORT | SWDMA_SUPPORT | MWDMA_SUPPORT)))
00050 
00051 #define DMA_SUPPORT         (SWDMA_SUPPORT  | MWDMA_SUPPORT | UDMA_SUPPORT)
00052 #define ALL_MODE_SUPPORT    (PIO_SUPPORT | DMA_SUPPORT)
00053 
00054 #define PIO0                        0
00055 #define PIO1                        1
00056 #define PIO2                        2
00057 #define PIO3                        3
00058 #define PIO4                        4
00059 #define SWDMA0                      5
00060 #define SWDMA1                      6
00061 #define SWDMA2                      7
00062 #define MWDMA0                      8
00063 #define MWDMA1                      9
00064 #define MWDMA2                      10
00065 #define UDMA0                       11
00066 
00067 #define MAX_XFER_MODE               17
00068 #define UNINITIALIZED_CYCLE_TIME    0xffffffff
00069 #define UNINITIALIZED_TRANSFER_MODE 0x7fffffff
00070 #define IS_DEFAULT(mode)    (!(mode & 0x80000000))
00071 
00072 #define GenTransferModeMask(i, mode) {\
00073     ULONG temp=0xffffffff; \
00074     mode |= (temp >> (31-(i)));\
00075 }
00076 
00077 //
00078 // mode should not be 0
00079 //
00080 #define GetHighestTransferMode(mode, i) {\
00081     ULONG temp=(mode); \
00082     ASSERT(temp); \
00083     i=0; \
00084     while ( temp) { \
00085         temp = (temp >> 1);\
00086         i++;\
00087     } \
00088     i--; \
00089 }
00090 
00091 #define GetHighestDMATransferMode(mode, i) {\
00092     ULONG temp=mode >> 5;\
00093     i=5; \
00094     while ( temp) { \
00095         temp = (temp >> 1); \
00096         i++; \
00097     } \
00098     i--; \
00099 }
00100 #define GetHighestPIOTransferMode(mode, i) { \
00101     ULONG temp = (mode & PIO_SUPPORT); \
00102     i=0; \
00103     temp = temp >> 1; \
00104     while (temp) { \
00105         temp = temp >> 1; \
00106         i++; \
00107     } \
00108 }
00109 
00110 #define SetDefaultTiming(timingTable, length) {\
00111     timingTable[0]=PIO_MODE0_CYCLE_TIME; \
00112     timingTable[1]=PIO_MODE1_CYCLE_TIME; \
00113     timingTable[2]=PIO_MODE2_CYCLE_TIME; \
00114     timingTable[3]=PIO_MODE3_CYCLE_TIME; \
00115     timingTable[4]=PIO_MODE4_CYCLE_TIME; \
00116     timingTable[5]=SWDMA_MODE0_CYCLE_TIME; \
00117     timingTable[6]=SWDMA_MODE1_CYCLE_TIME; \
00118     timingTable[7]=SWDMA_MODE2_CYCLE_TIME; \
00119     timingTable[8]=MWDMA_MODE0_CYCLE_TIME; \
00120     timingTable[9]=MWDMA_MODE1_CYCLE_TIME; \
00121     timingTable[10]=MWDMA_MODE2_CYCLE_TIME; \
00122     timingTable[11]=UDMA_MODE0_CYCLE_TIME; \
00123     timingTable[12]=UDMA_MODE1_CYCLE_TIME; \
00124     timingTable[13]=UDMA_MODE2_CYCLE_TIME; \
00125     timingTable[14]=UDMA_MODE3_CYCLE_TIME; \
00126     timingTable[15]=UDMA_MODE4_CYCLE_TIME; \
00127     timingTable[16]=UDMA_MODE5_CYCLE_TIME; \
00128     length = MAX_XFER_MODE; \
00129 }
00130 
00131 #endif // ___ideuser_h___
00132 

Generated on Sat May 26 2012 04:27:01 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.