Apply the Apache 2.0 license.

Change-Id: I4a7aeefedcd2d891093520d5a10ebefadcddb5be
Reviewed-on: https://swiftshader-review.googlesource.com/5320
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
diff --git a/src/Common/MutexLock.hpp b/src/Common/MutexLock.hpp
index 31e5189..16835ed 100644
--- a/src/Common/MutexLock.hpp
+++ b/src/Common/MutexLock.hpp
@@ -1,126 +1,129 @@
-// SwiftShader Software Renderer

-//

-// Copyright(c) 2005-2011 TransGaming Inc.

-//

-// All rights reserved. No part of this software may be copied, distributed, transmitted,

-// transcribed, stored in a retrieval system, translated into any human or computer

-// language by any means, or disclosed to third parties without the explicit written

-// agreement of TransGaming Inc. Without such an agreement, no rights or licenses, express

-// or implied, including but not limited to any patent rights, are granted to you.

-//

-

-#ifndef sw_MutexLock_hpp

-#define sw_MutexLock_hpp

-

-#include "Thread.hpp"

-

-namespace sw

-{

-	class BackoffLock

-	{

-	public:

-		BackoffLock()

-		{

-			mutex = 0;

-		}

-

-		bool attemptLock()

-		{

-			if(!isLocked())

-			{

-				if(atomicExchange(&mutex, 1) == 0)

-				{

-					return true;

-				}

-			}

-

-			return false;

-		}

-

-		void lock()

-		{

-			int backoff = 1;

-

-			while(!attemptLock())

-			{

-				if(backoff <= 64)

-				{

-					for(int i = 0; i < backoff; i++)

-					{

-						nop();

-						nop();

-						nop();

-						nop();

-						nop();

-

-						nop();

-						nop();

-						nop();

-						nop();

-						nop();

-

-						nop();

-						nop();

-						nop();

-						nop();

-						nop();

-

-						nop();

-						nop();

-						nop();

-						nop();

-						nop();

-

-						nop();

-						nop();

-						nop();

-						nop();

-						nop();

-

-						nop();

-						nop();

-						nop();

-						nop();

-						nop();

-

-						nop();

-						nop();

-						nop();

-						nop();

-						nop();

-					}

-

-					backoff *= 2;

-				}

-				else

-				{

-					Thread::yield();

-

-					backoff = 1;

-				}

-			};

-		}

-

-		void unlock()

-		{

-			mutex = 0;

-		}

-

-		bool isLocked()

-		{

-			return mutex != 0;

-		}

-

-	private:

-		struct

-		{

-			// Ensure that the mutex variable is on its own 64-byte cache line to avoid false sharing

-			// Padding must be public to avoid compiler warnings

-			volatile int padding1[16];

-			volatile int mutex;

-			volatile int padding2[15];

-		};

-	};

-}

-

-#endif   // sw_MutexLock_hpp

+// Copyright 2016 The SwiftShader Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//    http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#ifndef sw_MutexLock_hpp
+#define sw_MutexLock_hpp
+
+#include "Thread.hpp"
+
+namespace sw
+{
+	class BackoffLock
+	{
+	public:
+		BackoffLock()
+		{
+			mutex = 0;
+		}
+
+		bool attemptLock()
+		{
+			if(!isLocked())
+			{
+				if(atomicExchange(&mutex, 1) == 0)
+				{
+					return true;
+				}
+			}
+
+			return false;
+		}
+
+		void lock()
+		{
+			int backoff = 1;
+
+			while(!attemptLock())
+			{
+				if(backoff <= 64)
+				{
+					for(int i = 0; i < backoff; i++)
+					{
+						nop();
+						nop();
+						nop();
+						nop();
+						nop();
+
+						nop();
+						nop();
+						nop();
+						nop();
+						nop();
+
+						nop();
+						nop();
+						nop();
+						nop();
+						nop();
+
+						nop();
+						nop();
+						nop();
+						nop();
+						nop();
+
+						nop();
+						nop();
+						nop();
+						nop();
+						nop();
+
+						nop();
+						nop();
+						nop();
+						nop();
+						nop();
+
+						nop();
+						nop();
+						nop();
+						nop();
+						nop();
+					}
+
+					backoff *= 2;
+				}
+				else
+				{
+					Thread::yield();
+
+					backoff = 1;
+				}
+			};
+		}
+
+		void unlock()
+		{
+			mutex = 0;
+		}
+
+		bool isLocked()
+		{
+			return mutex != 0;
+		}
+
+	private:
+		struct
+		{
+			// Ensure that the mutex variable is on its own 64-byte cache line to avoid false sharing
+			// Padding must be public to avoid compiler warnings
+			volatile int padding1[16];
+			volatile int mutex;
+			volatile int padding2[15];
+		};
+	};
+}
+
+#endif   // sw_MutexLock_hpp