+void
+device_prepare(struct device* dev)
+{
+ dev->magic = DEV_STRUCT_MAGIC;
+ dev->dev_id = devid++;
+
+ llist_init_head(&dev->children);
+}
+
+static void
+device_setname_vargs(struct device* dev, char* fmt, va_list args)
+{
+ size_t strlen =
+ __ksprintf_internal(dev->name_val, fmt, DEVICE_NAME_SIZE, args);
+
+ dev->name = HSTR(dev->name_val, strlen);
+
+ hstr_rehash(&dev->name, HSTR_FULL_HASH);
+}
+
+void
+device_setname(struct device* dev, char* fmt, ...)
+{
+ va_list args;
+ va_start(args, fmt);
+
+ device_setname_vargs(dev, fmt, args);
+
+ va_end(args);
+}
+