usbmgmt/usbmgr/usbman/server/INC/UsbmanServerSecurityPolicy.h
changeset 0 c9bc50fca66e
child 15 f92a4f87e424
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/usbman/server/INC/UsbmanServerSecurityPolicy.h	Tue Feb 02 02:02:59 2010 +0200
@@ -0,0 +1,132 @@
+/*
+* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* USBMAN Server Security Policy definitions for Platform security.
+*
+*/
+
+/**
+ @file 
+ @internalComponent
+*/
+ 
+#if !defined(__USBMANSERVERSECURITYPOLICY_H__)
+#define __USBMANSERVERSECURITYPOLICY_H__
+
+#include <usb/usbshared.h>
+#include "rusb.h"
+
+/** Usbman Server Security Policy Definition */
+const TUint KUsbmanServerRangeCount = 13;
+
+const TInt KUsbmanServerRanges[KUsbmanServerRangeCount] = 
+	{
+	EUsbStart,                 			/** NetworkControl 		*/
+	EUsbRegisterObserver,       		/** none 				*/
+	EUsbStartCancel,            		/** NetworkControl 		*/
+	EUsbCancelObserver,        			/** none 				*/
+	EUsbStopCancel,            			/** NetworkControl 		*/
+	EUsbGetCurrentDeviceState, 			/** none 				*/
+	EUsbTryStart,              			/** NetworkControl 		*/
+	EUsbCancelInterest,        			/** none 				*/
+	EUsbSetCtlSessionMode,	   			/** NetworkControl 		*/
+	EUsbRegisterMessageObserver, 		/** none 				*/
+	EUsbEnableFunctionDriverLoading,	/** NetworkControl 		*/
+	EUsbGetSupportedLanguages, 			/** none 				*/
+	EUsbGetPersonalityProperty + 1	 				/** fail (to KMaxTInt) 	*/
+	};
+
+/** Index numbers into KUsbmanServerElements[] */
+const TInt KPolicyNetworkControl = 0;
+const TInt KPolicyPass = 1;
+
+/**Mapping IPCs to policy element */
+const TUint8 KUsbmanServerElementsIndex[KUsbmanServerRangeCount] = 
+	{
+	KPolicyNetworkControl, 	/** EUsbStart */
+				 			/** EUsbStop  */
+
+	KPolicyPass, 		 	/** EUsbRegisterObserver */
+				 			/** EUsbGetCurrentState */
+
+	KPolicyNetworkControl, 	/** EUsbStartCancel */
+
+	KPolicyPass,		 	/** EUsbCancelObserver */
+
+	KPolicyNetworkControl, 	/** EUsbStopCancel */
+	KPolicyPass, 		 	/** EUsbGetCurrentDeviceState */
+				 			/** EUsbRegisterServiceObserver */
+		                 	/** EUsbCancelServiceObserver */
+		           	 		/** EUsbDbgMarkHeap */
+				 			/** EUsbDbgCheckHeap */
+				 			/** EUsbDbgMarkEnd */
+				 			/** EUsbDbgFailNext */
+
+	KPolicyNetworkControl,	/** EUsbTryStart */
+				 			/** EUsbTryStop */
+
+	KPolicyPass,		 	/** EUsbCancelInterest */
+					 		/** EUsbGetCurrentPersonalityId */
+					 		/** EUsbGetSupportedClasses */
+					 		/** EUsbGetPersonalityIds */
+					 		/** EUsbGetDescription */
+					 		/** EUsbClassSupported */
+
+	KPolicyNetworkControl,	/** EUsbSetCtlSessionMode */
+							/** EUsbBusRequest */
+				 			/** EUsbBusRespondSrp */
+
+				 			/** EUsbBusClearError */
+
+				 			/** EUsbBusDrop */
+
+	KPolicyPass,		 	/** EUsbRegisterMessageObserver */
+					 		/** EUsbCancelMessageObserver */
+					 		/** EUsbRegisterHostObserver */
+					 		/** EUsbCancelHostObserver */
+
+	KPolicyNetworkControl,	/** EUsbEnableFunctionDriverLoading */
+				 			/** EUsbDisableFunctionDriverLoading */
+
+	KPolicyPass,		 	/** EUsbGetSupportedLanguages */
+					 		/** EUsbGetManufacturerStringDescriptor */
+					 		/** EUsbGetProductStringDescriptor */
+                            /** EUsbGetOtgDescriptor */
+				 			/** EUsbDbgAlloc */
+							/** EUsbRequestSession */
+                            /** EUsbGetDetailedDescription */
+							/** EUsbGetPersonalityProperty */
+
+	CPolicyServer::ENotSupported, /** EUsbGetPersonalityProperty + 1 to KMaxTInt */
+
+	};
+
+/** Individual policy elements */
+const CPolicyServer::TPolicyElement KUsbmanServerElements[] = 
+	{
+		/** the EFailClient means that the if the check fails the CheckFailed method with return KErrPermissionDenied */
+  		{ _INIT_SECURITY_POLICY_C1(ECapabilityNetworkControl), CPolicyServer::EFailClient },
+  		{ _INIT_SECURITY_POLICY_PASS },
+	};
+
+/** Main policy */
+const CPolicyServer::TPolicy KUsbmanServerPolicy = 
+	{
+	CPolicyServer::EAlwaysPass, /** Specifies all connect attempts should pass */
+	KUsbmanServerRangeCount,
+	KUsbmanServerRanges,
+	KUsbmanServerElementsIndex,
+	KUsbmanServerElements,
+	};
+#endif //__USBMANSERVERSECURITYPOLICY_H__