On Fri, Apr 23, 2010 at 9:43 AM, Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote: > On Fri, 23 Apr 2010, Pavel Machek wrote: > >> Hi! >> >> > Add a misc device, "suspend_blocker", that allows user-space processes >> > to block auto suspend. The device has ioctls to create a suspend_blocker, >> > and to block and unblock suspend. To delete the suspend_blocker, close >> > the device. >> > >> > Signed-off-by: Arve Hj??nnev??g <arve@xxxxxxxxxxx> >> >> > --- a/Documentation/power/suspend-blockers.txt >> > +++ b/Documentation/power/suspend-blockers.txt >> > @@ -95,3 +95,20 @@ if (list_empty(&state->pending_work)) >> > else >> > suspend_block(&state->suspend_blocker); >> > >> > +User-space API >> > +============== >> > + >> > +To create a suspend_blocker from user-space, open the suspend_blocker device: >> > + fd = open("/dev/suspend_blocker", O_RDWR | O_CLOEXEC); >> > +then call: >> > + ioctl(fd, SUSPEND_BLOCKER_IOCTL_INIT(strlen(name)), name); >> >> >> This seems like very wrong idea -- it uses different ioctl number for >> each length AFAICT. > > How about specifying the name by an ordinary write() call instead of > by an ioctl()? > I prefer using ioctls. We have three operations at the moment. Init, block and unblock. If we do init with write but block and unblock using ioctls, it would be pretty strange. Specifying a command and argument in a string to write is more complicated to parse than using ioctls. Or did you have something else in mind? -- Arve Hjønnevåg _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm