[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/compat/ndis/resource_var.h

Version: -  FREEBSD  -  FREEBSD7  -  FREEBSD71  -  FREEBSD70  -  FREEBSD6  -  FREEBSD64  -  FREEBSD63  -  FREEBSD62  -  FREEBSD61  -  FREEBSD60  -  FREEBSD5  -  FREEBSD55  -  FREEBSD54  -  FREEBSD53  -  FREEBSD52  -  FREEBSD51  -  FREEBSD50  -  FREEBSD4  -  FREEBSD3  -  FREEBSD22  -  linux-2.6  -  linux-2.4.22  -  MK83  -  MK84  -  PLAN9  -  DFBSD  -  NETBSD  -  NETBSD5  -  NETBSD4  -  NETBSD3  -  NETBSD20  -  OPENBSD  -  xnu-517  -  xnu-792  -  xnu-792.6.70  -  xnu-1228  -  OPENSOLARIS  -  minix-3-1-1  -  TRUSTEDBSD-SEBSD  -  FREEBSD-LIBC  -  FREEBSD7-LIBC  -  FREEBSD6-LIBC  -  GLIBC27 
SearchContext: -  none  -  excerpts  -  bigexcerpts 

  1 /*-
  2  * Copyright (c) 2005
  3  *      Bill Paul <wpaul@windriver.com>.  All rights reserved.
  4  *
  5  * Redistribution and use in source and binary forms, with or without
  6  * modification, are permitted provided that the following conditions
  7  * are met:
  8  * 1. Redistributions of source code must retain the above copyright
  9  *    notice, this list of conditions and the following disclaimer.
 10  * 2. Redistributions in binary form must reproduce the above copyright
 11  *    notice, this list of conditions and the following disclaimer in the
 12  *    documentation and/or other materials provided with the distribution.
 13  * 3. All advertising materials mentioning features or use of this software
 14  *    must display the following acknowledgement:
 15  *      This product includes software developed by Bill Paul.
 16  * 4. Neither the name of the author nor the names of any co-contributors
 17  *    may be used to endorse or promote products derived from this software
 18  *    without specific prior written permission.
 19  *
 20  * THIS SOFTWARE IS PROVIDED BY Bill Paul AND CONTRIBUTORS ``AS IS'' AND
 21  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 22  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 23  * ARE DISCLAIMED.  IN NO EVENT SHALL Bill Paul OR THE VOICES IN HIS HEAD
 24  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 25  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 26  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 27  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 28  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 29  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
 30  * THE POSSIBILITY OF SUCH DAMAGE.
 31  *
 32  * $FreeBSD: src/sys/compat/ndis/resource_var.h,v 1.3 2005/02/16 05:41:17 wpaul Exp $
 33  */
 34 
 35 #ifndef _RESOURCE_VAR_H_
 36 #define _RESOURCE_VAR_H_
 37 
 38 typedef int cm_resource_type;
 39 
 40 struct physaddr {
 41         uint64_t                np_quad;
 42 #ifdef notdef
 43         uint32_t                np_low;
 44         uint32_t                np_high;
 45 #endif
 46 };
 47 
 48 typedef struct physaddr physaddr;
 49 
 50 enum interface_type {
 51         InterfaceTypeUndefined = -1,
 52         Internal,
 53         Isa,
 54         Eisa,
 55         MicroChannel,
 56         TurboChannel,
 57         PCIBus,
 58         VMEBus,
 59         NuBus,
 60         PCMCIABus,
 61         CBus,
 62         MPIBus,
 63         MPSABus,
 64         ProcessorInternal,
 65         InternalPowerBus,
 66         PNPISABus,
 67         PNPBus,
 68         MaximumInterfaceType
 69 };
 70 
 71 typedef enum interface_type interface_type;
 72 
 73 #define CmResourceTypeNull                0   /* ResType_All or ResType_None (0x0000) */
 74 #define CmResourceTypePort                1   /* ResType_IO (0x0002) */
 75 #define CmResourceTypeInterrupt           2   /* ResType_IRQ (0x0004) */
 76 #define CmResourceTypeMemory              3   /* ResType_Mem (0x0001) */
 77 #define CmResourceTypeDma                 4   /* ResType_DMA (0x0003) */
 78 #define CmResourceTypeDeviceSpecific      5   /* ResType_ClassSpecific (0xFFFF) */
 79 #define CmResourceTypeBusNumber           6   /* ResType_BusNumber (0x0006) */
 80 #define CmResourceTypeMaximum             7
 81 #define CmResourceTypeNonArbitrated     128   /* Not arbitrated if 0x80 bit set */
 82 #define CmResourceTypeConfigData        128   /* ResType_Reserved (0x8000) */
 83 #define CmResourceTypeDevicePrivate     129   /* ResType_DevicePrivate (0x8001) */
 84 #define CmResourceTypePcCardConfig      130   /* ResType_PcCardConfig (0x8002) */
 85 
 86 enum cm_share_disposition {
 87     CmResourceShareUndetermined = 0,    /* Reserved */
 88     CmResourceShareDeviceExclusive,
 89     CmResourceShareDriverExclusive,
 90     CmResourceShareShared
 91 };
 92 
 93 typedef enum cm_share_disposition cm_share_disposition;
 94 
 95 /* Define the bit masks for Flags when type is CmResourceTypeInterrupt */
 96 
 97 #define CM_RESOURCE_INTERRUPT_LEVEL_SENSITIVE 0
 98 #define CM_RESOURCE_INTERRUPT_LATCHED         1
 99 
100 /* Define the bit masks for Flags when type is CmResourceTypeMemory */
101 
102 #define CM_RESOURCE_MEMORY_READ_WRITE       0x0000
103 #define CM_RESOURCE_MEMORY_READ_ONLY        0x0001
104 #define CM_RESOURCE_MEMORY_WRITE_ONLY       0x0002
105 #define CM_RESOURCE_MEMORY_PREFETCHABLE     0x0004
106 
107 #define CM_RESOURCE_MEMORY_COMBINEDWRITE    0x0008
108 #define CM_RESOURCE_MEMORY_24               0x0010
109 #define CM_RESOURCE_MEMORY_CACHEABLE        0x0020
110 
111 /* Define the bit masks for Flags when type is CmResourceTypePort */
112 
113 #define CM_RESOURCE_PORT_MEMORY                             0x0000
114 #define CM_RESOURCE_PORT_IO                                 0x0001
115 #define CM_RESOURCE_PORT_10_BIT_DECODE                      0x0004
116 #define CM_RESOURCE_PORT_12_BIT_DECODE                      0x0008
117 #define CM_RESOURCE_PORT_16_BIT_DECODE                      0x0010
118 #define CM_RESOURCE_PORT_POSITIVE_DECODE                    0x0020
119 #define CM_RESOURCE_PORT_PASSIVE_DECODE                     0x0040
120 #define CM_RESOURCE_PORT_WINDOW_DECODE                      0x0080
121 
122 /* Define the bit masks for Flags when type is CmResourceTypeDma */
123 
124 #define CM_RESOURCE_DMA_8                   0x0000
125 #define CM_RESOURCE_DMA_16                  0x0001
126 #define CM_RESOURCE_DMA_32                  0x0002
127 #define CM_RESOURCE_DMA_8_AND_16            0x0004
128 #define CM_RESOURCE_DMA_BUS_MASTER          0x0008
129 #define CM_RESOURCE_DMA_TYPE_A              0x0010
130 #define CM_RESOURCE_DMA_TYPE_B              0x0020
131 #define CM_RESOURCE_DMA_TYPE_F              0x0040
132 
133 struct cm_partial_resource_desc {
134         uint8_t                 cprd_type;
135         uint8_t                 cprd_sharedisp;
136         uint16_t                cprd_flags;
137         union {
138                 struct {
139                         physaddr                cprd_start;
140                         uint32_t                cprd_len;
141                 } cprd_generic;
142                 struct {
143                         physaddr                cprd_start;
144                         uint32_t                cprd_len;
145                 } cprd_port;
146                 struct {
147                         uint32_t                cprd_level;
148                         uint32_t                cprd_vector;
149                         uint32_t                cprd_affinity;
150                 } cprd_intr;
151                 struct {
152                         physaddr                cprd_start;
153                         uint32_t                cprd_len;
154                 } cprd_mem;
155                 struct {
156                         uint32_t                cprd_chan;
157                         uint32_t                cprd_port;
158                         uint32_t                cprd_rsvd;
159                 } cprd_dmachan;
160                 struct {
161                         uint32_t                cprd_data[3];
162                 } cprd_devpriv;
163                 struct {
164                         uint32_t                cprd_datasize;
165                         uint32_t                cprd_rsvd1;
166                         uint32_t                cprd_rsvd2;
167                 } cprd_devspec;
168         } u __attribute__((packed));
169 };
170 
171 typedef struct cm_partial_resource_desc cm_partial_resource_desc;
172 
173 struct cm_partial_resource_list {
174         uint16_t                cprl_version;
175         uint16_t                cprl_revision;
176         uint32_t                cprl_count;
177         cm_partial_resource_desc        cprl_partial_descs[1];
178 };
179 
180 typedef struct cm_partial_resource_list cm_partial_resource_list;
181 
182 struct cm_full_resource_list {
183         interface_type          cfrl_type;
184         uint32_t                cfrl_busnum;
185         cm_partial_resource_desc        cfrl_partiallist;
186 };
187 
188 typedef struct cm_full_resource_list cm_full_resource_list;
189 
190 struct cm_resource_list {
191         uint32_t                crl_count;
192         cm_full_resource_list   crl_rlist;
193 };
194 
195 typedef struct cm_resource_list cm_resource_list;
196 
197 typedef cm_partial_resource_list ndis_resource_list;
198 
199 #endif /* _RESOURCE_VAR_H_ */
200 

Cache object: bfccf092c397635e96467301e5f04bc2


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.