1 '\" te
   2 .\"  Copyright (c) 1996, Sun Microsystems, Inc.  All Rights Reserved
   3 .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License.
   4 .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.  See the License for the specific language governing permissions and limitations under the License.
   5 .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
   6 .TH CSX_ACCESSCONFIGURATIONREGISTER 9F "Jul 19, 1996"
   7 .SH NAME
   8 csx_AccessConfigurationRegister \- read or write a PC Card Configuration
   9 Register
  10 .SH SYNOPSIS
  11 .LP
  12 .nf
  13 #include <sys/pccard.h>
  14 
  15 
  16 
  17 \fBint32_t\fR \fBcsx_AccessConfigurationRegister\fR(\fBclient_handle_t\fR \fIch\fR,
  18      \fBaccess_config_reg_t *\fR\fIacr\fR);
  19 .fi
  20 
  21 .SH INTERFACE LEVEL
  22 .sp
  23 .LP
  24 Solaris \fBDDI \fRSpecific (Solaris \fBDDI) \fR
  25 .SH PARAMETERS
  26 .sp
  27 .ne 2
  28 .na
  29 \fB\fIch\fR\fR
  30 .ad
  31 .RS 7n
  32 Client handle returned from \fBcsx_RegisterClient\fR(9F).
  33 .RE
  34 
  35 .sp
  36 .ne 2
  37 .na
  38 \fB\fIacr\fR\fR
  39 .ad
  40 .RS 7n
  41 Pointer to an \fBaccess_config_reg_t\fR structure.
  42 .RE
  43 
  44 .SH DESCRIPTION
  45 .sp
  46 .LP
  47 This function allows a client to read or write a \fBPC\fRCard Configuration
  48 Register.
  49 .SH STRUCTURE MEMBERS
  50 .sp
  51 .LP
  52 The structure members of \fBaccess_config_reg_t\fR are:
  53 .sp
  54 .in +2
  55 .nf
  56 uint32_t     Socket;     /* socket number*/
  57 uint32_t     Action;     /* register access operation*/
  58 uint32_t     Offset;     /* config register offset*/
  59 uint32_t     Value;      /* value read or written*/
  60 .fi
  61 .in -2
  62 
  63 .sp
  64 .LP
  65 The fields are defined as follows:
  66 .sp
  67 .ne 2
  68 .na
  69 \fB\fBSocket\fR\fR
  70 .ad
  71 .RS 10n
  72 Not used in Solaris, but for portability with other Card Services
  73 implementations, it should be set to the logical socket number.
  74 .RE
  75 
  76 .sp
  77 .ne 2
  78 .na
  79 \fB\fBAction\fR\fR
  80 .ad
  81 .RS 10n
  82 May be set to \fBCONFIG_REG_READ\fR or \fBCONFIG_REG_WRITE\fR. All other values
  83 in the \fBAction\fR field are reserved for future use. If the \fBAction\fR
  84 field is set to \fBCONFIG_REG_WRITE,\fR the \fBValue\fR field is written to the
  85 specified configuration register. Card Services does not read the configuration
  86 register after a write operation. For that reason, the \fBValue\fR field is
  87 only updated by a \fBCONFIG_REG_READ\fR request.
  88 .RE
  89 
  90 .sp
  91 .ne 2
  92 .na
  93 \fB\fBOffset\fR\fR
  94 .ad
  95 .RS 10n
  96 Specifies the byte offset for the desired configuration register from the \fBPC
  97 \fRCard configuration register base specified in
  98 \fBcsx_RequestConfiguration\fR(9F).
  99 .RE
 100 
 101 .sp
 102 .ne 2
 103 .na
 104 \fB\fBValue\fR\fR
 105 .ad
 106 .RS 10n
 107 Contains the value read from the \fBPC \fRCard Configuration Register for a
 108 read operation. For a write operation, the \fBValue\fR field contains the value
 109 to write to the configuration register. As noted above, on return from a write
 110 request, the \fBValue\fR field is the value written to the \fBPC \fRCard and
 111 not any changed value that may have resulted from the write request (that is,
 112 no read after write is performed).
 113 .RE
 114 
 115 .sp
 116 .LP
 117 A client must be very careful when writing to the \fBCOR \fR(Configuration
 118 Option Register) at offset \fB0\fR. This has the potential to change the type
 119 of interrupt request generated by the \fBPC \fRCard or place the card in the
 120 reset state. Either request may have undefined results. The client should read
 121 the register to determine the appropriate setting for the interrupt mode (Bit
 122 6) before writing to the register.
 123 .sp
 124 .LP
 125 If a client wants to reset a \fBPC\fRCard, the \fBcsx_ResetFunction\fR(9F)
 126 function should be used. Unlike \fBcsx_AccessConfigurationRegister()\fR, the
 127 \fBcsx_ResetFunction\fR(9F) function generates a series of event notifications
 128 to all clients using the \fBPC \fRCard, so they can re-establish the
 129 appropriate card state after the reset operation is complete.
 130 .SH RETURN VALUES
 131 .sp
 132 .ne 2
 133 .na
 134 \fB\fBCS_SUCCESS\fR\fR
 135 .ad
 136 .RS 27n
 137 Successful operation.
 138 .RE
 139 
 140 .sp
 141 .ne 2
 142 .na
 143 \fB\fBCS_BAD_ARGS\fR\fR
 144 .ad
 145 .RS 27n
 146 Specified arguments are invalid. Client specifies an \fBOffset\fR that is out
 147 of range or neither \fBCONFIG_REG_READ\fR or \fBCONFIG_REG_WRITE\fR is set.
 148 .RE
 149 
 150 .sp
 151 .ne 2
 152 .na
 153 \fB\fBCS_UNSUPPORTED_MODE\fR\fR
 154 .ad
 155 .RS 27n
 156 Client has not called \fBcsx_RequestConfiguration\fR(9F) before calling this
 157 function.
 158 .RE
 159 
 160 .sp
 161 .ne 2
 162 .na
 163 \fB\fBCS_BAD_HANDLE\fR\fR
 164 .ad
 165 .RS 27n
 166 Client handle is invalid.
 167 .RE
 168 
 169 .sp
 170 .ne 2
 171 .na
 172 \fB\fBCS_NO_CARD\fR\fR
 173 .ad
 174 .RS 27n
 175 No \fBPC \fRcard in socket.
 176 .RE
 177 
 178 .sp
 179 .ne 2
 180 .na
 181 \fB\fBCS_UNSUPPORTED_FUNCTION\fR\fR
 182 .ad
 183 .RS 27n
 184 No \fBPCMCIA \fRhardware installed.
 185 .RE
 186 
 187 .SH CONTEXT
 188 .sp
 189 .LP
 190 This function may be called from user or kernel context.
 191 .SH SEE ALSO
 192 .sp
 193 .LP
 194 \fBcsx_ParseTuple\fR(9F), \fBcsx_RegisterClient\fR(9F),
 195 \fBcsx_RequestConfiguration\fR(9F), \fBcsx_ResetFunction\fR(9F)
 196 .sp
 197 .LP
 198 \fIPCCard 95 Standard, PCMCIA/JEIDA\fR