# Interface: com.pnfsoftware.jeb.core.units.code.asm.INativeContext

Native code context. The context is a super\-interface of the [INativeCodeUnit](INativeCodeUnit) and allows the implementation of test disassemblers outside of the [unit](IUnit) management facility.

## Method: createMethodReference
- parameter: `name`, type: `java.lang.String`
- parameter: `prototype`, type: `com.pnfsoftware.jeb.core.units.code.asm.type.IPrototypeItem`
- parameter: `methodData`, type: `com.pnfsoftware.jeb.core.units.code.asm.items.INativeMethodDataItem`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.items.INativeMethodItem`


## Method: getCodeContainerType
- return type: `int`

Description: 
return: 0=unknown, 1=ELF, 2=PE

## Method: getDetectedCompiler
- return type: `com.pnfsoftware.jeb.core.units.code.asm.analyzer.ICompiler`


## Method: getDynamicBranchResolution
- parameter: `address`, type: `long`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.analyzer.IBranchResolution`


## Method: getField
- parameter: `address`, type: `long`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.items.INativeFieldItem`


## Method: getFields
- return type: `java.util.List<com.pnfsoftware.jeb.core.units.code.asm.items.INativeFieldItem>`


## Method: getImageSize
- return type: `long`

Description: Retrieve the size of the image
return: 

## Method: getMemory
- return type: `com.pnfsoftware.jeb.core.units.code.asm.memory.IVirtualMemory`


## Method: getNativeItemAt
- parameter: `address`, type: `long`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.items.INativeContinuousItem`

Description: Retrieve the native continuous memory item \(a variable, an instruction\) starting at the provided address.
parameter: address: 
return: 

## Method: getNativeItemOver
- parameter: `address`, type: `long`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.items.INativeContinuousItem`

Description: Retrieve the native continuous memory item \(a variable, an instruction\) spanning over the provided address.
parameter: address: 
return: 

## Method: getProcessor
- return type: `com.pnfsoftware.jeb.core.units.code.asm.processor.IProcessor<?>`

Description: Retrieve the machine code parser \(pseudo\-processor\).
return: 

## Method: getRoutine
- parameter: `address`, type: `long`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.items.INativeMethodItem`


## Method: getRoutineByName
- parameter: `name`, type: `java.lang.String`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.items.INativeMethodItem`


## Method: getRoutineOver
- parameter: `address`, type: `long`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.items.INativeMethodItem`


## Method: getRoutines
- return type: `java.util.List<com.pnfsoftware.jeb.core.units.code.asm.items.INativeMethodItem>`


## Method: getSubsystemType
- return type: `com.pnfsoftware.jeb.core.units.codeobject.SubsystemType`


## Method: getTypeManager
- return type: `com.pnfsoftware.jeb.core.units.code.asm.type.ITypeManager`


## Method: getVirtualImageBase
- return type: `long`

Description: Retrieve the virtual image base. This virtual address is the reference for every memory access.
return: the virtual image base

## Method: recordDynamicBranchTarget
- parameter: `instructionAddress`, type: `long`
- parameter: `resolved`, type: `boolean`
- parameter: `target`, type: `com.pnfsoftware.jeb.core.units.code.asm.analyzer.IBranchTarget`
- return type: `boolean`


## Method: requestRoutineReanalysis
- parameter: `routine`, type: `com.pnfsoftware.jeb.core.units.code.asm.items.INativeMethodItem`


## Method: trackNativeItem
- parameter: `type`, type: `com.pnfsoftware.jeb.core.units.code.asm.type.INativeType`
- parameter: `listener`, type: `com.pnfsoftware.jeb.util.events.IEventListener`


