APM_IOC_DEV_CTL is unsupport just like apm(4/macppc) says but `errno'
is not set appropiately.
Merge identical cases while here; this syncs with loongson and arm64
and aids comparing the platforms.
Tested on a PowerBook G4 (along with the "apmd: log ioctl failure" diff).
OK?
Index: apm.c
===================================================================
RCS file: /cvs/src/sys/arch/macppc/dev/apm.c,v
retrieving revision 1.23
diff -u -p -r1.23 apm.c
--- apm.c 25 Dec 2020 12:59:51 -0000 1.23
+++ apm.c 20 Mar 2021 19:27:30 -0000
@@ -213,12 +213,14 @@ apmioctl(dev_t dev, u_long cmd, caddr_t
switch (cmd) {
/* some ioctl names from linux */
case APM_IOC_STANDBY:
- if ((flag & FWRITE) == 0)
- error = EBADF;
- break;
+ case APM_IOC_STANDBY_REQ:
case APM_IOC_SUSPEND:
+ case APM_IOC_SUSPEND_REQ:
+ case APM_IOC_DEV_CTL:
if ((flag & FWRITE) == 0)
error = EBADF;
+ else
+ error = EOPNOTSUPP;
break;
case APM_IOC_PRN_CTL:
if ((flag & FWRITE) == 0)
@@ -244,10 +246,6 @@ apmioctl(dev_t dev, u_long cmd, caddr_t
}
}
break;
- case APM_IOC_DEV_CTL:
- if ((flag & FWRITE) == 0)
- error = EBADF;
- break;
case APM_IOC_GETPOWER:
power = (struct apm_power_info *)data;
@@ -284,14 +282,6 @@ apmioctl(dev_t dev, u_long cmd, caddr_t
else
power->battery_state = APM_BATT_CRITICAL;
}
- break;
- case APM_IOC_STANDBY_REQ:
- if ((flag & FWRITE) == 0)
- error = EBADF;
- break;
- case APM_IOC_SUSPEND_REQ:
- if ((flag & FWRITE) == 0)
- error = EBADF;
break;
default:
error = ENOTTY;