2 * Copyright (c) 2002 Sergey Chaban <serge@wildwestsoftware.com>
\r
7 namespace Mono.PEToolkit {
\r
10 /// Relative Virtual Address.
\r
14 public static readonly RVA Null;
\r
24 public RVA(uint val)
\r
40 public static implicit operator RVA (uint val)
\r
42 return new RVA(val);
\r
45 public static implicit operator uint (RVA rva)
\r
50 public override int GetHashCode()
\r
55 public override bool Equals(object o)
\r
57 bool res = o is RVA;
\r
58 if (res) res = (this.value == ((RVA)o).value);
\r
62 public static bool operator == (RVA rva1, RVA rva2)
\r
64 return rva1.Equals(rva2);
\r
67 public static bool operator != (RVA rva1, RVA rva2)
\r
69 return !rva1.Equals(rva2);
\r
72 public static bool operator < (RVA rva1, RVA rva2)
\r
74 return (rva1.value < rva2.value);
\r
77 public static bool operator > (RVA rva1, RVA rva2) {
\r
78 return (rva1.value > rva2.value);
\r
81 public static bool operator <= (RVA rva1, RVA rva2)
\r
83 return (rva1.value <= rva2.value);
\r
86 public static bool operator >= (RVA rva1, RVA rva2)
\r
88 return (rva1.value >= rva2.value);
\r
91 public static RVA operator + (RVA rva, uint x)
\r
93 return new RVA (rva.value + x);
\r
96 public static RVA operator - (RVA rva, uint x)
\r
98 return new RVA (rva.value - x);
\r
102 public override string ToString()
\r
104 if (this == Null) return "NULL";
\r
105 return ("0x" + value.ToString("X"));
\r
108 unsafe public static int Size {
\r
110 return sizeof (uint);
\r