code wiki / (root) / nx_cast_lit_expanded_t181.nx

nx_cast_lit_expanded_t181.nx

buildroot/runtime/nx_cast_lit_expanded_t181.nx

262144 B3776 linesdepth 0pulls 0 transitivereach 0 importersview sourcekind orphan librarytopic cast
docsdependenciesstructsconstsfunctions

about

nx_shader_ir.nx -- THE SHADER IR: ONE source of truth, N dialect backends. WHY THIS EXISTS (measured 2026-08-23). The estate's shaders are hand-written GLSL string literals inside nx_game_page_emit. Drawing characters on the WebGPU tier therefore demanded a SECOND HAND COPY in WGSL -- ~600 lines (dual-quaternion skinning off a joint texture, instance uniform arrays, the voxel occlusion march, the procedural anatomy/eye/hair/skin paint) of the most actively-edited shader in the estate: three separate feature edits landed in it on the day this was written. Two artifacts that must agree, kept in agreement by discipline, is the exact shape the banked law forbids. This module is the construction that makes disagreement IMPOSSIBLE: neither dialect is authored, both are EMITTED from this representation. HOUSE SHAPE. This mirrors the NishiLang compiler itself -- lex_source -> parse_module -> opt_run -> {nx_compile_x86, nx_compile_wat}: one front-end representation, many backends. nx_glsl.nx and nx_wgsl.nx are backends over this IR, not transpilers bolted to a call site. THE SOURCE OF TRUTH IS NISHILANG (operator, 2026-08-23: "we dont want python or glsl or javascript or all that it should be nishi lang and nishi ecosystem from the first byte up each rung gaining all these capabilities"). GLSL IS A TARGET, NOT AN INPUT. This is NOT a GLSL->WGSL transpiler: translating would enshrine GLSL as the canonical language and make a foreign dialect the artifact we maintain. A shader is authored ONCE in NishiLang; GLSL and WGSL are both OUTPUTS, exactly as x86_64 and WAT are outputs of the same NishiLang front-end. The ~600 lines of GLSL in MVS/MFS are therefore a MIGRATION TARGET, not the source: each rung expresses more of them in NishiLang and PROVES the emitted GLSL equivalent to the hand-written GLSL that ships today. LADDER (each rung widens the covered subset; rung 1 is what this lane ships): rung 1 the fullscreen-triangle vertex stage -- authored in NishiLang, emitting BOTH the GLSL VSH and the WGSL vs that are hand-written and SHIPPING today, proven against them. rung 2 lower the real NishiLang AST (nx_tokenizer/nx_parse) into this IR, so a shader is an ordinary NishiLang function rather than builder calls -- the full 'target, not translator' shape, sharing the front-end with nx_compile_x86 and the WAT lane. rung 3 widen the subset to the MFS paint set; rung 4 the MVS skinning set; then the character pass becomes a compile target and the WebGPU abstention flips from owed to shipped. THE SOURCE OF TRUTH IS NISHILANG (operator, 2026-08-23: "we dont want python or glsl or javascript or all that it should be nishi lang and nishi ecosystem from the first byte up each rung gaining all these capabilities"). GLSL IS A TARGET, NOT AN INPUT. This is NOT a GLSL->WGSL transpiler: translating would enshrine GLSL as the canonical language and make a foreign dialect the artifact we maintain. A shader is authored ONCE in NishiLang; GLSL and WGSL are both OUTPUTS, exactly as x86_64 and WAT are outputs of the same NishiLang front-end. The ~600 lines of GLSL in MVS/MFS are therefore a MIGRATION TARGET, not the source: each rung expresses more of them in

dependencies 0 imports · 0 importers

imports: none

imported by: nobody (leaf or entry point)

structs

none

consts

273const NX_BUF_TINY: nx_size = 64
274const NX_BUF_SMALL: nx_size = 256
275const NX_BUF_MEDIUM: nx_size = 4096
276const NX_BUF_LARGE: nx_size = 65536
277const NX_BUF_HUGE: nx_size = 1048576
281const NX_TIER_MCU: nx_int = 0
282const NX_TIER_SOVEREIGN_CHIP: nx_int = 1
283const NX_TIER_FAMILY_DEVICE: nx_int = 2
284const NX_TIER_WORKSTATION: nx_int = 3
285const NX_TIER_SERVER: nx_int = 4
286const NX_TIER_HPC: nx_int = 5
290const NX_NUM_N0_I32: nx_int = 0
291const NX_NUM_N1_I64: nx_int = 1
292const NX_NUM_N2_I128: nx_int = 2
293const NX_NUM_N3_I256: nx_int = 3
294const NX_NUM_N4_I512: nx_int = 4
295const NX_NUM_N5_BIGINT: nx_int = 5
303const NX_SIZEOF_NX_INT: nx_size = 8 // nx_int currently i64 -> 8 bytes
304const NX_SIZEOF_NX_SIZE: nx_size = 8 // nx_size always pointer-width
305const NX_SIZEOF_NX_IDX: nx_size = 8 // nx_idx alias of nx_size
309const NX_FD_STDIN: nx_fd = 0
310const NX_FD_STDOUT: nx_fd = 1
311const NX_FD_STDERR: nx_fd = 2
313const SYS_MAGIC_1024: i64 = 1024
314const SYS_MAGIC_1000000: i64 = 1000000
315const SYS_MAGIC_4294967296: i64 = 4294967296
317const SYS_READ_GROW_INIT: i64 = 65536
318const SYS_MAGIC_100000: i64 = 100000
336const SYS_READ: i64 = 0
337const SYS_WRITE: i64 = 1
338const SYS_CLOSE: i64 = 3
339const SYS_LSEEK: i64 = 8
340const SYS_OPENAT: i64 = 257
341const SYS_EXIT: i64 = 60
342const SYS_MMAP: i64 = 9
343const SYS_CLOCK_GETTIME: i64 = 228
344const SYS_IOCTL: i64 = 16
345const SYS_CLOCK_NANOSLEEP: i64 = 230
349const SYS_CHROOT: i64 = 161
350const SYS_MOUNT: i64 = 165
351const SYS_UNSHARE: i64 = 272
352const SYS_GETUID: i64 = 102
353const SYS_GETGID: i64 = 104
354const SYS_POLL: i64 = 7
358const SYS_READ: i64 = 63
359const SYS_WRITE: i64 = 64
360const SYS_CLOSE: i64 = 57
361const SYS_LSEEK: i64 = 62
362const SYS_OPENAT: i64 = 56
363const SYS_EXIT: i64 = 93
364const SYS_MMAP: i64 = 222
365const SYS_CLOCK_GETTIME: i64 = 113
366const SYS_IOCTL: i64 = 29
367const SYS_CLOCK_NANOSLEEP: i64 = 115
374const SYS_CHROOT: i64 = 51
375const SYS_MOUNT: i64 = 40
376const SYS_UNSHARE: i64 = 97
377const SYS_GETUID: i64 = 174
378const SYS_GETGID: i64 = 176
379const SYS_POLL: i64 = 73
437const SYS_PATH_MAX: i64 = 4096 // Linux PATH_MAX; getcwd returns -ERANGE below it
441const MODE_0755: i64 = 0x1ed // rwxr-xr-x : default mode for a created directory
456const AT_FDCWD: i64 = -100
561const NX_MO_RELAXED: i64 = 0
562const NX_MO_CONSUME: i64 = 1
563const NX_MO_ACQUIRE: i64 = 2
564const NX_MO_RELEASE: i64 = 3
565const NX_MO_ACQ_REL: i64 = 4
566const NX_MO_SEQ_CST: i64 = 5
568const NXA_SMALL_MAX: i64 = 256
569const NXA_CHUNK: i64 = 262144
570const NXA_ALIGN: i64 = 16
571const NXA_GAP: i64 = 16
572const NXA_STATE: i64 = 4096
578const NXA_RING: i64 = 128
579const NXA_RBASE: i64 = 64
614const NXA_LOCK: i64 = 4
622const NXA_LOCK_WARN: i64 = NXA_RING * 8
626const NXA_LOCK_WARNED: i64 = 5
628const NXA_CHUNKBASE: i64 = 320
629const NXA_CHUNKMAX: i64 = 192
650const NXA_MAP_INVALID:i64=0-22 // Linux EINVAL, a protocol value rather than a resource budget.
702const SYS_STATFS_X86_MEASURED: i64 = 137
703const STATFS_BUF_BYTES: i64 = 144
704const STATFS_I_BSIZE: i64 = 1
705const STATFS_I_BLOCKS: i64 = 2
706const STATFS_I_BAVAIL: i64 = 4
707const STATFS_PERMIL: i64 = 1000
708const STATFS_ERR: i64 = 0 - 1
1053const O_RDONLY: i64 = 0
1054const O_WRONLY_CT: i64 = 0x241 // O_CREAT | O_WRONLY | O_TRUNC
1055const O_WRONLY_CA: i64 = 0x441 // O_CREAT | O_WRONLY | O_APPEND
1063const O_RDWR_CREATE: i64 = 0x42
1084const MODE_0644: i64 = 0x1a4 // rw-r--r-- : default mode for a generated artifact
1089const MODE_0755: i64 = 0x1ed
1102const ACCEPT_TMO_S: i64 = 30
1109const O_WRONLY_CREATE_EXCLUSIVE: i64 = 0x1 | 0x40 | 0x80
1115const O_DIRECTORY: i64 = 0x10000
1129const O_CLOEXEC: i64 = 0x80000
1130const O_NOFOLLOW: i64 = 0x20000
1131const O_NONBLOCK: i64 = 0x800
1132const MODE_0600: i64 = 0x180
1197const SYS_LOCK_SH: i64 = 1
1198const SYS_LOCK_EX: i64 = 2
1199const SYS_LOCK_NB: i64 = 4
1200const SYS_LOCK_UN: i64 = 8
1245const SYS_SETPGID: i64 = 109
1248const SYS_SETPGID: i64 = 154
1271const RLIMIT_CPU: i64 = 0
1272const RLIMIT_AS: i64 = 9
1273const WNOHANG: i64 = 1
1367const SYS_CLONE: i64 = 56
1368const SYS_EXECVE: i64 = 59
1369const SYS_WAIT4: i64 = 61
1370const SYS_PIPE2: i64 = 293
1371const SYS_DUP3: i64 = 292
1375const SYS_CLONE: i64 = 220
1376const SYS_EXECVE: i64 = 221
1377const SYS_WAIT4: i64 = 260
1378const SYS_PIPE2: i64 = 59
1379const SYS_DUP3: i64 = 24
1385const CLONE_VM: i64 = 0x00000100
1386const CLONE_VFORK: i64 = 0x00004000
1387const SIGCHLD: i64 = 17
1437const NX_SYS_PRCTL: i64 = 167
1438const NX_PR_SET_PDEATHSIG: i64 = 1
1439const NX_PR_SET_CHILD_SUBREAPER: i64 = 36
1454const SYS_WAITID_PORTABLE: i64 = 95
1455const NX_WAIT_P_PID: i64 = 1
1456const NX_WAIT_EXITED: i64 = 4
1457const NX_WAIT_NOWAIT: i64 = 0x01000000
1458const NX_WAIT_SIGINFO_BYTES: i64 = 128
1465const NX_FD_DENT_BUFFER: i64 = 4096
1466const NX_SYS_CLOSE_RANGE: i64 = 436 // Linux x86_64 and asm-generic ABI
1467const NX_FD_UINT_MAX: i64 = 4294967295
1639const SYS_GETDENTS64: i64 = 217
1642const SYS_GETDENTS64: i64 = 61
1645const DT_UNKNOWN: i64 = 0
1646const DT_FIFO: i64 = 1
1647const DT_CHR: i64 = 2
1648const DT_DIR: i64 = 4
1649const DT_BLK: i64 = 6
1650const DT_REG: i64 = 8
1651const DT_LNK: i64 = 10
1652const DT_SOCK: i64 = 12
1840const SYS_SOCKET: i64 = 41
1841const SYS_BIND: i64 = 49
1842const SYS_LISTEN: i64 = 50
1843const SYS_ACCEPT: i64 = 43
1844const SYS_CONNECT: i64 = 42
1845const SYS_SETSOCKOPT: i64 = 54
1846const SYS_SENDTO: i64 = 44
1847const SYS_RECVFROM: i64 = 45
1848const SYS_SHUTDOWN: i64 = 48
1852const SYS_SOCKET: i64 = 198
1853const SYS_BIND: i64 = 200
1854const SYS_LISTEN: i64 = 201
1855const SYS_ACCEPT: i64 = 202
1856const SYS_CONNECT: i64 = 203
1857const SYS_SETSOCKOPT: i64 = 208
1858const SYS_SENDTO: i64 = 206
1859const SYS_RECVFROM: i64 = 207
1860const SYS_SHUTDOWN: i64 = 210
1864const SOL_SOCKET: i64 = 1
1865const SO_REUSEADDR: i64 = 2
1870const SO_SNDTIMEO: i64 = 21
1871const SO_RCVTIMEO: i64 = 20
1899const SYS_ALARM: i64 = 37
1902const AF_INET: i64 = 2
1903const SOCK_STREAM: i64 = 1
1904const SOCK_DGRAM: i64 = 2
2010const SYS_SENDMSG: i64 = 46
2011const SYS_RECVMSG: i64 = 47
2012const SYS_SOCKETPAIR: i64 = 53
2013const SCM_AF_UNIX: i64 = 1
2014const SCM_SOL_SOCKET: i64 = 1
2015const SCM_RIGHTS_TYPE: i64 = 1
2016const SCM_MSG_CMSG_CLOEXEC: i64 = 1073741824
2017const SCM_MSGHDR_BYTES: i64 = 56
2018const SCM_MSGHDR_OFF_IOV: i64 = 16
2019const SCM_MSGHDR_OFF_IOVLEN: i64 = 24
2020const SCM_MSGHDR_OFF_CTRL: i64 = 32
2021const SCM_MSGHDR_OFF_CTRLLEN: i64 = 40
2022const SCM_IOVEC_BYTES: i64 = 16
2023const SCM_IOVEC_OFF_BASE: i64 = 0
2024const SCM_IOVEC_OFF_LEN: i64 = 8
2025const SCM_CMSG_OFF_LEN: i64 = 0
2026const SCM_CMSG_OFF_LEVEL: i64 = 8
2027const SCM_CMSG_OFF_TYPE: i64 = 12
2028const SCM_CMSG_OFF_DATA: i64 = 16
2029const SCM_CMSG_LEN_1FD: i64 = 20
2030const SCM_CMSG_SPACE_1FD: i64 = 24
2031const SCM_IOV_COUNT_ONE: i64 = 1
2032const SCM_U32_BYTES: i64 = 4
2033const SCM_BYTE_RADIX: i64 = 256
2034const SCM_FDPAIR_BYTES: i64 = 8
2037const SCM_PAYLOAD_BYTES: i64 = 1
2038const SCM_PAYLOAD_BYTE: i64 = 70
2042const SCM_ERR_NO_CMSG: i64 = 0 - 901
2043const SCM_ERR_CMSG_LEN: i64 = 0 - 902
2044const SCM_ERR_CMSG_LEVEL: i64 = 0 - 903
2045const SCM_ERR_CMSG_TYPE: i64 = 0 - 904
2117const SCM_SUN_PATH_OFF: i64 = 2 // sockaddr_un = [sa_family: u16][sun_path: 108]
2118const SCM_SUN_BYTES: i64 = 110
2119const SCM_SUN_PATH_MAX: i64 = 107
2244const NX_FILE_PERMISSION_MASK:i64=511
2245const NX_FILE_DESCRIPTOR_INVALID:i64=0-22
2251const NX_STAT_X64_BYTES:i64=144
2252const NX_STAT_X64_MODE_OFFSET:i64=24
2253const NX_STAT_X64_BLOCK_OFFSET:i64=56
2254const NX_STAT_X64_SIZE_OFFSET:i64=48
2255const NX_STAT_X64_DEVICE_OFFSET:i64=0
2256const NX_STAT_X64_INODE_OFFSET:i64=8
2257const NX_STAT_TYPE_MASK:i64=61440
2258const NX_STAT_REGULAR_FILE:i64=32768
2272const SIR_SLOTS: i64 = 8
2277const SIR_MAXNODE: i64 = 16384
2278const SIR_POOLCAP: i64 = 65536
2280const SIR_KIND: i64 = 0
2281const SIR_TY: i64 = 1
2282const SIR_A: i64 = 2
2283const SIR_B: i64 = 3
2284const SIR_C: i64 = 4
2285const SIR_NAME: i64 = 5
2286const SIR_D: i64 = 6
2287const SIR_NEXT: i64 = 7
2290const M_NODES: i64 = 0
2291const M_NCOUNT: i64 = 1
2292const M_POOL: i64 = 2
2293const M_POOLUSED: i64 = 3
2294const M_DECLH: i64 = 4
2295const M_DECLT: i64 = 5
2296const M_FUNCH: i64 = 6
2297const M_FUNCT: i64 = 7
2298const M_REFUSE: i64 = 8
2299const M_OVER: i64 = 9
2304const M_CURFN: i64 = 10
2311const M_FRAGOUT: i64 = 11
2316const M_VIOMODE: i64 = 12
2321const M_USESII: i64 = 13
2328const M_WGFRAGOUT: i64 = 14
2334const M_BINDGROUP: i64 = 15
2337const M_CLIP_DEPTH: i64 = 16
2338const SIR_MODULE_WORDS: i64 = 17
2339const SIR_CLIP_NATIVE: i64 = 0
2340const SIR_CLIP_NEGATIVE_ONE_TO_ONE: i64 = 1
2342const SIR_LIT_USUFFIX: i64 = 1
2345const K_UNIFORM: i64 = 1
2346const K_ATTRIB: i64 = 2
2347const K_VARY: i64 = 3
2348const K_FUNC: i64 = 4
2349const K_PARAM: i64 = 5
2357const K_STORAGE: i64 = 6
2364const K_TEXTURE: i64 = 7
2375const K_FRAGOUT: i64 = 8
2383const K_STRUCT: i64 = 9
2384const S_RETURN: i64 = 10
2385const S_ASSIGN: i64 = 11
2386const S_VAR: i64 = 12
2387const S_IF: i64 = 13
2388const S_DISCARD: i64 = 14
2396const S_LOOP: i64 = 15
2397const S_BREAK: i64 = 16
2401const S_EXPR: i64 = 17
2402const E_LIT: i64 = 20
2403const E_IDENT: i64 = 21
2404const E_BIN: i64 = 22
2405const E_CALL: i64 = 23
2406const E_SWZ: i64 = 24
2407const E_INDEX: i64 = 25
2408const E_TEXLOAD: i64 = 26
2409const E_TEXSAMPLE: i64 = 27
2410const E_CTOR: i64 = 28
2414const E_CAST: i64 = 29
2415const E_BUILTIN: i64 = 30
2420const E_ATOMIC: i64 = 31
2426const E_SELECT: i64 = 32
2430const E_NEG: i64 = 33
2436const K_PRIVATE: i64 = 34
2442const E_NOT: i64 = 35
2445const T_VOID: i64 = 0
2446const T_F32: i64 = 1
2447const T_I32: i64 = 2
2448const T_U32: i64 = 3
2449const T_BOOL: i64 = 4
2450const T_V2F: i64 = 5
2451const T_V3F: i64 = 6
2452const T_V4F: i64 = 7
2453const T_V3I: i64 = 8
2454const T_TEX3U: i64 = 9
2455const T_TEX2F: i64 = 10
2457const T_V3U: i64 = 11
2460const T_V2I: i64 = 12
2464const T_M3F: i64 = 13
2465const T_MAX: i64 = 13
2616const P_PLAIN: i64 = 0
2617const P_BUILTIN_POSITION: i64 = 1
2618const P_BUILTIN_FRONT_FACING: i64 = 2
2707const SIR_VAR_CONST: i64 = 2
2746const SIR_VAR_LET: i64 = 1
3072const CB_BASE: *u8 = "180.0" // the incumbent sheet's height in blocks, now the slab base
3073const CB_TOP: *u8 = "300.0"
3074const CB_RLO: *u8 = "24.0" // density ramps in over this many blocks above the base
3075const CB_RHI: *u8 = "48.0" // and out over this many below the top
3076const CB_CELL: *u8 = "180.0" // one noise cell in blocks, horizontal
3077const CB_CELLY: *u8 = "120.0" // and vertical (flatter cells read as stratus)
3078const CB_DRIFT_X: *u8 = "240.0" // the incumbent sheet's drift divisors, kept so the motion does not change
3079const CB_DRIFT_Z: *u8 = "540.0"
3080const CB_THR0: *u8 = "0.78" // coverage threshold at cld=0
3081const CB_THRK: *u8 = "0.30" // and how far cld=1 lowers it
3082const CB_GAIN: *u8 = "1.4"
3083const CB_STEPS: *u8 = "48"
3084const CB_STEPS_F: *u8 = "48.0"
3085const CB_SIGMA: *u8 = "0.04" // extinction per block of unit density
3086const CB_LIT0: *u8 = "0.70" // ambient at the base
3087const CB_LIT1: *u8 = "0.30" // brighter toward the top
3088const CB_SUNK: *u8 = "0.15" // silver toward the sun
3092const CB_EROSION: *u8 = "0.22"
3093const CB_SUN_Y_MIN: *u8 = "0.01"
3094const CB_LIGHT_DISTANCE: *u8 = "480.0"
3095const CB_LIGHT_STEPS: *u8 = "6"
3096const CB_LIGHT_STEPS_F: *u8 = "6.0"
3097const CB_VIEW_DISTANCE: *u8 = "1400.0"
3098const CB_PHASE_G: *u8 = "0.35"
3099const CB_AMBIENT: *u8 = "0.85"
3100const CB_DIRECT: *u8 = "0.72"
3452const SD_GRAIN_PER_BLOCK: *u8 = "32.0" // facets per block edge: 3 cm at a 1 m block, coarse beach sand
3453const SD_GRAIN_SLOPE: *u8 = "1.2" // facet steepness as a normal slope
3454const SD_RIPPLE_PER_BLOCK: *u8 = "9.0" // wind ripples per block: an 11 cm wavelength at a 1 m block
3455const SD_RIPPLE_SLOPE: *u8 = "0.45" // crest slope
3456const SD_RIPPLE_DX: *u8 = "0.8" // ripple normal heading (unit): the wind heading, a data hook
3457const SD_RIPPLE_DZ: *u8 = "0.6"
3458const SD_PATCH: *u8 = "0.25" // ripple phase jitter per 4-block patch so the field is not one sine
3459const SD_TAU: *u8 = "6.2831853"
3460const SD_QUARTER_TURN: *u8 = "1.5707963"
3461const SD_EIGHTH_TURN: *u8 = "0.7853982"
3462const SD_RING_DIRS: *u8 = "8"
3463const SD_RING_STEPS: *u8 = "24" // SD_RING_DIRS x SD_WET_R
3464const SD_WET_R: *u8 = "3.0" // wet band reach in cells
3465const SD_WET_DRY: *u8 = "4.0" // SD_WET_R + 1: no water within reach
3466const SD_WET_DARK: *u8 = "0.55" // wet albedo multiplier
3467const SD_FILM_POW: *u8 = "48.0"
3468const SD_FILM_GAIN: *u8 = "0.55"
3469const SD_SHEEN_GAIN: *u8 = "0.10"
3470const SD_GLINT_POW: *u8 = "96.0"
3471const SD_GLINT_GAIN: *u8 = "0.35"
3472const SD_GLINT_FRAC: *u8 = "0.9" // facets whose hash exceeds this are quartz glints
3473const SD_NDV_FLOOR: *u8 = "0.15" // the footprint stretch floor at grazing angles
3474const SD_SHADOW_SPEC: *u8 = "0.2" // in a block shadow the film keeps its sky sheen and loses the sun
3475const SD_TWO: *u8 = "2.0"
3476const SD_HALF: *u8 = "0.5"

functions

382func sys_ioctl(fd: i64, request: i64, arg: i64) -> i64
393func sys_poll(fds: *u8, nfds: i64, timeout_ms: i64) -> i64
399func sys_write(fd: i64, buf: *u8, count: i64) -> i64
403func sys_read(fd: i64, buf: *u8, count: i64) -> i64
called by 1: sys_read_file
407func sys_close(fd: i64) -> i64
417func sys_chdir(path: *u8) -> i64
calls 1: sys_mmap
442func sys_getcwd(buf: *u8, cap: i64) -> i64
calls 1: sys_mmap
461func sys_unlinkat(path: *u8) -> i64
468func sys_fchmodat(path: *u8, mode: i64) -> i64
calls 1: sys_mmap
484func sys_exit_group(code: i64) -> i64
501func sys_setpriority(prio: i64) -> i64
509func sys_setpriority_of(pid: i64, prio: i64) -> i64
651func sys_munmap_direct(addr:*u8,len:i64)->i64
656func sys_munmap(addr: *u8, len: i64) -> i64
663func sys_lseek(fd: i64, offset: i64, whence: i64) -> i64
711func sys_statfs(path: *u8, buf: *i64) -> i64
716func sys_fs_avail_bytes(path: *u8) -> i64
725func sys_fs_used_permil(path: *u8) -> i64
734func sys_exit(code: i64) -> i64
called by 1: nxa_die
768func nxa_dump_printable(src: i64, n: i64) -> i64
called by 1: nxa_report_overrun calls 1: sys_write
789func nxa_dump_sizes() -> i64
called by 1: nxa_report_overrun calls 1: sys_write
814func nxa_report_overrun(sz: i64, gs: i64) -> i64
844func nxa_die(msg: *u8) -> i64
called by 1: sys_mmap calls 2: sys_writesys_exit
854func nxa_lock_addr() -> *i64
862func nxa_lock_take() -> i64
called by 1: sys_mmap calls 2: nxa_lock_addrsys_write
891func nxa_lock_give() -> i64
called by 1: sys_mmap calls 1: nxa_lock_addr
905func sys_mmap_try(size:i64)->*u8
912func sys_mmap(size: i64) -> *u8
994func sys_arena_mark() -> i64
calls 1: sys_mmap
1008func sys_arena_reset() -> i64
1032func sys_mmap_shared(size: i64) -> *u8
1046func sys_madvise(addr: *u8, len: i64, advice: i64) -> i64
1057func sys_openat_rd(path: *u8) -> i64
1064func sys_openat_rdwr(path: *u8, mode: i64) -> i64
1103func sys_openat_wr(path: *u8, mode: i64) -> i64
1110func sys_openat_exclusive(path: *u8, mode: i64) -> i64
1116func sys_openat_directory(path: *u8) -> i64
1123func sys_openat_append(path: *u8, mode: i64) -> i64
1133func sys_openat_lock(path: *u8) -> i64
1141func sys_symlinkat(target: *u8, linkpath: *u8) -> i64
1153func sys_readlinkat(path: *u8, buf: *u8, cap: i64) -> i64
1170func sys_renameat(oldpath: *u8, newpath: *u8) -> i64
1183func sys_fsync(fd: i64) -> i64
1201func sys_flock(fd: i64, op: i64) -> i64
1209func sys_fstatat(path: *u8, statbuf: *u8) -> i64
1216func sys_utimensat(path: *u8, times: *i64) -> i64
1235func nx_kill(pid: i64, sig: i64) -> i64 { return __syscall(129, pid, sig, 0, 0, 0, 0) }
1250func sys_setpgid(pid: i64, pgid: i64) -> i64 { return __syscall(SYS_SETPGID, pid, pgid, 0, 0, 0, 0) }
1264func nx_prlimit(pid: i64, resource: i64, new_limit: *u8, old_limit: *u8) -> i64
1276func sys_mkdir(path: *u8, mode: i64) -> i64 { return __syscall(34, AT_FDCWD, path, mode, 0, 0, 0) }
1279func nx_chmod(path: *u8, mode: i64) -> i64 { return __syscall(53, AT_FDCWD, path, mode, 0, 0, 0) }
1283func nx_setsid() -> i64 { return __syscall(112, 0, 0, 0, 0, 0, 0) }
1287func sys_clock_gettime_mono(ts: *i64) -> i64
1295func sys_clock_gettime_real(ts: *i64) -> i64
1300func sys_now_realtime_sec() -> i64
1307func sys_now_realtime_ms() -> i64
1319func sys_now_realtime_us() -> i64
1328func sys_now_ms() -> i64
1339func sys_now_us() -> i64
1350func sys_clock_now_us() -> i64
calls 1: sys_now_us
1400func sys_unshare(flags: i64) -> i64
1403func sys_mount(source: *u8, target: *u8, fs_type: *u8, mountflags: i64, data: *u8) -> i64
1406func sys_chroot(path: *u8) -> i64
1409func sys_getuid() -> i64
1412func sys_getgid() -> i64
1416func sys_fork() -> i64
1440func sys_prctl(option: i64, arg: i64) -> i64
1443func sys_bind_parent_lifetime(expected_parent: i64, signal: i64) -> i64
calls 1: sys_prctl
1459func sys_waitid(idtype: i64, id: i64, info: *u8, options: i64) -> i64
1468func sys_close_inherited_proc(first: i64) -> i64
1509func sys_close_inherited(first: i64) -> i64
1515func sys_execve_clean(path: *u8, argv: *i64, envp: *i64) -> i64
1521func sys_execve(path: *u8, argv: *i64, envp: *i64) -> i64
called by 1: sys_execve_clean
1530func sys_wait4(pid: i64, status: *i64, options: i64) -> i64
1536func wait_exit_code(status: i64) -> i64
called by 1: wait_status_rc
1544func wait_term_signal(status: i64) -> i64
called by 1: wait_status_rc
1569func wait_status_rc(status: i64) -> i64
1592func sys_default_signal(sig: i64) -> i64
calls 1: sys_mmap
1601func sys_ignore_sigpipe() -> i64
calls 1: sys_mmap
1616func sys_pipe2(fds: *i64, flags: i64) -> i64
1622func sys_dup3(oldfd: i64, newfd: i64, flags: i64) -> i64
1656func sys_getdents64(fd: i64, buf: *u8, buf_len: i64) -> i64
1662func dirent_reclen(rec: *u8) -> i64
1669func dirent_type(rec: *u8) -> i64
1674func dirent_name(rec: *u8) -> *u8
1681func sys_read_file(path: *u8, out_len: *i64) -> *u8
1763func sys_free_file(buf: *u8, len: i64) -> i64
calls 1: sys_munmap
1774func sys_map_file(path: *u8, out_len: *i64) -> *u8
1792func sys_sleep_ms(ms: i64) -> i64
1876func sys_setsockopt(fd: i64, level: i64, optname: i64,
1886func sys_set_socket_timeout(fd: i64, secs: i64) -> i64
1900func sys_alarm(secs: i64) -> i64 { return __syscall(SYS_ALARM, secs, 0, 0, 0, 0, 0) }
1906func sys_socket(domain: i64, sock_type: i64, protocol: i64) -> i64
1918func sockaddr_in_init(addr: *u8, port: i64) -> i64
1941func sys_bind(fd: i64, addr: *u8, addr_len: i64) -> i64
called by 1: sys_unix_listen
1944func sys_listen(fd: i64, backlog: i64) -> i64
called by 1: sys_unix_listen
1951func sys_accept(fd: i64) -> i64
1954func sys_accept_with_addr(fd: i64, addr: *u8, addr_len: *i64) -> i64
1958func sys_shutdown(fd: i64, how: i64) -> i64
1961func sys_connect(fd: i64, addr: *u8, addr_len: i64) -> i64
called by 1: sys_unix_connect_fd
1964func sys_sendto(fd: i64, buf: *u8, n: i64, flags: i64,
1968func sys_recvfrom(fd: i64, buf: *u8, n: i64, flags: i64,
2047func scm_zero(base: *u8, n: i64) -> i64 { var i: i64 = 0; while i < n { base[i] = 0; i = i + 1 } return 0 }
2048func scm_put_i64(base: *u8, off: i64, v: i64) -> i64
2053func scm_get_i64(base: *u8, off: i64) -> i64
called by 1: sys_recv_fd
2060func scm_put_u32(base: *u8, off: i64, v: i64) -> i64
called by 1: sys_send_fd
2070func scm_get_u32(base: *u8, off: i64) -> i64
called by 1: sys_recv_fd
2082func sys_sendmsg(fd: i64, msg: *u8, flags: i64) -> i64
called by 1: sys_send_fd
2085func sys_recvmsg(fd: i64, msg: *u8, flags: i64) -> i64
called by 1: sys_recv_fd
2109func sys_socketpair(domain: i64, sock_type: i64, protocol: i64, sv: *u8) -> i64
2120func sys_unix_listen(path: *u8, backlog: i64) -> i64
2148func sys_unix_connect_fd(path: *u8) -> i64
2172func sys_send_fd(sock: i64, fd: i64) -> i64
2206func sys_recv_fd(sock: i64, flags: i64) -> i64
2246func sys_fchmod_fd(fd:i64,mode:i64)->i64
2259func sys_fstat_fd(fd:i64,stat:*u8)->i64
2263func sys_stat_permissions(stat:*u8)->i64
2467func sir_slen(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } return n }
called by 2: sir_streb_put
2469func sir_new() -> *i64
calls 1: sys_mmap
2486func sir_get(m: *i64, id: i64, k: i64) -> i64
2491func sir_set(m: *i64, id: i64, k: i64, v: i64) -> i64
2499func sir_str(m: *i64, s: *u8) -> i64
2513func sir_cstr(m: *i64, off: i64) -> *u8
2517func sir_node(m: *i64, kind: i64, ty: i64, a: i64, b: i64, c: i64, nameoff: i64) -> i64
2533func sir_chain(m: *i64, hw: i64, tw: i64, id: i64) -> i64
2543func sir_uniform(m: *i64, name: *u8, ty: i64, arraylen: i64) -> i64
2549func sir_private(m: *i64, name: *u8, ty: i64, arraylen: i64) -> i64
2554func sir_attrib(m: *i64, name: *u8, ty: i64, location: i64) -> i64
2559func sir_vary(m: *i64, name: *u8, ty: i64, location: i64, flat: i64) -> i64
2566func sir_storage(m: *i64, name: *u8, elemty: i64, binding: i64, readwrite: i64, atomic: i64) -> i64
2572func sir_texture(m: *i64, name: *u8, ty: i64) -> i64
2579func sir_fragout(m: *i64, name: *u8, ty: i64, location: i64) -> i64
called by 1: ws_fn_fs calls 3: sir_nodesir_strsir_chain
2589func sir_struct(m: *i64, name: *u8) -> i64
2593func sir_member(m: *i64, st: i64, name: *u8, ty: i64) -> i64 { return sir_param(m, st, name, ty) }
called by 1: ws_struct_hit calls 1: sir_param
2594func sir_struct_ty(st: i64) -> i64 { return SIR_MAXNODE + st }
2596func sir_struct_of(m: *i64, ty: i64) -> i64
calls 1: sir_get
2603func sir_member_of(m: *i64, base: i64, name: *u8, ty: i64) -> i64 { return sir_swz(m, base, name, ty) }
called by 1: ws_mem calls 1: sir_swz
2606func sir_func(m: *i64, name: *u8, rettype: i64) -> i64
2621func sir_param_front_facing(m:*i64,fn:i64,name:*u8)->i64
2627func sir_param(m: *i64, fn: i64, name: *u8, ty: i64) -> i64
2636func sir_param_position(m: *i64, fn: i64, name: *u8) -> i64
called by 1: ws_fn_fs calls 2: sir_paramsir_set
2643func sir_stmt(m: *i64, fn: i64, st: i64) -> i64
called by 2: sir_for_untilws_st calls 2: sir_getsir_set
2652func sir_return(m: *i64, e: i64) -> i64 { return sir_node(m, S_RETURN, T_VOID, e, 0, 0, 0) }
called by 1: ws_ret calls 1: sir_node
2655func sir_return_depth(m: *i64, color: i64, depth: i64) -> i64
calls 1: sir_node
2659func sir_assign(m: *i64, lhs: i64, rhs: i64) -> i64 { return sir_node(m, S_ASSIGN, T_VOID, lhs, rhs, 0, 0) }
called by 3: ws_setws_opws_opx calls 1: sir_node
2660func sir_var(m: *i64, name: *u8, ty: i64, init: i64) -> i64 { return sir_node(m, S_VAR, ty, init, 0, 0, sir_str(m, name)) }
2661func sir_if(m: *i64, cond: i64, thenh: i64, elseh: i64) -> i64 { return sir_node(m, S_IF, T_VOID, cond, thenh, elseh, 0) }
called by 2: sir_for_untilws_if calls 1: sir_node
2662func sir_discard(m: *i64) -> i64 { return sir_node(m, S_DISCARD, T_VOID, 0, 0, 0, 0) }
calls 1: sir_node
2666func sir_loop(m: *i64, body: i64) -> i64 { return sir_node(m, S_LOOP, T_VOID, body, 0, 0, 0) }
2667func sir_break(m: *i64) -> i64 { return sir_node(m, S_BREAK, T_VOID, 0, 0, 0, 0) }
2669func sir_expr(m: *i64, e: i64) -> i64 { return sir_node(m, S_EXPR, T_VOID, e, 0, 0, 0) }
called by 1: ws_fn_fs calls 1: sir_node
2678func sir_for_until(m: *i64, fn: i64, init: i64, until: i64, step: i64, body: i64) -> i64
2687func sir_seq(m: *i64, a: i64, b: i64) -> i64
2696func sir_lit(m: *i64, text: *u8, ty: i64) -> i64 { return sir_node(m, E_LIT, ty, 0, 0, 0, sir_str(m, text)) }
2700func sir_lit_u(m: *i64, text: *u8) -> i64
calls 2: sir_litsir_set
2708func sir_const(m: *i64, name: *u8, ty: i64, init: i64) -> i64
calls 2: sir_varsir_set
2713func sir_ident(m: *i64, name: *u8, ty: i64) -> i64 { return sir_node(m, E_IDENT, ty, 0, 0, 0, sir_str(m, name)) }
2714func sir_bin(m: *i64, op: *u8, l: i64, r: i64, ty: i64) -> i64 { return sir_node(m, E_BIN, ty, l, r, 0, sir_str(m, op)) }
2715func sir_swz(m: *i64, base: i64, sel: *u8, ty: i64) -> i64 { return sir_node(m, E_SWZ, ty, base, 0, 0, sir_str(m, sel)) }
2716func sir_index(m: *i64, base: i64, idx: i64, ty: i64) -> i64 { return sir_node(m, E_INDEX, ty, base, idx, 0, 0) }
called by 2: ws_palws_fn_pal9 calls 1: sir_node
2720func sir_texload(m: *i64, tex: i64, coord: i64, lod: i64) -> i64
called by 2: ws_fn_vxws_fn_hq calls 2: sir_getsir_node
2725func sir_texsample(m: *i64, tex: i64, coord: i64) -> i64 { return sir_node(m, E_TEXSAMPLE, T_V4F, tex, coord, 0, 0) }
calls 1: sir_node
2728func sir_call(m: *i64, name: *u8, ty: i64) -> i64 { return sir_node(m, E_CALL, ty, 0, 0, 0, sir_str(m, name)) }
2729func sir_ctor(m: *i64, ty: i64) -> i64 { return sir_node(m, E_CTOR, ty, 0, 0, 0, 0) }
called by 4: ws_v1ws_vt2ws_vt3ws_v4 calls 1: sir_node
2730func sir_cast(m: *i64, e: i64, ty: i64) -> i64 { return sir_node(m, E_CAST, ty, e, 0, 0, 0) }
2731func sir_builtin(m: *i64, which: *u8, ty: i64) -> i64
calls 2: sir_nodesir_str
2737func sir_atomic(m: *i64, op: *u8, target: i64, val: i64, ty: i64) -> i64 { return sir_node(m, E_ATOMIC, ty, target, val, 0, sir_str(m, op)) }
calls 2: sir_nodesir_str
2739func sir_select(m: *i64, cond: i64, tval: i64, fval: i64, ty: i64) -> i64 { return sir_node(m, E_SELECT, ty, cond, tval, fval, 0) }
called by 2: ws_fn_upkws_dda_step calls 1: sir_node
2741func sir_neg(m: *i64, e: i64, ty: i64) -> i64 { return sir_node(m, E_NEG, ty, e, 0, 0, 0) }
called by 2: ws_fn_shadews_fn_fs calls 1: sir_node
2743func sir_not(m: *i64, e: i64) -> i64 { return sir_node(m, E_NOT, T_BOOL, e, 0, 0, 0) }
called by 1: ws_fn_shade calls 1: sir_node
2747func sir_let(m: *i64, name: *u8, ty: i64, init: i64) -> i64
2753func sir_arg(m: *i64, callid: i64, e: i64) -> i64
2770func sir_refuse(m: *i64, what: *u8) -> i64
calls 1: sir_str
2774func sir_refused(m: *i64) -> i64 { return m[M_REFUSE] }
2777func eb_put(out: *u8, pos: i64, cap: i64, s: *u8) -> i64
called by 1: eb_num calls 1: sir_slen
2785func eb_num(out: *u8, pos: i64, cap: i64, v: i64) -> i64
calls 2: eb_putsys_mmap
2802func tr_add(trace: *i64, tcap: i64, tn: *i64, id: i64) -> i64
2843func ws_f(m: *i64, s: *u8) -> i64 { return sir_lit(m, s, T_F32) }
2844func ws_i(m: *i64, s: *u8) -> i64 { return sir_lit(m, s, T_I32) }
2846func ws_u(m: *i64, s: *u8) -> i64 { return sir_cast(m, sir_lit(m, s, T_I32), T_U32) }
2847func ws_id(m: *i64, n: *u8, ty: i64) -> i64 { return sir_ident(m, n, ty) }
2848func ws_bin(m: *i64, op: *u8, a: i64, b: i64, ty: i64) -> i64 { return sir_bin(m, op, a, b, ty) }
2849func ws_cmp(m: *i64, op: *u8, a: i64, b: i64) -> i64 { return sir_bin(m, op, a, b, T_BOOL) }
2850func ws_and(m: *i64, a: i64, b: i64) -> i64 { return sir_bin(m, "&&" as *u8, a, b, T_BOOL) }
2851func ws_or(m: *i64, a: i64, b: i64) -> i64 { return sir_bin(m, "||" as *u8, a, b, T_BOOL) }
2852func ws_sw(m: *i64, a: i64, sel: *u8, ty: i64) -> i64 { return sir_swz(m, a, sel, ty) }
called by 3: ws_fn_vxws_fn_pal9ws_fn_hq calls 1: sir_swz
2854func ws_sx(m: *i64, n: *u8, nty: i64, sel: *u8, ty: i64) -> i64 { return sir_swz(m, sir_ident(m, n, nty), sel, ty) }
2855func ws_mem(m: *i64, a: i64, name: *u8, ty: i64) -> i64 { return sir_member_of(m, a, name, ty) }
2856func ws_c1(m: *i64, name: *u8, a: i64, ty: i64) -> i64 { let c: i64 = sir_call(m, name, ty); sir_arg(m, c, a); return c }
2857func ws_c2(m: *i64, name: *u8, a: i64, b: i64, ty: i64) -> i64 { let c: i64 = sir_call(m, name, ty); sir_arg(m, c, a); sir_arg(m, c, b); return c }
2858func ws_c3(m: *i64, name: *u8, a: i64, b: i64, c3: i64, ty: i64) -> i64 { let c: i64 = sir_call(m, name, ty); sir_arg(m, c, a); sir_arg(m, c, b); sir_arg(m, c, c3); return c }
2859func ws_c4(m: *i64, name: *u8, a: i64, b: i64, c3: i64, d: i64, ty: i64) -> i64 { let c: i64 = sir_call(m, name, ty); sir_arg(m, c, a); sir_arg(m, c, b); sir_arg(m, c, c3); sir_arg(m, c, d); return c }
2860func ws_c5(m: *i64, name: *u8, a: i64, b: i64, c3: i64, d: i64, e: i64, ty: i64) -> i64 { let c: i64 = sir_call(m, name, ty); sir_arg(m, c, a); sir_arg(m, c, b); sir_arg(m, c, c3); sir_arg(m, c, d); sir_arg(m, c, e); return c }
2861func ws_c6(m: *i64, name: *u8, a: i64, b: i64, c3: i64, d: i64, e: i64, g: i64, ty: i64) -> i64 { let c: i64 = sir_call(m, name, ty); sir_arg(m, c, a); sir_arg(m, c, b); sir_arg(m, c, c3); sir_arg(m, c, d); sir_arg(m, c, e); sir_arg(m, c, g); return c }
called by 1: ws_fn_fs calls 2: sir_callsir_arg
2862func ws_v1(m: *i64, ty: i64, a: i64) -> i64 { let c: i64 = sir_ctor(m, ty); sir_arg(m, c, a); return c }
2863func ws_vt2(m: *i64, ty: i64, a: i64, b: i64) -> i64 { let c: i64 = sir_ctor(m, ty); sir_arg(m, c, a); sir_arg(m, c, b); return c }
2864func ws_vt3(m: *i64, ty: i64, a: i64, b: i64, c3: i64) -> i64 { let c: i64 = sir_ctor(m, ty); sir_arg(m, c, a); sir_arg(m, c, b); sir_arg(m, c, c3); return c }
2865func ws_v2(m: *i64, a: i64, b: i64) -> i64 { return ws_vt2(m, T_V2F, a, b) }
2866func ws_v3(m: *i64, a: i64, b: i64, c3: i64) -> i64 { return ws_vt3(m, T_V3F, a, b, c3) }
2867func ws_v3i(m: *i64, a: i64, b: i64, c3: i64) -> i64 { return ws_vt3(m, T_V3I, a, b, c3) }
called by 1: ws_fn_vx calls 1: ws_vt3
2868func ws_v4(m: *i64, a: i64, b: i64, c3: i64, d: i64) -> i64 { let c: i64 = sir_ctor(m, T_V4F); sir_arg(m, c, a); sir_arg(m, c, b); sir_arg(m, c, c3); sir_arg(m, c, d); return c }
called by 1: ws_fn_upk calls 2: sir_ctorsir_arg
2870func ws_v2f(m: *i64, a: *u8, b: *u8) -> i64 { return ws_v2(m, ws_f(m, a), ws_f(m, b)) }
2871func ws_v3f(m: *i64, a: *u8, b: *u8, c3: *u8) -> i64 { return ws_v3(m, ws_f(m, a), ws_f(m, b), ws_f(m, c3)) }
2872func ws_q2(m: *i64, a: i64, b: i64) -> i64 { return sir_seq(m, a, b) }
2873func ws_q3(m: *i64, a: i64, b: i64, c: i64) -> i64 { return sir_seq(m, sir_seq(m, a, b), c) }
2874func ws_q4(m: *i64, a: i64, b: i64, c: i64, d: i64) -> i64 { return sir_seq(m, ws_q3(m, a, b, c), d) }
2875func ws_q5(m: *i64, a: i64, b: i64, c: i64, d: i64, e: i64) -> i64 { return sir_seq(m, ws_q4(m, a, b, c, d), e) }
2876func ws_set(m: *i64, lhs: i64, rhs: i64) -> i64 { return sir_assign(m, lhs, rhs) }
2878func ws_op(m: *i64, name: *u8, ty: i64, op: *u8, rhs: i64) -> i64 { return sir_assign(m, sir_ident(m, name, ty), sir_bin(m, op, sir_ident(m, name, ty), rhs, ty)) }
2880func ws_opx(m: *i64, name: *u8, nty: i64, sel: *u8, ty: i64, op: *u8, rhs: i64) -> i64 { return sir_assign(m, ws_sx(m, name, nty, sel, ty), sir_bin(m, op, ws_sx(m, name, nty, sel, ty), rhs, ty)) }
2881func ws_if(m: *i64, c: i64, t: i64, e: i64) -> i64 { return sir_if(m, c, t, e) }
2882func ws_ret(m: *i64, e: i64) -> i64 { return sir_return(m, e) }
2883func ws_st(m: *i64, f: i64, s: i64) -> i64 { return sir_stmt(m, f, s) }
2887func ws_world_uniforms(m: *i64) -> i64
calls 1: sir_uniform
2917func ws_ru(m: *i64, n: *u8, ty: i64) -> i64 { return sir_uniform(m, n, ty, 0) }
called by 1: ws_world_uniforms_raw calls 1: sir_uniform
2918func ws_world_uniforms_raw(m: *i64) -> i64
calls 1: ws_ru
2934func ws_world_privates(m: *i64) -> i64
calls 1: sir_private
2944func ws_fi(m: *i64, n: *u8) -> i64 { return sir_cast(m, sir_ident(m, n, T_I32), T_F32) }
2946func ws_fn_rgb9(m: *i64) -> i64
2956func ws_pal(m: *i64, f: i64, arr: *u8, k: *u8, rn: *u8) -> i64
2964func ws_fn_upk(m: *i64) -> i64
3002func ws_fn_vx(m: *i64) -> i64
3020func ws_fn_h21(m: *i64) -> i64
3029func ws_fn_h31(m: *i64) -> i64
3038func ws_fn_pal9(m: *i64) -> i64
3052func ws_noise2(m: *i64, iname: *u8, fname: *u8) -> i64
3101func ws_h31o(m: *i64, a: *u8, b: *u8, c: *u8) -> i64
called by 1: ws_fn_vn3 calls 4: ws_c1ws_binws_idws_v3f
3104func ws_fx(m: *i64, sel: *u8) -> i64 { return ws_sx(m, "f" as *u8, T_V3F, sel, T_F32) }
called by 1: ws_fn_vn3 calls 1: ws_sx
3105func ws_py(m: *i64) -> i64 { return ws_sx(m, "p" as *u8, T_V3F, "y" as *u8, T_F32) }
calls 1: ws_sx
3107func ws_fn_vn3(m: *i64) -> i64
3127func ws_fn_cvol(m: *i64) -> i64
3143func ws_fn_csun(m: *i64) -> i64
3156func ws_fn_cld3(m: *i64) -> i64
3188func ws_fn_sky(m: *i64) -> i64
3208func ws_struct_hit(m: *i64) -> i64
3218func ws_dda_step(m: *i64, ax: *u8, fneg: *u8, fpos: *u8) -> i64
3229func ws_fn_hq(m: *i64) -> i64
3245func ws_fn_surf(m: *i64) -> i64
3267func ws_fn_terrain(m: *i64) -> i64
3279func ws_fn_smarch(m: *i64) -> i64
3316func ws_fn_gnd(m: *i64) -> i64
3340func ws_fn_march(m: *i64, hty: i64) -> i64
3397func ws_face(m: *i64, sw: *u8, ax: *u8, op: *u8, nx: *u8, ny: *u8, nz: *u8) -> i64
3404func ws_li(m: *i64, k: *u8) -> i64 { return ws_op(m, "li" as *u8, T_F32, "*" as *u8, ws_f(m, k)) }
called by 2: ws_shdws_fn_shade calls 2: ws_opws_f
3406func ws_fce(m: *i64, k: *u8) -> i64 { return ws_cmp(m, "==" as *u8, ws_id(m, "fce" as *u8, T_I32), ws_i(m, k)) }
3408func ws_beq(m: *i64, k: *u8) -> i64 { return ws_cmp(m, "==" as *u8, ws_id(m, "b" as *u8, T_U32), ws_u(m, k)) }
3410func ws_ao(m: *i64, fa: *u8, cmp: *u8, edge: *u8, nudge: i64, gain: i64) -> i64
3417func ws_nb(m: *i64, ax: *u8, op: *u8) -> i64 { return ws_opx(m, "nb" as *u8, T_V3I, ax, T_I32, op, ws_i(m, "1" as *u8)) }
called by 1: ws_fn_shade calls 2: ws_opxws_i
3419func ws_topbot(m: *i64) -> i64 { return ws_or(m, ws_fce(m, "3" as *u8), ws_fce(m, "4" as *u8)) }
3424func ws_smooth(m: *i64) -> i64
3429func ws_cont_water(m: *i64) -> i64
3432func ws_cont_surface(m: *i64) -> i64 { return ws_or(m, ws_smooth(m), ws_cont_water(m)) }
3434func ws_step_down(m: *i64) -> i64
3478func ws_sd_pxz(m: *i64) -> i64 { return ws_sx(m, "hp" as *u8, T_V3F, "xz" as *u8, T_V2F) }
called by 2: ws_sd_surfws_fn_sand calls 1: ws_sx
3479func ws_sd_f(m: *i64, n: *u8) -> i64 { return ws_id(m, n, T_F32) }
3480func ws_sd_v3(m: *i64, n: *u8) -> i64 { return ws_id(m, n, T_V3F) }
called by 1: ws_fn_sand calls 1: ws_id
3482func ws_sd_surf(m: *i64, op: *u8, dx: *u8, dz: *u8) -> i64 { return ws_c1(m, "surf" as *u8, ws_bin(m, op, ws_sd_pxz(m), ws_v2f(m, dx, dz), T_V2F), T_F32) }
3484func ws_sd_g(m: *i64, dx: *u8, dz: *u8) -> i64 { return ws_c1(m, "h21" as *u8, ws_bin(m, "+" as *u8, ws_id(m, "gc" as *u8, T_V2F), ws_v2f(m, dx, dz), T_V2F), T_F32) }
called by 1: ws_fn_sand calls 4: ws_c1ws_binws_idws_v2f
3485func ws_sd_lt0(m: *i64, n: *u8) -> i64 { return ws_cmp(m, "<" as *u8, ws_id(m, n, T_F32), ws_f(m, "0.0" as *u8)) }
called by 1: ws_fn_sand calls 3: ws_cmpws_idws_f
3486func ws_sd_dk(m: *i64, n: *u8) -> i64 { return ws_bin(m, "*" as *u8, ws_id(m, n, T_I32), ws_id(m, "k" as *u8, T_I32), T_I32) }
called by 1: ws_sd_wat calls 2: ws_binws_id
3488func ws_sd_wat(m: *i64, y: *u8) -> i64 { return ws_cmp(m, "==" as *u8, ws_c1(m, "vx" as *u8, ws_bin(m, "+" as *u8, ws_id(m, "c" as *u8, T_V3I), ws_vt3(m, T_V3I, ws_sd_dk(m, "dx" as *u8), ws_i(m, y), ws_sd_dk(m, "dz" as *u8)), T_V3I), T_U32), ws_u(m, "4" as *u8)) }
3490func ws_sd_dir(m: *i64, shift: *u8) -> i64 { return sir_cast(m, ws_c1(m, "floor" as *u8, ws_bin(m, "+" as *u8, ws_c1(m, "sin" as *u8, ws_bin(m, "+" as *u8, ws_id(m, "a" as *u8, T_F32), ws_f(m, shift), T_F32), T_F32), ws_f(m, SD_HALF), T_F32), T_F32), T_I32) }
3492func ws_sd_fade(m: *i64, freq: *u8) -> i64 { return ws_c3(m, "clamp" as *u8, ws_bin(m, "-" as *u8, ws_f(m, "1.0" as *u8), ws_bin(m, "*" as *u8, ws_bin(m, "*" as *u8, ws_f(m, SD_TWO), ws_sd_f(m, "fp" as *u8), T_F32), ws_f(m, freq), T_F32), T_F32), ws_f(m, "0.0" as *u8), ws_f(m, "1.0" as *u8), T_F32) }
called by 1: ws_fn_sand calls 4: ws_c3ws_binws_fws_sd_f
3494func ws_sd_dslope(m: *i64, a: *u8, b: *u8, k: *u8) -> i64 { return ws_bin(m, "*" as *u8, ws_bin(m, "-" as *u8, ws_sd_f(m, a), ws_sd_f(m, b), T_F32), ws_f(m, k), T_F32) }
called by 1: ws_fn_sand calls 3: ws_binws_sd_fws_f
3496func ws_sd_tilt(m: *i64, s: *u8, g: *u8, rdk: *u8) -> i64
called by 1: ws_fn_sand calls 3: ws_binws_sd_fws_f
3503func ws_sandcls(m: *i64) -> i64 { return ws_or(m, ws_or(m, ws_beq(m, "1" as *u8), ws_beq(m, "2" as *u8)), ws_beq(m, "5" as *u8)) }
called by 2: ws_sandyws_fn_shade calls 2: ws_orws_beq
3504func ws_sandy(m: *i64) -> i64 { return ws_and(m, ws_smooth(m), ws_sandcls(m)) }
3506func ws_shd(m: *i64) -> i64 { return ws_q2(m, ws_li(m, "0.55" as *u8), ws_op(m, "sp" as *u8, T_F32, "*" as *u8, ws_f(m, SD_SHADOW_SPEC))) }
called by 1: ws_fn_shade calls 4: ws_q2ws_liws_opws_f
3507func ws_fn_sand(m: *i64) -> i64
3575func ws_fn_shade(m: *i64, hty: i64) -> i64
3673func ws_bt(m: *i64, k: *u8, v: *u8, els: i64) -> i64
3677func ws_pxo(m: *i64, a: *u8, op: *u8, e: i64) -> i64 { return ws_cmp(m, op, ws_sx(m, "px" as *u8, T_V2F, a, T_F32), ws_bin(m, "+" as *u8, ws_sx(m, "o" as *u8, T_V2F, a, T_F32), e, T_F32)) }
3683func ws_fn_water_hit(m: *i64, hty: i64) -> i64
3708func ws_fn_scene_hit(m: *i64, hty: i64) -> i64
3740func ws_fn_fs(m: *i64, hty: i64) -> i64