Skip to main content

Crate hyperlight_libc

Crate hyperlight_libc 

Source
Expand description

Hyperlight libc crate

This crate provides the picolibc library for Hyperlight guests. It builds picolibc from source and generates Rust bindings to the C library types and functions.

Modules§

c_str
CStr and its related types.

Structs§

CStr
A dynamically-sized view of a C string.
FromBytesUntilNulError
An error indicating that no nul byte was present.
__file
__file_close
__file_ext
__iconv_t
__va_list_tag
_mbstate_t
_rand48
bintime
div_t
fd_set
imaxdiv_t
itimerspec
itimerval
lconv
ldiv_t
lldiv_t
sigaction
sigaltstack
sigevent
siginfo_t
timespec
timeval
timezone
tm
VaListExperimental
A variable argument list, ABI-compatible with va_list in C.

Enums§

FromBytesWithNulError
An error indicating that a nul byte was not in the expected position.
c_void
Equivalent to C’s void type when used as a pointer.

Constants§

ARG_MAX
ATEXIT_MAX
BUFSIZ
CHILD_MAX
CLK_TCK
CLOCKS_PER_SEC
CLOCK_MONOTONIC
CLOCK_REALTIME
COLL_WEIGHTS_MAX
DST_AUST
DST_CAN
DST_EET
DST_MET
DST_NONE
DST_USA
DST_WET
E2BIG
EACCES
EADDRINUSE
EADDRNOTAVAIL
EADV
EAFNOSUPPORT
EAGAIN
EALREADY
EBADE
EBADF
EBADFD
EBADMSG
EBADR
EBADRQC
EBADSLT
EBFONT
EBUSY
ECANCELED
ECHILD
ECHRNG
ECOMM
ECONNABORTED
ECONNREFUSED
ECONNRESET
EDEADLK
EDEADLOCK
EDESTADDRREQ
EDOM
EDOTDOT
EDQUOT
EEXIST
EFAULT
EFBIG
EFTYPE
EHOSTDOWN
EHOSTUNREACH
EHWPOISON
EIDRM
EILSEQ
EINPROGRESS
EINTR
EINVAL
EIO
EISCONN
EISDIR
EISNAM
EKEYEXPIRED
EKEYREJECTED
EKEYREVOKED
EL2HLT
EL2NSYNC
EL3HLT
EL3RST
ELBIN
ELIBACC
ELIBBAD
ELIBEXEC
ELIBMAX
ELIBSCN
ELNRNG
ELOOP
EMFILE
EMLINK
EMSGSIZE
EMULTIHOP
ENAMETOOLONG
ENETDOWN
ENETRESET
ENETUNREACH
ENFILE
ENOANO
ENOBUFS
ENOCSI
ENODATA
ENODEV
ENOENT
ENOEXEC
ENOLCK
ENOLINK
ENOMEDIUM
ENOMEM
ENOMSG
ENONET
ENOPKG
ENOPROTOOPT
ENOSPC
ENOSR
ENOSTR
ENOSYS
ENOTBLK
ENOTCONN
ENOTDIR
ENOTEMPTY
ENOTRECOVERABLE
ENOTSOCK
ENOTSUP
ENOTTY
ENOTUNIQ
ENXIO
EOF
EOPNOTSUPP
EOVERFLOW
EOWNERDEAD
EPERM
EPFNOSUPPORT
EPIPE
EPROCLIM
EPROTO
EPROTONOSUPPORT
EPROTOTYPE
ERANGE
EREMCHG
EREMOTE
EROFS
ESHUTDOWN
ESOCKTNOSUPPORT
ESPIPE
ESRCH
ESRMNT
ESTALE
ESTRPIPE
ETIME
ETIMEDOUT
ETOOMANYREFS
ETXTBSY
EUNATCH
EUSERS
EWOULDBLOCK
EXDEV
EXFULL
EXIT_FAILURE
EXIT_SUCCESS
EXPR_NEST_MAX
FD_SETSIZE
FE_ALL_EXCEPT
FE_TONEAREST
FILENAME_MAX
FOPEN_MAX
FP_INFINITE
FP_NAN
FP_NORMAL
FP_SUBNORMAL
FP_ZERO
IOV_MAX
ITIMER_PROF
ITIMER_REAL
ITIMER_VIRTUAL
LC_ALL
LC_ALL_MASK
LC_COLLATE
LC_COLLATE_MASK
LC_CTYPE
LC_CTYPE_MASK
LC_MESSAGES
LC_MESSAGES_MASK
LC_MONETARY
LC_MONETARY_MASK
LC_NUMERIC
LC_NUMERIC_MASK
LC_TIME
LC_TIME_MASK
LINE_MAX
LINK_MAX
L_tmpnam
MATH_ERREXCEPT
MATH_ERRNO
MAX_CANON
MAX_INPUT
MB_LEN_MAX
MINSIGSTKSZ
M_1_PI
M_2_PI
M_2_SQRTPI
M_E
M_El
M_IVLN10
M_LN2
M_LN10
M_LOG2E
M_LOG2_E
M_LOG10E
M_PI
M_PI_2
M_PI_4
M_PI_2l
M_PI_4l
M_PIl
M_SQRT2
M_SQRT3
M_SQRT1_2
M_SQRTPI
M_TWOPI
NAME_MAX
NL_ARGMAX
OPEN_MAX
PATH_MAX
PIPE_BUF
P_tmpdir
RAND_MAX
RE_DUP_MAX
SA_NOCLDSTOP
SA_NOCLDWAIT
SA_NODEFER
SA_ONSTACK
SA_RESETHAND
SA_RESTART
SA_SIGINFO
SBT_MAX
SEEK_CUR
SEEK_END
SEEK_SET
SIG2STR_MAX
SIGABRT
SIGALRM
SIGBUS
SIGCHLD
SIGCLD
SIGCONT
SIGEMT
SIGEV_NONE
SIGEV_SIGNAL
SIGEV_THREAD
SIGFPE
SIGHUP
SIGILL
SIGINT
SIGIO
SIGIOT
SIGKILL
SIGLOST
SIGPIPE
SIGPOLL
SIGPROF
SIGQUIT
SIGSEGV
SIGSTKSZ
SIGSTOP
SIGSYS
SIGTERM
SIGTRAP
SIGTSTP
SIGTTIN
SIGTTOU
SIGURG
SIGUSR1
SIGUSR2
SIGVTALRM
SIGWINCH
SIGXCPU
SIGXFSZ
SIG_BLOCK
SIG_SETMASK
SIG_UNBLOCK
SI_ASYNCIO
SI_MESGQ
SI_QUEUE
SI_TIMER
SI_USER
SS_DISABLE
SS_ONSTACK
TIMER_ABSTIME
TIME_UTC
TMP_MAX
TZNAME_MAX
WINT_MIN
WNOHANG
WUNTRACED
_ATFILE_SOURCE
_CLOCKS_PER_SEC_
_CTYPE_OFFSET
_DEFAULT_SOURCE
_FDEV_EOF
_FDEV_ERR
_FDEV_SETUP_READ
_FDEV_SETUP_RW
_FDEV_SETUP_WRITE
_IEEE_754_2008_SNAN
_IOFBF
_IOLBF
_IONBF
_JBLEN
_LC_LAST
_LC_MESSAGES
_LIBC_LIMITS_H_
_MATH_ERRHANDLING_ERREXCEPT
_MATH_ERRHANDLING_ERRNO
_M_E_L
_M_IVLN10L
_M_LN2
_M_LN2_LD
_M_PI_2
_M_PI_2L
_M_PI_4L
_M_PI_L
_NEWLIB_VERSION
_NSIG
_PICOLIBC_CTYPE_SMALL
_PICOLIBC_PRINTF
_PICOLIBC_SCANF
_POSIX2_BC_BASE_MAX
_POSIX2_BC_DIM_MAX
_POSIX2_BC_SCALE_MAX
_POSIX2_BC_STRING_MAX
_POSIX2_CHARCLASS_NAME_MAX
_POSIX2_COLL_WEIGHTS_MAX
_POSIX2_EXPR_NEST_MAX
_POSIX2_LINE_MAX
_POSIX2_RE_DUP_MAX
_POSIX_AIO_LISTIO_MAX
_POSIX_AIO_MAX
_POSIX_ARG_MAX
_POSIX_CHILD_MAX
_POSIX_C_SOURCE
_POSIX_DELAYTIMER_MAX
_POSIX_HOST_NAME_MAX
_POSIX_LINK_MAX
_POSIX_LOGIN_NAME_MAX
_POSIX_MAX_CANON
_POSIX_MAX_INPUT
_POSIX_MQ_OPEN_MAX
_POSIX_MQ_PRIO_MAX
_POSIX_NAME_MAX
_POSIX_NGROUPS_MAX
_POSIX_OPEN_MAX
_POSIX_PATH_MAX
_POSIX_PIPE_BUF
_POSIX_RE_DUP_MAX
_POSIX_RTSIG_MAX
_POSIX_SEM_NSEMS_MAX
_POSIX_SEM_VALUE_MAX
_POSIX_SIGQUEUE_MAX
_POSIX_SOURCE
_POSIX_SSIZE_MAX
_POSIX_SS_REPL_MAX
_POSIX_STREAM_MAX
_POSIX_SYMLINK_MAX
_POSIX_SYMLOOP_MAX
_POSIX_THREAD_DESTRUCTOR_ITERATIONS
_POSIX_THREAD_KEYS_MAX
_POSIX_THREAD_THREADS_MAX
_POSIX_TIMER_MAX
_POSIX_TRACE_EVENT_NAME_MAX
_POSIX_TRACE_NAME_MAX
_POSIX_TRACE_SYS_MAX
_POSIX_TRACE_USER_EVENT_MAX
_POSIX_TTY_NAME_MAX
_POSIX_TZNAME_MAX
_STDIO_H_
__ASCTIME_SIZE
__ATFILE_VISIBLE
__BSD_VISIBLE
__CTYPE_BLANK
__CTYPE_CNTRL
__CTYPE_DIGIT
__CTYPE_HEX
__CTYPE_LOWER
__CTYPE_PUNCT
__CTYPE_SPACE
__CTYPE_TAB
__CTYPE_UPPER
__ELASTERROR
__FAST8
__FAST16
__FAST64
__GNUCLIKE_PRAGMA_DIAGNOSTIC
__GNU_VISIBLE
__HAVE_BUILTIN_ADD_OVERFLOW
__HAVE_BUILTIN_ALLOCA
__HAVE_BUILTIN_COMPLEX
__HAVE_BUILTIN_COPYSIGN
__HAVE_BUILTIN_COPYSIGNL
__HAVE_BUILTIN_CTZ
__HAVE_BUILTIN_CTZL
__HAVE_BUILTIN_CTZLL
__HAVE_BUILTIN_EXPECT
__HAVE_BUILTIN_FFS
__HAVE_BUILTIN_FFSL
__HAVE_BUILTIN_FFSLL
__HAVE_BUILTIN_ISFINITE
__HAVE_BUILTIN_ISINF
__HAVE_BUILTIN_ISNAN
__HAVE_BUILTIN_MUL_OVERFLOW
__HAVE_COMPLEX
__INT8
__INT16
__INT64
__IO_DEFAULT
__IO_VARIANT_DOUBLE
__IO_VARIANT_FLOAT
__IO_VARIANT_INTEGER
__IO_VARIANT_LLONG
__IO_VARIANT_MINIMAL
__ISO_C_VISIBLE
__LARGEFILE64_VISIBLE
__LARGEFILE_VISIBLE
__LEAST8
__LEAST16
__LEAST64
__LONG_LONG_WIDTH__
__MB_LEN_MAX
__MISC_VISIBLE
__NEWLIB_MINOR__
__NEWLIB_PATCHLEVEL__
__NEWLIB_VERSION__
__NEWLIB__
__OBSOLETE_MATH
__OBSOLETE_MATH_DEFAULT
__OBSOLETE_MATH_DOUBLE
__OBSOLETE_MATH_FLOAT
__PICOLIBC_MINOR__
__PICOLIBC_PATCHLEVEL__
__PICOLIBC_UNGETC_SIZE
__PICOLIBC_VERSION__
__PICOLIBC__
__POSIX_VISIBLE
__RAND_MAX
__SBUF
__SCHAR_WIDTH__
__SCLOSE
__SEOF
__SERR
__SEXT
__SRD
__SSP_FORTIFY_LEVEL
__SVID_VISIBLE
__SWIDE
__SWR
__XSI_VISIBLE
__ZEPHYR_VISIBLE
___int8_t_defined
___int16_t_defined
___int32_t_defined
___int64_t_defined
___int_least8_t_defined
___int_least16_t_defined
___int_least32_t_defined
___int_least64_t_defined
__have_long64
__have_longlong64
__int8_t_defined
__int20
__int16_t_defined
__int20__
__int32_t_defined
__int64_t_defined
__int_fast8_t_defined
__int_fast16_t_defined
__int_fast32_t_defined
__int_fast64_t_defined
__int_least8_t_defined
__int_least16_t_defined
__int_least32_t_defined
__int_least64_t_defined
math_errhandling

Statics§

_ctype_b
_ctype_wide
_daylight
_fe_dfl_env
_timezone
errno
signgam
stderr
stdin
stdout
suboptarg
tzname

Traits§

VaArgSafeExperimental
Types that are valid to read using VaList::next_arg.

Functions§

_Exit
__dtoa
__eprintf
__finite
__finitef
__finitel
__fpclassifyd
__fpclassifyf
__fpclassifyl
__iseqsigd
__iseqsigf
__iseqsigl
__isinfd
__isinff
__isinfl
__isnand
__isnanf
__isnanl
__issignaling
__issignalingf
__issignalingl
__itoa
__ldtoa
__locale_mb_cur_max
__signbitd
__signbitf
__signbitl
__utoa
_drand48_r
_erand48_r
_findenv
_jrand48_r
_lcong48_r
_lrand48_r
_mrand48_r
_nrand48_r
_seed48_r
_srand48_r
a64l
abort
abs
acos
acosf
acosh
acoshf
acoshl
acosl
adjtime
aligned_alloc
arc4random
arc4random_buf
arc4random_uniform
asctime
asctime_r
asin
asinf
asinh
asinhf
asinhl
asinl
asnprintf
asprintf
at_quick_exit
atan
atan2
atan2f
atan2l
atanf
atanh
atanhf
atanhl
atanl
atexit
atof
atoff
atoi
atol
atoll
bcmp
bcopy
bsearch
btowc
bzero
calloc
cbrt
cbrtf
cbrtl
ceil
ceilf
ceill
cfree
clearerr
clearerr_unlocked
clock
clock_getres
clock_gettime
clock_nanosleep
clock_settime
copysign
copysignf
copysignl
cos
cosf
cosh
coshf
coshl
cosl
ctime
ctime_r
difftime
div
dprintf
drand48
drem
dremf
dreml
duplocale
erand48
erf
erfc
erfcf
erfcl
erff
erfl
exit
exp
exp2
exp2f
exp2l
expf
expl
explicit_bzero
expm1
expm1f
expm1l
fabs
fabsf
fabsl
fclose
fdevopen
fdim
fdimf
fdiml
fdopen
feof
feof_unlocked
ferror
ferror_unlocked
fflush
ffs
ffsl
ffsll
fgetc
fgetpos
fgets
fgetwc
fgetws
fileno
finite
finitef
finitel
flockfile
floor
floorf
floorl
fls
flsl
flsll
fma
fmaf
fmal
fmax
fmaxf
fmaxl
fmemopen
fmin
fminf
fminl
fmod
fmodf
fmodl
fopen
fprintf
fputc
fputs
fputwc
fputws
fread
free
freelocale
freopen
frexp
frexpf
frexpl
fscanf
fseek
fseeko
fsetpos
ftell
ftello
ftrylockfile
funlockfile
funopen
futimes
fwide
fwprintf
fwrite
fwscanf
gamma
gammaf
gammal
getc
getc_unlocked
getchar
getchar_unlocked
getdelim
getenv
getitimer
getline
getlocalename_l
getpayload
getpayloadf
getpayloadl
getsubopt
gettimeofday
getwc
getwchar
gmtime
gmtime_r
hypot
hypotf
hypotl
ilogb
ilogbf
ilogbl
imaxabs
imaxdiv
index
infinity
infinityf
infinityl
initstate
isalnum
isalnum_l
isalpha
isalpha_l
isascii
isascii_l
iscntrl
iscntrl_l
isdigit
isdigit_l
isgraph
isgraph_l
isinf
isinff
isinfl
islower
islower_l
isnan
isnanf
isnanl
isprint
isprint_l
ispunct
ispunct_l
isspace
isspace_l
isupper
isupper_l
iswalnum
iswalnum_l
iswalpha
iswalpha_l
iswblank
iswblank_l
iswcntrl
iswcntrl_l
iswctype
iswctype_l
iswdigit
iswdigit_l
iswgraph
iswgraph_l
iswlower
iswlower_l
iswprint
iswprint_l
iswpunct
iswpunct_l
iswspace
iswspace_l
iswupper
iswupper_l
iswxdigit
iswxdigit_l
isxdigit
isxdigit_l
itoa
j0
j0f
j0l
j1
j1f
j1l
jn
jnf
jnl
jrand48
kill
l64a
labs
lcong48
ldexp
ldexpf
ldexpl
ldiv
lgamma
lgamma_r
lgammaf
lgammaf_r
lgammal
lgammal_r
llabs
lldiv
llrint
llrintf
llrintl
llround
llroundf
llroundl
localeconv
localtime
localtime_r
log
log2
log1p
log1pf
log1pl
log2f
log2l
log10
log10f
log10l
logb
logbf
logbl
logf
logl
longjmp
lrand48
lrint
lrintf
lrintl
lround
lroundf
lroundl
lutimes
malloc
mblen
mbrlen
mbrtowc
mbsinit
mbsnrtowcs
mbsrtowcs
mbstowcs
mbtowc
memccpy
memchr
memcmp
memcpy
memmove
memset
mkdtemp
mkstemp
mkstemps
mktemp
mktime
modf
modff
modfl
mrand48
nan
nanf
nanl
nanosleep
nearbyint
nearbyintf
nearbyintl
newlocale
nextafter
nextafterf
nextafterl
nexttoward
nexttowardf
nexttowardl
nrand48
on_exit
open_wmemstream
perror
posix_memalign
pow
powf
powl
printf
psiginfo
psignal
putc
putc_unlocked
putchar
putchar_unlocked
putenv
puts
putwc
putwchar
qsort
qsort_r
quick_exit
raise
rand
rand_r
random
realloc
reallocarray
reallocf
realpath
remainder
remainderf
remainderl
remove
remquo
remquof
remquol
rename
rewind
rindex
rint
rintf
rintl
round
roundf
roundl
rpmatch
scalb
scalbf
scalbl
scalbln
scalblnf
scalblnl
scalbn
scalbnf
scalbnl
scanf
seed48
select
setbuf
setbuffer
setenv
setitimer
setjmp
setlinebuf
setlocale
setstate
settimeofday
setvbuf
sig2str
sigaction
sigaddset
sigaltstack
sigdelset
sigemptyset
sigfillset
sigismember
signal
significand
significandf
significandl
sigpending
sigprocmask
sigqueue
sigsuspend
sigtimedwait
sigwait
sigwaitinfo
sin
sinf
sinh
sinhf
sinhl
sinl
snprintf
sprintf
sqrt
sqrtf
sqrtl
srand
srand48
srandom
sscanf
stpcpy
stpncpy
str2sig
strcasecmp
strcasecmp_l
strcat
strchr
strcmp
strcoll
strcoll_l
strcpy
strcspn
strdup
strerror
strerror_l
strerror_r
strfromd
strfromf
strfroml
strftime
strftime_l
strlcat
strlcpy
strlen
strlwr
strncasecmp
strncasecmp_l
strncat
strncmp
strncpy
strndup
strnlen
strnstr
strpbrk
strrchr
strsep
strsignal
strspn
strstr
strtod
strtof
strtoimax
strtoimax_l
strtok
strtok_r
strtol
strtold
strtoll
strtoul
strtoull
strtoumax
strtoumax_l
strupr
strxfrm
strxfrm_l
swprintf
swscanf
system
tan
tanf
tanh
tanhf
tanhl
tanl
tgamma
tgammaf
tgammal
time
timegm
timer_create
timer_delete
timer_getoverrun
timer_gettime
timer_settime
timespec_get
timingsafe_bcmp
timingsafe_memcmp
tmpfile
tmpnam
toascii
toascii_l
tolower
tolower_l
toupper
toupper_l
towctrans
towctrans_l
towlower
towlower_l
towupper
towupper_l
trunc
truncf
truncl
tzset
ungetc
ungetwc
unsetenv
uselocale
utimes
utoa
valloc
vasnprintf
vasprintf
vdprintf
vfprintf
vfscanf
vfwprintf
vfwscanf
vprintf
vscanf
vsnprintf
vsprintf
vsscanf
vswprintf
vswscanf
vwprintf
vwscanf
wcpcpy
wcpncpy
wcrtomb
wcscasecmp
wcscasecmp_l
wcscat
wcschr
wcscmp
wcscoll
wcscoll_l
wcscpy
wcscspn
wcsdup
wcsftime
wcslcat
wcslcpy
wcslen
wcsncasecmp
wcsncasecmp_l
wcsncat
wcsncmp
wcsncpy
wcsnlen
wcsnrtombs
wcspbrk
wcsrchr
wcsrtombs
wcsspn
wcsstr
wcstod
wcstof
wcstoimax
wcstoimax_l
wcstok
wcstol
wcstold
wcstoll
wcstombs
wcstoul
wcstoull
wcstoumax
wcstoumax_l
wcsxfrm
wcsxfrm_l
wctob
wctomb
wctrans
wctrans_l
wctype
wctype_l
wmemchr
wmemcmp
wmemcpy
wmemmove
wmemset
wprintf
wscanf
y0
y0f
y0l
y1
y1f
y1l
yn
ynf
ynl

Type Aliases§

FILE
__FILE
__blkcnt64_t
__blkcnt_t
__blksize_t
__builtin_va_list
__clock_t
__clockid_t
__compar_fn_t
__daddr_t
__dev_t
__fd_mask
__fsblkcnt_t
__fsfilcnt_t
__gid_t
__gnuc_va_list
__id_t
__ino64_t
__ino_t
__int8_t
__int16_t
__int32_t
__int64_t
__int_least8_t
__int_least16_t
__int_least32_t
__int_least64_t
__intmax_t
__intptr_t
__key_t
__loff_t
__mode_t
__nl_item
__nlink_t
__off64_t
__off_t
__pid_t
__sa_family_t
__sigset_t
__size_t
__socklen_t
__ssize_t
__suseconds_t
__time_t
__timer_t
__uid_t
__uint8_t
__uint16_t
__uint32_t
__uint64_t
__uint_least8_t
__uint_least16_t
__uint_least32_t
__uint_least64_t
__uintmax_t
__uintptr_t
__ungetc_t
__useconds_t
__wctype_t
_fpos64_t
_fpos_t
_iconv_t
_off64_t
_off_t
_sig_func_ptr
_ssize_t
_wchar_t
c_char
Equivalent to C’s char type.
c_double
Equivalent to C’s double type.
c_float
Equivalent to C’s float type.
c_int
Equivalent to C’s signed int (int) type.
c_long
Equivalent to C’s signed long (long) type.
c_longlong
Equivalent to C’s signed long long (long long) type.
c_schar
Equivalent to C’s signed char type.
c_short
Equivalent to C’s signed short (short) type.
c_uchar
Equivalent to C’s unsigned char type.
c_uint
Equivalent to C’s unsigned int type.
c_ulong
Equivalent to C’s unsigned long type.
c_ulonglong
Equivalent to C’s unsigned long long type.
c_ushort
Equivalent to C’s unsigned short type.
clock_t
clockid_t
double_t
fd_mask
fenv_t
fexcept_t
float_t
fpos_t
int_fast8_t
int_fast16_t
int_fast32_t
int_fast64_t
int_least8_t
int_least16_t
int_least32_t
int_least64_t
intmax_t
jmp_buf
locale_t
mbstate_t
off64_t
off_t
pid_t
sbintime_t
sig_atomic_t
sig_t
sigset_t
stack_t
suseconds_t
time_t
timer_t
uid_t
uint_fast8_t
uint_fast16_t
uint_fast32_t
uint_fast64_t
uint_least8_t
uint_least16_t
uint_least32_t
uint_least64_t
uintmax_t
va_list
wchar_t
wctrans_t
wctype_t
wint_t
c_ptrdiff_tExperimental
Equivalent to C’s ptrdiff_t type, from stddef.h (or cstddef for C++).
c_size_tExperimental
Equivalent to C’s size_t type, from stddef.h (or cstddef for C++).
c_ssize_tExperimental
Equivalent to C’s ssize_t (on POSIX) or SSIZE_T (on Windows) type.

Unions§

_mbstate_t__bindgen_ty_1
sigaction__bindgen_ty_1
sigval