On Mon, 28 May 2018, Jason Thorpe wrote:

I’m going to be writing a driver for the NXP PCA9685, and want to glue it into 
the PWM kernel API jmcneill@ added… but I have a bunch of uses for this device 
that won’t really be covered by FDT, so I think there needs to be some sort of 
user space API as well.

I have to say that I’m growing frustrated with the proliferation of ioctl-based 
APIs and *ctl programs.  I’m tempted to start doing more of this stuff with 
sysctl(), and then perhaps hiding the details from applications inside a shared 
library API that exposes only opaque types and accessors / mutators.  (Gawd, 
historically, BSD has done such a terrible job at API design…)

My concern about sysctl(), though, is that because of the way it’s structured, 
you’ve got a latency problem, which is not a concern in my application, but 
might be an issue if you have an application that needs to control a servo 
using PWM.

Curious to hear your thoughts on this.

I do this from time to time, mostly out of laziness (sys/dev/led.c for example). Biggest issue I have is that with sysctl we lose the ability to use chmod/chown/chgrp.

Reply via email to