X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/7c7b5f05d39b7739d990f71256a2267ec67a6913..f6ab9c9ababa2cf6e5c723b83ffb9362094054e8:/lunaix-os/kernel/device/device.c?ds=inline diff --git a/lunaix-os/kernel/device/device.c b/lunaix-os/kernel/device/device.c index 3647f10..979b461 100644 --- a/lunaix-os/kernel/device/device.c +++ b/lunaix-os/kernel/device/device.c @@ -44,6 +44,19 @@ device_add(struct device* parent, return dev; } +struct device* +device_addsys(struct device* parent, void* underlay, char* name_fmt, ...) +{ + va_list args; + va_start(args, name_fmt); + + struct device* dev = + device_add(parent, underlay, name_fmt, DEV_IFSEQ, args); + + va_end(args); + return dev; +} + struct device* device_addseq(struct device* parent, void* underlay, char* name_fmt, ...) { @@ -157,12 +170,12 @@ __DEFINE_LXSYSCALL3(int, ioctl, int, fd, int, req, va_list, args) goto done; } - if (!dev->exec_cmd) { - errno = EINVAL; + if (!dev->ops.exec_cmd) { + errno = ENOTSUP; goto done; } - errno = dev->exec_cmd(dev, req, args); + errno = dev->ops.exec_cmd(dev, req, args); done: return DO_STATUS_OR_RETURN(errno);