ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/RomCheater/trunk/RomCheater.Core/ProcessorAssemblyArchitecture.cs
(Generate patch)

Comparing trunk/RomCheater.Core/ProcessorAssemblyArchitecture.cs (file contents):
Revision 117 by william, Thu May 10 18:12:06 2012 UTC vs.
Revision 124 by william, Fri May 11 10:58:42 2012 UTC

# Line 10 | Line 10 | namespace System.Reflection
10      [AttributeUsage(AttributeTargets.Assembly)]
11      public class ProcessorAssemblyArchitecture : Attribute
12      {
13 <        public ProcessorAssemblyArchitecture() { ProcessorArchitecture = Undefined; }
13 >        public ProcessorAssemblyArchitecture() { Architecture = Undefined; }
14          public ProcessorAssemblyArchitecture(string arch)
15          {
16              Type t = typeof(ProcessorAssemblyArchitecture);
# Line 26 | Line 26 | namespace System.Reflection
26                      break;
27                  }
28              }
29 <            if (!found) { ProcessorArchitecture = Undefined; }
30 <            else { ProcessorArchitecture = arch; }
31 <        }  
32 <        string _ProcessorArchitecture;
33 <        public string ProcessorArchitecture { get { return _ProcessorArchitecture; } private set { _ProcessorArchitecture = value; } }
29 >            if (!found) { Architecture = Undefined; }
30 >            else { Architecture = arch; }
31 >        }
32 >        string _Architecture;
33 >        public string Architecture { get { return _Architecture; } private set { _Architecture = value; } }
34          #region processor architecture
35 +        /// <summary>
36 +        /// Represents an undefined processor arcitecture
37 +        /// </summary>
38          public const string Undefined = "Undefined";
39 +        /// <summary>
40 +        /// Represents a 32-bit processor arcitecture
41 +        /// </summary>
42          public const string x86 = "x86";
43 +        /// <summary>
44 +        /// Represents a 64-bit processor arcitecture
45 +        /// </summary>
46          public const string x64 = "x64";
47 <        public const string Amd64 = "Amd64";
47 >        /// <summary>
48 >        /// Represents a 64-bit processor arcitecture (this is equivalent to x64, this is just Amd's nameing convention)
49 >        /// </summary>
50 >        public const string Amd64 = x64;
51 >        /// <summary>
52 >        /// Represents am Itanium 64-bit processor arcitecture
53 >        /// </summary>
54          public const string Ia64 = "Ia64";
55 +        /// <summary>
56 +        /// Represents a 32-bit and 64-bit processor arcitecture (it will run in 32-bit mode for 32-bit systems and 64-bit for non-32bit systems)
57 +        /// </summary>
58          public const string AnyCpu = "AnyCpu";
59 +        /// <summary>
60 +        /// Represents a 32-bit and 64-bit processor arcitecture (refered to as AnyCpu)
61 +        /// </summary>
62 +        public const string Msil = AnyCpu;
63          #endregion
64 +
65 +        public static string GetProcessorArchitecture(Assembly t)
66 +        {          
67 +            string assembly_arch = Undefined;
68 +
69 +            // get architecture
70 +            ProcessorArchitecture o = t.GetName().ProcessorArchitecture;
71 +            if (o == ProcessorArchitecture.None)
72 +                assembly_arch = Undefined;
73 +
74 +            switch (o)
75 +            {                
76 +                case ProcessorArchitecture.Amd64: assembly_arch = Amd64; break;
77 +                case ProcessorArchitecture.IA64: assembly_arch = Ia64; break;
78 +                case ProcessorArchitecture.MSIL: assembly_arch = AnyCpu; break;
79 +                case ProcessorArchitecture.X86: assembly_arch = x86; break;
80 +                case ProcessorArchitecture.None:  break;
81 +                default: assembly_arch = Undefined; break;
82 +            }          
83 +                          
84 +            return assembly_arch;
85 +        }
86 +
87      }
88   }
89  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines