Module: Ragweed::Wraposx::ThreadContext

Defined in:
lib/ragweed/wraposx/thread_context.rb

Defined Under Namespace

Classes: Debug, Debug32, Debug64, Exception, Exception32, Exception64, Float, Float32, Float64, State, State32, State64, UnionDebugState, UnionExceptionState, UnionFloatState, UnionThreadState, X86StateHdr

Constant Summary collapse

X86_THREAD_STATE32 =
1
X86_FLOAT_STATE32 =
2
X86_EXCEPTION_STATE32 =
3
X86_DEBUG_STATE32 =
10
X86_THREAD_STATE64 =
4
X86_FLOAT_STATE64 =
5
X86_EXCEPTION_STATE64 =
6
X86_DEBUG_STATE64 =
11
X86_THREAD_STATE =

factory requests (return 32 or 64 bit structure)

7
X86_FLOAT_STATE =
8
X86_EXCEPTION_STATE =
9
X86_DEBUG_STATE =
12
THREAD_STATE_NONE =
13
I386_THREAD_STATE =

depricated request names

X86_THREAD_STATE32
I386_FLOAT_STATE =
X86_FLOAT_STATE32
I386_EXCEPTION_STATE =
X86_EXCEPTION_STATE32
FLAVORS =
{
  X86_THREAD_STATE32    => {:size => 64, :count =>16, :class => State32},
  X86_FLOAT_STATE32     => {:size => 64, :count =>16, :class => Float32},
  X86_EXCEPTION_STATE32 => {:size => 12, :count =>3, :class => Exception32},
  X86_DEBUG_STATE32     => {:size => 64, :count =>8, :class => Debug32},
  X86_THREAD_STATE64    => {:size => 168, :count =>42, :class => State64},
  X86_FLOAT_STATE64     => {:size => 64, :count =>16, :class => Float64},
  X86_EXCEPTION_STATE64 => {:size => 16, :count =>4, :class => Exception64},
  X86_DEBUG_STATE64     => {:size => 128, :count =>16, :class => Debug64},
  X86_THREAD_STATE      => {:size => 176, :count =>44, :class => State},
  X86_FLOAT_STATE       => {:size => 64, :count =>16, :class => Float},
  X86_EXCEPTION_STATE   => {:size => 24, :count =>6, :class => Exception},
  X86_DEBUG_STATE       => {:size => 136, :count =>18, :class => Debug}
}

Class Method Summary collapse

Class Method Details

.get(thread, flavor = X86_THREAD_STATE) ⇒ Object



37
38
39
# File 'lib/ragweed/wraposx/thread_context.rb', line 37

def self.get(thread, flavor = X86_THREAD_STATE)
  Ragweed::Wraposx.thread_get_state(thread, flavor)
end

.set(thread, state) ⇒ Object



41
42
43
# File 'lib/ragweed/wraposx/thread_context.rb', line 41

def self.set(thread, state)
  Ragweed::Wraposx.thread_set_state(thread, state.class::FLAVOR, state)
end