use crate::rubysys::types::{c_char, c_int, c_long, Value};
#[cfg_attr(rutie_dllimport, link(name = "rutie_ruby"))]
extern "C" {
pub static rb_eArgError: Value;
pub static rb_eEOFError: Value;
pub static rb_eEncCompatError: Value;
pub static rb_eEncodingError: Value;
pub static rb_eException: Value;
pub static rb_eFatal: Value;
pub static rb_eFloatDomainError: Value;
pub static rb_eFrozenError: Value;
pub static rb_eIOError: Value;
pub static rb_eIndexError: Value;
pub static rb_eInterrupt: Value;
pub static rb_eKeyError: Value;
pub static rb_eLoadError: Value;
pub static rb_eLocalJumpError: Value;
pub static rb_eMathDomainError: Value;
pub static rb_eNameError: Value;
pub static rb_eNoMemError: Value;
pub static rb_eNoMatchingPatternError: Value;
pub static rb_eNoMatchingPatternKeyError: Value;
pub static rb_eNoMethodError: Value;
pub static rb_eNotImpError: Value;
pub static rb_eRangeError: Value;
pub static rb_eRegexpError: Value;
pub static rb_eRuntimeError: Value;
pub static rb_eScriptError: Value;
pub static rb_eSecurityError: Value;
pub static rb_eSignal: Value;
pub static rb_eStandardError: Value;
pub static rb_eStopIteration: Value;
pub static rb_eSyntaxError: Value;
pub static rb_eSysStackError: Value;
pub static rb_eSystemCallError: Value;
pub static rb_eSystemExit: Value;
pub static rb_eThreadError: Value;
pub static rb_eTypeError: Value;
pub static rb_eZeroDivError: Value;
#[cfg(ruby_gte_3_2)]
pub static rb_eIOTimeoutError: Value;
pub fn rb_check_frozen(object: Value);
pub fn rb_check_type(object: Value, value_type: c_int);
pub fn rb_error_arity(argc: c_int, min: c_int, max: c_int) -> !;
pub fn rb_error_frozen_object(object: Value) -> !;
pub fn rb_exc_new_str(exception_class: Value, message: Value) -> Value;
pub fn rb_frozen_error_raise(object: Value, fmt: *const c_char, ...) -> !;
pub fn rb_bug(fmt: *const c_char, ...) -> !;
pub fn rb_exc_new(exception_class: Value, message: *const c_char, len: c_long) -> Value;
pub fn rb_exc_new_cstr(exception_class: Value, message: *const c_char) -> Value;
pub fn rb_exc_fatal(exception: Value) -> !;
pub fn rb_interrupt() -> !;
pub fn rb_mod_syserr_fail(module: Value, errno: c_int, message: *const c_char) -> !;
pub fn rb_notimplement() -> !;
pub fn rb_num_zerodiv() -> !;
pub fn rb_sys_fail(message: *const c_char) -> !;
pub fn rb_syserr_fail(errno: c_int, message: *const c_char) -> !;
pub fn rb_syserr_new(errno: c_int, message: *const c_char) -> Value;
#[cfg(ruby_gte_3_3)]
pub fn rb_errno() -> c_int;
#[cfg(ruby_gte_3_3)]
pub fn rb_errno_set(err: c_int);
#[cfg(ruby_gte_3_3)]
pub fn rb_errno_ptr() -> *mut c_int;
pub fn rb_warn(fmt: *const c_char, ...);
pub fn rb_warning(fmt: *const c_char, ...);
}
#[cfg(windows)]
#[cfg_attr(rutie_dllimport, link(name = "rutie_ruby"))]
extern "C" {
pub fn rb_w32_map_errno(winerr: crate::rubysys::libc::c_ulong) -> c_int;
}