SAVETMPS;
PUSHMARK(SP);
XPUSHs(sv_2mortal(newSVpv(file,0)));
- XPUSHs(sv_2mortal(newSViv(cmd)));
+ /* I don't know why cmd is a signed int in the first place;
+ * casting as unsigned so stupid tricks don't have to be done on
+ * the perl side */
+ XPUSHs(sv_2mortal(newSViv((unsigned int)cmd)));
XPUSHs(sv_2mortal(newSViv(flags)));
if (_IOC_DIR(cmd) & _IOC_WRITE)
XPUSHs(sv_2mortal(newSVpvn(data, _IOC_SIZE(cmd))));
sub fioc_ioctl {
my ($path, $cmd, $flags, $data) = @_;
print 'called ', (caller(0))[3], "\n";
- $cmd = unpack('L', pack('l', $cmd));
return -&EINVAL if fioc_file_type($path) != FIOC_FILE;