// The `linux` module has a parallel foreign item, `readdir64_r`, which uses a
// different struct layout.
"readdir_r$INODE64" => {
- let result = this.readdir_r(args[0], args[1], args[2])?;
+ let result = this.macos_readdir_r(args[0], args[1], args[2])?;
this.write_scalar(Scalar::from_int(result, dest.layout.size), dest)?;
}
+ // Environment related shims
+ "_NSGetEnviron" => {
+ this.write_scalar(this.machine.env_vars.environ.unwrap().ptr, dest)?;
+ }
+
// Time related shims
"gettimeofday" => {
let result = this.gettimeofday(args[0], args[1])?;
"SecRandomCopyBytes" => {
let len = this.read_scalar(args[1])?.to_machine_usize(this)?;
let ptr = this.read_scalar(args[2])?.not_undef()?;
- this.gen_random(ptr, len as usize)?;
+ this.gen_random(ptr, len)?;
this.write_null(dest)?;
}