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;

Reply via email to