X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/1375eb51603466b723ab7dd1ca4194ee5d662f75..35a7d633d3f16c1e0539af6ca5d8e7482926cd93:/lunaix-os/hal/char/devzero.c diff --git a/lunaix-os/hal/char/devzero.c b/lunaix-os/hal/char/devzero.c index 9c0b6c7..3eb9ea4 100644 --- a/lunaix-os/hal/char/devzero.c +++ b/lunaix-os/hal/char/devzero.c @@ -1,36 +1,37 @@ #include -#include +#include #include static int __zero_rd_pg(struct device* dev, void* buf, size_t offset) { - memset(&((u8_t*)buf)[offset], 0, PG_SIZE); - return PG_SIZE; + memset(buf, 0, PAGE_SIZE); + return PAGE_SIZE; } static int __zero_rd(struct device* dev, void* buf, size_t offset, size_t len) { - memset(&((u8_t*)buf)[offset], 0, len); + memset(buf, 0, len); return len; } static int -pdev_zerodev_init(struct device_def* def) +pdev_zerodev_create(struct device_def* def, morph_t* obj) { struct device* devzero = device_allocseq(NULL, NULL); devzero->ops.read_page = __zero_rd_pg; devzero->ops.read = __zero_rd; - device_register(devzero, &def->class, "zero"); + register_device(devzero, &def->class, "zero"); return 0; } static struct device_def devzero_def = { - .name = "zero", - .class = DEVCLASSV(DEVIF_NON, DEVFN_PSEUDO, DEV_ZERO, DEV_BUILTIN_ZERO), - .init = pdev_zerodev_init}; + def_device_name("nihil"), + def_device_class(LUNAIX, PSEUDO, ZERO), + def_on_create(pdev_zerodev_create) +}; EXPORT_DEVICE(zerodev, &devzero_def, load_onboot);