From: Marc Rittinghaus Date: Thu, 20 Apr 2023 15:06:37 +0000 (+0200) Subject: lib/ukswrand: Adapt (u)random to new device_create X-Git-Tag: RELEASE-0.13.0~103 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=cbede5f4b5113a50cbeea37c0180ad4f6a012125;p=unikraft%2Funikraft.git lib/ukswrand: Adapt (u)random to new device_create The signature and requirements of device_create() changed. This commit adapts the implementations of /dev/random and /dev/urandom 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/ukswrand/dev.c b/lib/ukswrand/dev.c index fbd447d1b..5ab78d66c 100644 --- a/lib/ukswrand/dev.c +++ b/lib/ukswrand/dev.c @@ -44,8 +44,8 @@ #define DEV_RANDOM_NAME "random" #define DEV_URANDOM_NAME "urandom" -int dev_random_read(struct device *dev __unused, struct uio *uio, - int flags __unused) +static int dev_random_read(struct device *dev __unused, struct uio *uio, + int flags __unused) { size_t count; char *buf; @@ -59,21 +59,19 @@ int dev_random_read(struct device *dev __unused, struct uio *uio, return 0; } -int dev_random_open(struct device *device __unused, int mode __unused) +static int dev_random_write(struct device *dev __unused, + struct uio *uio __unused, + int flags __unused) { - return 0; -} - - -int dev_random_close(struct device *device __unused) -{ - return 0; + return EPERM; } static struct devops random_devops = { + .open = dev_noop_open, + .close = dev_noop_close, .read = dev_random_read, - .open = dev_random_open, - .close = dev_random_close, + .write = dev_random_write, + .ioctl = dev_noop_ioctl, }; static struct driver drv_random = { @@ -90,25 +88,25 @@ static struct driver drv_urandom = { static int devfs_register(void) { - struct device *dev; + int rc; uk_pr_info("Register '%s' and '%s' to devfs\n", DEV_URANDOM_NAME, DEV_RANDOM_NAME); /* register /dev/urandom */ - dev = device_create(&drv_urandom, DEV_URANDOM_NAME, D_CHR); - if (dev == NULL) { - uk_pr_err("Failed to register '%s' to devfs\n", - DEV_URANDOM_NAME); - return -1; + rc = device_create(&drv_urandom, DEV_URANDOM_NAME, D_CHR, NULL); + if (unlikely(rc)) { + uk_pr_err("Failed to register '%s' to devfs: %d\n", + DEV_URANDOM_NAME, rc); + return -rc; } /* register /dev/random */ - dev = device_create(&drv_random, DEV_RANDOM_NAME, D_CHR); - if (dev == NULL) { - uk_pr_err("Failed to register '%s' to devfs\n", - DEV_RANDOM_NAME); - return -1; + rc = device_create(&drv_random, DEV_RANDOM_NAME, D_CHR, NULL); + if (unlikely(rc)) { + uk_pr_err("Failed to register '%s' to devfs: %d\n", + DEV_RANDOM_NAME, rc); + return -rc; } return 0;