1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/os/mm/mmlibs/mmfw/inc/mmf/common/MmfIpc.inl Fri Jun 15 03:10:57 2012 +0200
1.3 @@ -0,0 +1,326 @@
1.4 +// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
1.5 +// All rights reserved.
1.6 +// This component and the accompanying materials are made available
1.7 +// under the terms of "Eclipse Public License v1.0"
1.8 +// which accompanies this distribution, and is available
1.9 +// at the URL "http://www.eclipse.org/legal/epl-v10.html".
1.10 +//
1.11 +// Initial Contributors:
1.12 +// Nokia Corporation - initial contribution.
1.13 +//
1.14 +// Contributors:
1.15 +//
1.16 +// Description:
1.17 +// include\mmf\common\mmfipc.inl
1.18 +//
1.19 +//
1.20 +
1.21 +
1.22 +//
1.23 +// RMmfSessionBase
1.24 +//
1.25 +
1.26 +inline TInt RMmfSessionBase::SendReceive(TInt aFunction) const
1.27 + {
1.28 + return RSessionBase::SendReceive(aFunction);
1.29 + }
1.30 +
1.31 +inline void RMmfSessionBase::SendReceive(TInt aFunction, TRequestStatus& aStatus) const
1.32 + {
1.33 + RSessionBase::SendReceive(aFunction,aStatus);
1.34 + }
1.35 +
1.36 +// Integer Send calls
1.37 +
1.38 +inline TInt RMmfSessionBase::SendReceive(TInt aFunction, TInt aParam0) const
1.39 + {
1.40 +#ifdef __MMF_USE_IPC_V2__
1.41 + return RSessionBase::SendReceive(aFunction, TIpcArgs(aParam0));
1.42 +#else
1.43 + TInt p[KMaxMessageArguments];
1.44 + p[0] = aParam0;
1.45 + p[1] = 0;
1.46 + p[2] = 0;
1.47 + p[3] = 0;
1.48 + return RSessionBase::SendReceive(aFunction, p);
1.49 +#endif //__MMF_USE_IPC_V2__
1.50 + }
1.51 +
1.52 +inline TInt RMmfSessionBase::SendReceive(TInt aFunction, TInt aParam0, TInt aParam1) const
1.53 + {
1.54 +#ifdef __MMF_USE_IPC_V2__
1.55 + return RSessionBase::SendReceive(aFunction, TIpcArgs(aParam0,aParam1));
1.56 +#else
1.57 + TInt p[KMaxMessageArguments];
1.58 + p[0] = aParam0;
1.59 + p[1] = aParam1;
1.60 + p[2] = 0;
1.61 + p[3] = 0;
1.62 + return RSessionBase::SendReceive(aFunction, p);
1.63 +#endif //__MMF_USE_IPC_V2__
1.64 + }
1.65 +
1.66 +inline void RMmfSessionBase::SendReceive(TInt aFunction, TInt aParam0, TRequestStatus& aStatus) const
1.67 + {
1.68 +#ifdef __MMF_USE_IPC_V2__
1.69 + RSessionBase::SendReceive(aFunction, TIpcArgs(aParam0), aStatus);
1.70 +#else
1.71 + TInt p[KMaxMessageArguments];
1.72 + p[0] = aParam0;
1.73 + p[1] = 0;
1.74 + p[2] = 0;
1.75 + p[3] = 0;
1.76 + RSessionBase::SendReceive(aFunction, p, aStatus);
1.77 +#endif //__MMF_USE_IPC_V2__
1.78 + }
1.79 +
1.80 +inline void RMmfSessionBase::SendReceive(TInt aFunction, TInt aParam0, TInt aParam1, TRequestStatus& aStatus) const
1.81 + {
1.82 +#ifdef __MMF_USE_IPC_V2__
1.83 + RSessionBase::SendReceive(aFunction, TIpcArgs(aParam0,aParam1), aStatus);
1.84 +#else
1.85 + TInt p[KMaxMessageArguments];
1.86 + p[0] = aParam0;
1.87 + p[1] = aParam1;
1.88 + p[2] = 0;
1.89 + p[3] = 0;
1.90 + RSessionBase::SendReceive(aFunction, p, aStatus);
1.91 +#endif //__MMF_USE_IPC_V2__
1.92 + }
1.93 +
1.94 +// Descriptor Send calls....
1.95 +
1.96 +inline TInt RMmfSessionBase::SendReceive(TInt aFunction, const TDesC8& aParam0) const
1.97 + {
1.98 +#ifdef __MMF_USE_IPC_V2__
1.99 + return RSessionBase::SendReceive(aFunction, TIpcArgs(&aParam0));
1.100 +#else
1.101 + TAny* p[KMaxMessageArguments];
1.102 + p[0] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam0));
1.103 + p[1] = NULL;
1.104 + p[2] = NULL;
1.105 + p[3] = NULL;
1.106 + return RSessionBase::SendReceive(aFunction, p);
1.107 +#endif //__MMF_USE_IPC_V2__
1.108 + }
1.109 +
1.110 +inline TInt RMmfSessionBase::SendReceive(TInt aFunction, const TDesC8& aParam0, const TDesC8& aParam1) const
1.111 + {
1.112 +#ifdef __MMF_USE_IPC_V2__
1.113 + return RSessionBase::SendReceive(aFunction, TIpcArgs(&aParam0,&aParam1));
1.114 +#else
1.115 + TAny* p[KMaxMessageArguments];
1.116 + p[0] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam0));
1.117 + p[1] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam1));
1.118 + p[2] = NULL;
1.119 + p[3] = NULL;
1.120 + return RSessionBase::SendReceive(aFunction, p);
1.121 +#endif //__MMF_USE_IPC_V2__
1.122 + }
1.123 +
1.124 +inline TInt RMmfSessionBase::SendReceive(TInt aFunction, const TDesC8& aParam0, const TDesC8& aParam1, const TDesC8& aParam2) const
1.125 + {
1.126 +#ifdef __MMF_USE_IPC_V2__
1.127 + return RSessionBase::SendReceive(aFunction, TIpcArgs(&aParam0,&aParam1,&aParam2));
1.128 +#else
1.129 + TAny* p[KMaxMessageArguments];
1.130 + p[0] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam0));
1.131 + p[1] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam1));
1.132 + p[2] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam2));
1.133 + p[3] = NULL;
1.134 + return RSessionBase::SendReceive(aFunction, p);
1.135 +#endif //__MMF_USE_IPC_V2__
1.136 + }
1.137 +
1.138 +inline void RMmfSessionBase::SendReceive(TInt aFunction, const TDesC8& aParam0, TRequestStatus& aStatus) const
1.139 + {
1.140 +#ifdef __MMF_USE_IPC_V2__
1.141 + RSessionBase::SendReceive(aFunction, TIpcArgs(&aParam0), aStatus);
1.142 +#else
1.143 + TAny* p[KMaxMessageArguments];
1.144 + p[0] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam0));
1.145 + p[1] = NULL;
1.146 + p[2] = NULL;
1.147 + p[3] = NULL;
1.148 + RSessionBase::SendReceive(aFunction, p, aStatus);
1.149 +#endif //__MMF_USE_IPC_V2__
1.150 + }
1.151 +
1.152 +inline void RMmfSessionBase::SendReceive(TInt aFunction, const TDesC8& aParam0, const TDesC8& aParam1, TRequestStatus& aStatus) const
1.153 + {
1.154 +#ifdef __MMF_USE_IPC_V2__
1.155 + RSessionBase::SendReceive(aFunction, TIpcArgs(&aParam0,&aParam1), aStatus);
1.156 +#else
1.157 + TAny* p[KMaxMessageArguments];
1.158 + p[0] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam0));
1.159 + p[1] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam1));
1.160 + p[2] = NULL;
1.161 + p[3] = NULL;
1.162 + RSessionBase::SendReceive(aFunction, p, aStatus);
1.163 +#endif //__MMF_USE_IPC_V2__
1.164 + }
1.165 +
1.166 +inline void RMmfSessionBase::SendReceive(TInt aFunction, const TDesC8& aParam0, const TDesC8& aParam1, const TDesC8& aParam2, TRequestStatus& aStatus) const
1.167 + {
1.168 +#ifdef __MMF_USE_IPC_V2__
1.169 + RSessionBase::SendReceive(aFunction, TIpcArgs(&aParam0,&aParam1,&aParam2), aStatus);
1.170 +#else
1.171 + TAny* p[KMaxMessageArguments];
1.172 + p[0] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam0));
1.173 + p[1] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam1));
1.174 + p[2] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam2));
1.175 + p[3] = NULL;
1.176 + RSessionBase::SendReceive(aFunction, p, aStatus);
1.177 +#endif //__MMF_USE_IPC_V2__
1.178 + }
1.179 +
1.180 +// Descriptor Send&Result calls
1.181 +
1.182 +inline TInt RMmfSessionBase::SendReceiveResult(TInt aFunction, TDes8& aResult) const
1.183 + {
1.184 +#ifdef __MMF_USE_IPC_V2__
1.185 + return RSessionBase::SendReceive(aFunction, TIpcArgs(&aResult));
1.186 +#else
1.187 + TAny* p[KMaxMessageArguments];
1.188 + p[0] = static_cast<TAny*>(&aResult);
1.189 + p[1] = NULL;
1.190 + p[2] = NULL;
1.191 + p[3] = NULL;
1.192 + return RSessionBase::SendReceive(aFunction, p);
1.193 +#endif //__MMF_USE_IPC_V2__
1.194 + }
1.195 +
1.196 +inline TInt RMmfSessionBase::SendReceiveResult(TInt aFunction, const TDesC8& aParam0, const TDesC8& aParam1, TDes8& aResult) const
1.197 + {
1.198 +#ifdef __MMF_USE_IPC_V2__
1.199 + return RSessionBase::SendReceive(aFunction, TIpcArgs(&aParam0,&aParam1,&aResult));
1.200 +#else
1.201 + TAny* p[KMaxMessageArguments];
1.202 + p[0] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam0));
1.203 + p[1] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam1));
1.204 + p[2] = static_cast<TAny*>(&aResult);
1.205 + p[3] = NULL;
1.206 + return RSessionBase::SendReceive(aFunction, p);
1.207 +#endif //__MMF_USE_IPC_V2__
1.208 + }
1.209 +
1.210 +inline TInt RMmfSessionBase::SendReceiveResult(TInt aFunction, const TDesC8& aParam0, const TDesC8& aParam1, const TDesC8& aParam2, TDes8& aResult) const
1.211 + {
1.212 +#ifdef __MMF_USE_IPC_V2__
1.213 + return RSessionBase::SendReceive(aFunction, TIpcArgs(&aParam0,&aParam1,&aParam2,&aResult));
1.214 +#else
1.215 + TAny* p[KMaxMessageArguments];
1.216 + p[0] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam0));
1.217 + p[1] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam1));
1.218 + p[2] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam2));
1.219 + p[3] = static_cast<TAny*>(&aResult);
1.220 + return RSessionBase::SendReceive(aFunction, p);
1.221 +#endif //__MMF_USE_IPC_V2__
1.222 + }
1.223 +
1.224 +inline void RMmfSessionBase::SendReceiveResult(TInt aFunction, TDes8& aResult, TRequestStatus& aStatus) const
1.225 + {
1.226 +#ifdef __MMF_USE_IPC_V2__
1.227 + RSessionBase::SendReceive(aFunction, TIpcArgs(&aResult), aStatus);
1.228 +#else
1.229 + TAny* p[KMaxMessageArguments];
1.230 + p[0] = static_cast<TAny*>(&aResult);
1.231 + p[1] = NULL;
1.232 + p[2] = NULL;
1.233 + p[3] = NULL;
1.234 + RSessionBase::SendReceive(aFunction, p, aStatus);
1.235 +#endif //__MMF_USE_IPC_V2__
1.236 + }
1.237 +
1.238 +inline void RMmfSessionBase::SendReceiveResult(TInt aFunction, const TDesC8& aParam0, const TDesC8& aParam1, TDes8& aResult, TRequestStatus& aStatus) const
1.239 + {
1.240 +#ifdef __MMF_USE_IPC_V2__
1.241 + RSessionBase::SendReceive(aFunction, TIpcArgs(&aParam0,&aParam1,&aResult), aStatus);
1.242 +#else
1.243 + TAny* p[KMaxMessageArguments];
1.244 + p[0] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam0));
1.245 + p[1] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam1));
1.246 + p[2] = static_cast<TAny*>(&aResult);
1.247 + p[3] = NULL;
1.248 + RSessionBase::SendReceive(aFunction, p, aStatus);
1.249 +#endif //__MMF_USE_IPC_V2__
1.250 + }
1.251 +
1.252 +inline void RMmfSessionBase::SendReceiveResult(TInt aFunction, const TDesC8& aParam0, const TDesC8& aParam1, const TDesC8& aParam2, TDes8& aResult, TRequestStatus& aStatus) const
1.253 + {
1.254 +#ifdef __MMF_USE_IPC_V2__
1.255 + RSessionBase::SendReceive(aFunction, TIpcArgs(&aParam0,&aParam1,&aParam2,&aResult), aStatus);
1.256 +#else
1.257 + TAny* p[KMaxMessageArguments];
1.258 + p[0] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam0));
1.259 + p[1] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam1));
1.260 + p[2] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam2));
1.261 + p[3] = static_cast<TAny*>(&aResult);
1.262 + RSessionBase::SendReceive(aFunction, p, aStatus);
1.263 +#endif //__MMF_USE_IPC_V2__
1.264 + }
1.265 +
1.266 +//TDesC versions
1.267 +
1.268 +inline void RMmfSessionBase::SendReceive(TInt aFunction, const TDesC& aParam0, TRequestStatus& aStatus) const
1.269 + {
1.270 +#ifdef __MMF_USE_IPC_V2__
1.271 + RSessionBase::SendReceive(aFunction, TIpcArgs(&aParam0), aStatus);
1.272 +#else
1.273 + TAny* p[KMaxMessageArguments];
1.274 + p[0] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam0));
1.275 + p[1] = NULL;
1.276 + p[2] = NULL;
1.277 + p[3] = NULL;
1.278 + RSessionBase::SendReceive(aFunction, p, aStatus);
1.279 +#endif //__MMF_USE_IPC_V2__
1.280 + }
1.281 +
1.282 +inline TInt RMmfSessionBase::SendReceive(TInt aFunction, const TDesC& aParam0) const
1.283 + {
1.284 +#ifdef __MMF_USE_IPC_V2__
1.285 + return RSessionBase::SendReceive(aFunction, TIpcArgs(&aParam0));
1.286 +#else
1.287 + TAny* p[KMaxMessageArguments];
1.288 + p[0] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam0));
1.289 + p[1] = NULL;
1.290 + p[2] = NULL;
1.291 + p[3] = NULL;
1.292 + return RSessionBase::SendReceive(aFunction, p);
1.293 +#endif //__MMF_USE_IPC_V2__
1.294 + }
1.295 +
1.296 +inline TInt RMmfSessionBase::SendReceiveResult(TInt aFunction, const TDesC8& aParam0, const TDesC8& aParam1, TDes& aResult) const
1.297 + {
1.298 +#ifdef __MMF_USE_IPC_V2__
1.299 + return RSessionBase::SendReceive(aFunction, TIpcArgs(&aParam0,&aParam1,&aResult));
1.300 +#else
1.301 + TAny* p[KMaxMessageArguments];
1.302 + p[0] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam0));
1.303 + p[1] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam1));
1.304 + p[2] = static_cast<TAny*>(&aResult);
1.305 + p[3] = NULL;
1.306 + return RSessionBase::SendReceive(aFunction, p);
1.307 +#endif //__MMF_USE_IPC_V2__
1.308 + }
1.309 +
1.310 +// assuming IPC_V2
1.311 +inline TInt RMmfSessionBase::SendReceive(TInt aFunction, TInt aParam0, const TDesC8& aParam1, const TDesC8& aParam2) const
1.312 + {
1.313 + return RSessionBase::SendReceive(aFunction, TIpcArgs(aParam0, &aParam1, &aParam2));
1.314 + }
1.315 +
1.316 +inline TInt RMmfSessionBase::SendReceiveResult(TInt aFunction, TInt aParam0, const TDesC8& aParam1, const TDesC8& aParam2, TDes8& aResult) const
1.317 + {
1.318 + return RSessionBase::SendReceive(aFunction, TIpcArgs(aParam0, &aParam1, &aParam2, &aResult));
1.319 + }
1.320 +
1.321 +inline void RMmfSessionBase::SendReceive(TInt aFunction, TInt aParam0, const TDesC8& aParam1, const TDesC8& aParam2, TRequestStatus& aStatus) const
1.322 + {
1.323 + return RSessionBase::SendReceive(aFunction, TIpcArgs(aParam0, &aParam1, &aParam2), aStatus);
1.324 + }
1.325 +
1.326 +inline void RMmfSessionBase::SendReceiveResult(TInt aFunction, TInt aParam0, const TDesC8& aParam1, const TDesC8& aParam2, TDes8& aResult, TRequestStatus& aStatus) const
1.327 + {
1.328 + return RSessionBase::SendReceive(aFunction, TIpcArgs(aParam0, &aParam1, &aParam2, &aResult), aStatus);
1.329 + }