1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
use super::functions::{AmxCallback, AmxDebug, AmxNative}; use std::os::raw::{c_char, c_int, c_long, c_uchar, c_void}; #[repr(C, packed)] pub struct AMX { pub base: *mut c_uchar, pub data: *mut c_uchar, pub callback: AmxCallback, pub debug: AmxDebug, pub cip: i32, pub frm: i32, pub hea: i32, pub hlw: i32, pub stk: i32, pub stp: i32, pub flags: c_int, pub usertags: [c_long; 4usize], pub userdata: [*mut c_void; 4usize], pub error: c_int, pub paramcount: c_int, pub pri: i32, pub alt: i32, pub reset_stk: i32, pub reset_hea: i32, pub sysreq_d: i32, } #[repr(C, packed)] pub struct AMX_NATIVE_INFO { pub name: *const c_char, pub func: AmxNative, } #[repr(C, packed)] pub struct AMX_FUNCSTUB { pub address: u32, pub name: [c_char; 20usize], } #[repr(C, packed)] pub struct ANX_FUNCSTUBNT { pub address: u32, pub nameofs: u32, } #[repr(C, packed)] pub struct AMX_HEADER { pub size: i32, pub magic: u16, pub file_version: c_char, pub amx_version: c_char, pub flags: i16, pub defsize: i16, pub cod: i32, pub dat: i32, pub hea: i32, pub stp: i32, pub cip: i32, pub publics: i32, pub natives: i32, pub libraries: i32, pub pubvars: i32, pub tags: i32, pub nametable: i32, }