Annotation of Gnu-Mach/linux/pcmcia-cs/include/pcmcia/bulkmem.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Definitions for bulk memory services
                      3:  *
                      4:  * bulkmem.h 1.13 2001/08/24 12:16:12
                      5:  *
                      6:  * The contents of this file are subject to the Mozilla Public License
                      7:  * Version 1.1 (the "License"); you may not use this file except in
                      8:  * compliance with the License. You may obtain a copy of the License
                      9:  * at http://www.mozilla.org/MPL/
                     10:  *
                     11:  * Software distributed under the License is distributed on an "AS IS"
                     12:  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
                     13:  * the License for the specific language governing rights and
                     14:  * limitations under the License. 
                     15:  *
                     16:  * The initial developer of the original code is David A. Hinds
                     17:  * <[email protected]>.  Portions created by David A. Hinds
                     18:  * are Copyright (C) 1999 David A. Hinds.  All Rights Reserved.
                     19:  *
                     20:  * Alternatively, the contents of this file may be used under the
                     21:  * terms of the GNU General Public License version 2 (the "GPL"), in
                     22:  * which case the provisions of the GPL are applicable instead of the
                     23:  * above.  If you wish to allow the use of your version of this file
                     24:  * only under the terms of the GPL and not to allow others to use
                     25:  * your version of this file under the MPL, indicate your decision by
                     26:  * deleting the provisions above and replace them with the notice and
                     27:  * other provisions required by the GPL.  If you do not delete the
                     28:  * provisions above, a recipient may use your version of this file
                     29:  * under either the MPL or the GPL.
                     30:  * bulkmem.h 1.3 1995/05/27 04:49:49
                     31:  */
                     32: 
                     33: #ifndef _LINUX_BULKMEM_H
                     34: #define _LINUX_BULKMEM_H
                     35: 
                     36: /* For GetFirstRegion and GetNextRegion */
                     37: typedef struct region_info_t {
                     38:     u_int              Attributes;
                     39:     u_int              CardOffset;
                     40:     u_int              RegionSize;
                     41:     u_int              AccessSpeed;
                     42:     u_int              BlockSize;
                     43:     u_int              PartMultiple;
                     44:     u_char             JedecMfr, JedecInfo;
                     45:     memory_handle_t    next;
                     46: } region_info_t;
                     47: 
                     48: #define REGION_TYPE            0x0001
                     49: #define REGION_TYPE_CM         0x0000
                     50: #define REGION_TYPE_AM         0x0001
                     51: #define REGION_PREFETCH                0x0008
                     52: #define REGION_CACHEABLE       0x0010
                     53: #define REGION_BAR_MASK                0xe000
                     54: #define REGION_BAR_SHIFT       13
                     55: 
                     56: /* For OpenMemory */
                     57: typedef struct open_mem_t {
                     58:     u_int              Attributes;
                     59:     u_int              Offset;
                     60: } open_mem_t;
                     61: 
                     62: /* Attributes for OpenMemory */
                     63: #define MEMORY_TYPE            0x0001
                     64: #define MEMORY_TYPE_CM         0x0000
                     65: #define MEMORY_TYPE_AM         0x0001
                     66: #define MEMORY_EXCLUSIVE       0x0002
                     67: #define MEMORY_PREFETCH                0x0008
                     68: #define MEMORY_CACHEABLE       0x0010
                     69: #define MEMORY_BAR_MASK                0xe000
                     70: #define MEMORY_BAR_SHIFT       13
                     71: 
                     72: typedef struct eraseq_entry_t {
                     73:     memory_handle_t    Handle;
                     74:     u_char             State;
                     75:     u_int              Size;
                     76:     u_int              Offset;
                     77:     void               *Optional;
                     78: } eraseq_entry_t;
                     79: 
                     80: typedef struct eraseq_hdr_t {
                     81:     int                        QueueEntryCnt;
                     82:     eraseq_entry_t     *QueueEntryArray;
                     83: } eraseq_hdr_t;
                     84: 
                     85: #define ERASE_QUEUED           0x00
                     86: #define ERASE_IN_PROGRESS(n)   (((n) > 0) && ((n) < 0x80))
                     87: #define ERASE_IDLE             0xff
                     88: #define ERASE_PASSED           0xe0
                     89: #define ERASE_FAILED           0xe1
                     90: 
                     91: #define ERASE_MISSING          0x80
                     92: #define ERASE_MEDIA_WRPROT     0x84
                     93: #define ERASE_NOT_ERASABLE     0x85
                     94: #define ERASE_BAD_OFFSET       0xc1
                     95: #define ERASE_BAD_TECH         0xc2
                     96: #define ERASE_BAD_SOCKET       0xc3
                     97: #define ERASE_BAD_VCC          0xc4
                     98: #define ERASE_BAD_VPP          0xc5
                     99: #define ERASE_BAD_SIZE         0xc6
                    100: 
                    101: /* For CopyMemory */
                    102: typedef struct copy_op_t {
                    103:     u_int              Attributes;
                    104:     u_int              SourceOffset;
                    105:     u_int              DestOffset;
                    106:     u_int              Count;
                    107: } copy_op_t;
                    108: 
                    109: /* For ReadMemory and WriteMemory */
                    110: typedef struct mem_op_t {
                    111:     u_int      Attributes;
                    112:     u_int      Offset;
                    113:     u_int      Count;
                    114: } mem_op_t;
                    115: 
                    116: #define MEM_OP_BUFFER          0x01
                    117: #define MEM_OP_BUFFER_USER     0x00
                    118: #define MEM_OP_BUFFER_KERNEL   0x01
                    119: #define MEM_OP_DISABLE_ERASE   0x02
                    120: #define MEM_OP_VERIFY          0x04
                    121: 
                    122: /* For RegisterMTD */
                    123: typedef struct mtd_reg_t {
                    124:     u_int      Attributes;
                    125:     u_int      Offset;
                    126:     u_long     MediaID;
                    127: } mtd_reg_t;
                    128: 
                    129: /*
                    130:  *  Definitions for MTD requests
                    131:  */
                    132: 
                    133: typedef struct mtd_request_t {
                    134:     u_int      SrcCardOffset;
                    135:     u_int      DestCardOffset;
                    136:     u_int      TransferLength;
                    137:     u_int      Function;
                    138:     u_long     MediaID;
                    139:     u_int      Status;
                    140:     u_int      Timeout;
                    141: } mtd_request_t;
                    142: 
                    143: /* Fields in MTD Function */
                    144: #define MTD_REQ_ACTION         0x003
                    145: #define MTD_REQ_ERASE          0x000
                    146: #define MTD_REQ_READ           0x001
                    147: #define MTD_REQ_WRITE          0x002
                    148: #define MTD_REQ_COPY           0x003
                    149: #define MTD_REQ_NOERASE                0x004
                    150: #define MTD_REQ_VERIFY         0x008
                    151: #define MTD_REQ_READY          0x010
                    152: #define MTD_REQ_TIMEOUT                0x020
                    153: #define MTD_REQ_LAST           0x040
                    154: #define MTD_REQ_FIRST          0x080
                    155: #define MTD_REQ_KERNEL         0x100
                    156: 
                    157: /* Status codes */
                    158: #define MTD_WAITREQ    0x00
                    159: #define MTD_WAITTIMER  0x01
                    160: #define MTD_WAITRDY    0x02
                    161: #define MTD_WAITPOWER  0x03
                    162: 
                    163: /*
                    164:  *  Definitions for MTD helper functions
                    165:  */
                    166: 
                    167: /* For MTDModifyWindow */
                    168: typedef struct mtd_mod_win_t {
                    169:     u_int      Attributes;
                    170:     u_int      AccessSpeed;
                    171:     u_int      CardOffset;
                    172: } mtd_mod_win_t;
                    173: 
                    174: /* For MTDSetVpp */
                    175: typedef struct mtd_vpp_req_t {
                    176:     u_char     Vpp1, Vpp2;
                    177: } mtd_vpp_req_t;
                    178: 
                    179: /* For MTDRDYMask */
                    180: typedef struct mtd_rdy_req_t {
                    181:     u_int      Mask;
                    182: } mtd_rdy_req_t;
                    183: 
                    184: enum mtd_helper {
                    185:     MTDRequestWindow, MTDModifyWindow, MTDReleaseWindow,
                    186:     MTDSetVpp, MTDRDYMask
                    187: };
                    188: 
                    189: #ifdef IN_CARD_SERVICES
                    190: extern int MTDHelperEntry(int func, void *a1, void *a2);
                    191: #else
                    192: extern int MTDHelperEntry(int func, ...);
                    193: #endif
                    194: 
                    195: #endif /* _LINUX_BULKMEM_H */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.