nx_pe_dll_id3d11.nx
buildroot/runtime/nx_pe_dll_id3d11.nx
about
nx_pe_dll_id3d11.nx -- DATA-DRIVEN generator for a DLL whose device conforms to Microsoft's REAL ID3D11Device vtable
ABI. Resolves compiled IUnknown+device method bodies (nx_dev_qi/addref/release/getfl/notimpl), generates one uniform
MS-x64->SysV thunk per distinct method, then builds a 43-slot vtable from a SLOT TABLE (data): slot0=QueryInterface,
1=AddRef, 2=Release, 37=GetFeatureLevel, all others=E_NOTIMPL -- matching d3d11.h exactly. A foreign process using the
REAL <d3d11.h> ID3D11Device interface dispatches dev->lpVtbl->AddRef/Release/GetFeatureLevel(dev) and hits OUR slots =
ABI-conformance graded against Microsoft (MSU discipline). Method BODIES = sovereign nx_cc-compiled NishiLang; vtable+
thunks+factory = sovereign emitter glue (NO C++ ships). Static vtable baked at fixed base 0x180000000 (⚠add .reloc for
ASLR/real-deploy). Input /tmp/nishi_export_lib.s Output knowledge/nishi_id3d11.dll license_tier: ORIGINAL expect_exit: 0
dependencies 4 imports · 0 importers
imports: nx_syscalls.nxnx_itoa_lib.nxnxasm_x86.nxnx_pe_writer.nx
imported by: nobody (leaf or entry point)
call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown
structs
| none |
consts
| 14 | const N_SLOTS: i64 = 43 |
functions
| 16 | func d11_puts(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(1,s,n); return 0 } |
| 21 | func d11_putn(v: i64) -> i64 { nxi_out(v); return 0 } |
| 22 | func d11_wstr(buf: *u8, off: i64, s: *u8) -> i64 { var i: i64=0; while s[i]!=(0 as u8){ buf[off+i]=s[i]; i=i+1 } buf[off+i]=0 as u8; return i+1 } called by 1: d11_emit |
| 25 | func d11_assemble(src: *u8, n: i64, out: *u8, out_cap: i64, names: *i64, offs: *i64, cnt: i64) -> i64 |
| 59 | func d11_thunk(buf: *u8, tco: i64, moff: i64) -> i64 |
| 74 | func d11_slot_method(slot: i64) -> i64 called by 1: d11_emit |
| 83 | func d11_emit(buf: *u8, code: *u8, code_len: i64, offs: *i64) -> i64 |
| 150 | func main() -> i64 |