From: Marc Rittinghaus Date: Thu, 20 Apr 2023 15:03:57 +0000 (+0200) Subject: lib/devfs: Adapt null/zero to new device_create X-Git-Tag: RELEASE-0.13.0~104 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=ee977223c3e59c4998ed001e9d5116646993f3b2;p=unikraft%2Funikraft.git lib/devfs: Adapt null/zero to new device_create The signature and requirements of device_create() changed. This commit adapts the implementations of /dev/null and /dev/zero to use the new definition. Signed-off-by: Marc Rittinghaus Reviewed-by: Razvan Deaconescu Approved-by: Razvan Deaconescu Tested-by: Unikraft CI GitHub-Closes: #855 --- diff --git a/lib/devfs/null.c b/lib/devfs/null.c index deb785f83..51983164e 100644 --- a/lib/devfs/null.c +++ b/lib/devfs/null.c @@ -30,49 +30,38 @@ * POSSIBILITY OF SUCH DAMAGE. */ -#include #include #include + +#include #include #include #include #include - -int dev_null_write(struct device *dev __unused, struct uio *uio, - int flags __unused) +static int dev_null_write(struct device *dev __unused, struct uio *uio, + int flags __unused) { uio->uio_resid = 0; return 0; } -int dev_null_open(struct device *device __unused, int mode __unused) -{ - return 0; -} - - -int dev_null_close(struct device *device __unused) -{ - return 0; -} - #ifdef CONFIG_LIBDEVFS_DEV_NULL - #define DEV_NULL_NAME "null" -int dev_null_read(struct device *dev __unused, struct uio *uio, - int flags __unused) +static int dev_null_read(struct device *dev __unused, struct uio *uio, + int flags __unused) { uio->uio_resid = uio->uio_iov->iov_len; return 0; } static struct devops null_devops = { + .open = dev_noop_open, + .close = dev_noop_close, .read = dev_null_read, .write = dev_null_write, - .open = dev_null_open, - .close = dev_null_close, + .ioctl = dev_noop_ioctl, }; static struct driver drv_null = { @@ -80,14 +69,13 @@ static struct driver drv_null = { .devsz = 0, .name = DEV_NULL_NAME }; -#endif +#endif /* CONFIG_LIBDEVFS_DEV_NULL */ #ifdef CONFIG_LIBDEVFS_DEV_ZERO - #define DEV_ZERO_NAME "zero" -int dev_zero_read(struct device *dev __unused, struct uio *uio, - int flags __unused) +static int dev_zero_read(struct device *dev __unused, struct uio *uio, + int flags __unused) { size_t count; char *buf; @@ -101,10 +89,11 @@ int dev_zero_read(struct device *dev __unused, struct uio *uio, } static struct devops zero_devops = { + .open = dev_noop_open, + .close = dev_noop_close, .read = dev_zero_read, .write = dev_null_write, - .open = dev_null_open, - .close = dev_null_close, + .ioctl = dev_noop_ioctl, }; static struct driver drv_zero = { @@ -112,33 +101,35 @@ static struct driver drv_zero = { .devsz = 0, .name = DEV_ZERO_NAME }; -#endif +#endif /* CONFIG_LIBDEVFS_DEV_ZERO */ static int devfs_register_null(void) { - struct device *dev; + int rc; #ifdef CONFIG_LIBDEVFS_DEV_NULL uk_pr_debug("Register '%s' to devfs\n", DEV_NULL_NAME); /* register /dev/null */ - dev = device_create(&drv_null, DEV_NULL_NAME, D_CHR); - if (dev == NULL) { - uk_pr_err("Failed to register '%s' to devfs\n", DEV_NULL_NAME); - return -1; + rc = device_create(&drv_null, DEV_NULL_NAME, D_CHR, NULL); + if (unlikely(rc)) { + uk_pr_err("Failed to register '%s' to devfs: %d\n", + DEV_NULL_NAME, rc); + return -rc; } -#endif +#endif /* CONFIG_LIBDEVFS_DEV_NULL */ #ifdef CONFIG_LIBDEVFS_DEV_ZERO uk_pr_debug("Register '%s' to devfs\n", DEV_ZERO_NAME); /* register /dev/zero */ - dev = device_create(&drv_zero, DEV_ZERO_NAME, D_CHR); - if (dev == NULL) { - uk_pr_err("Failed to register '%s' to devfs\n", DEV_ZERO_NAME); - return -1; + rc = device_create(&drv_zero, DEV_ZERO_NAME, D_CHR, NULL); + if (unlikely(rc)) { + uk_pr_err("Failed to register '%s' to devfs: %d\n", + DEV_ZERO_NAME, rc); + return -rc; } -#endif +#endif /* CONFIG_LIBDEVFS_DEV_ZERO */ return 0; }