Lines Matching +refs:region +refs:id +refs:attrs
31 struct damon_sysfs_region *region = container_of(kobj, in start_show() local
34 return sysfs_emit(buf, "%lu\n", region->ar.start); in start_show()
40 struct damon_sysfs_region *region = container_of(kobj, in start_store() local
42 int err = kstrtoul(buf, 0, ®ion->ar.start); in start_store()
50 struct damon_sysfs_region *region = container_of(kobj, in end_show() local
53 return sysfs_emit(buf, "%lu\n", region->ar.end); in end_show()
59 struct damon_sysfs_region *region = container_of(kobj, in end_store() local
61 int err = kstrtoul(buf, 0, ®ion->ar.end); in end_store()
120 struct damon_sysfs_region **regions_arr, *region; in damon_sysfs_regions_add_dirs() local
134 region = damon_sysfs_region_alloc(); in damon_sysfs_regions_add_dirs()
135 if (!region) { in damon_sysfs_regions_add_dirs()
140 err = kobject_init_and_add(®ion->kobj, in damon_sysfs_regions_add_dirs()
144 kobject_put(®ion->kobj); in damon_sysfs_regions_add_dirs()
149 regions_arr[i] = region; in damon_sysfs_regions_add_dirs()
551 struct damon_sysfs_attrs *attrs = kmalloc(sizeof(*attrs), GFP_KERNEL); in damon_sysfs_attrs_alloc() local
553 if (!attrs) in damon_sysfs_attrs_alloc()
555 attrs->kobj = (struct kobject){}; in damon_sysfs_attrs_alloc()
556 return attrs; in damon_sysfs_attrs_alloc()
559 static int damon_sysfs_attrs_add_dirs(struct damon_sysfs_attrs *attrs) in damon_sysfs_attrs_add_dirs() argument
570 &damon_sysfs_intervals_ktype, &attrs->kobj, in damon_sysfs_attrs_add_dirs()
574 attrs->intervals = intervals; in damon_sysfs_attrs_add_dirs()
583 &damon_sysfs_ul_range_ktype, &attrs->kobj, in damon_sysfs_attrs_add_dirs()
587 attrs->nr_regions_range = nr_regions_range; in damon_sysfs_attrs_add_dirs()
592 attrs->nr_regions_range = NULL; in damon_sysfs_attrs_add_dirs()
595 attrs->intervals = NULL; in damon_sysfs_attrs_add_dirs()
599 static void damon_sysfs_attrs_rm_dirs(struct damon_sysfs_attrs *attrs) in damon_sysfs_attrs_rm_dirs() argument
601 kobject_put(&attrs->nr_regions_range->kobj); in damon_sysfs_attrs_rm_dirs()
602 kobject_put(&attrs->intervals->kobj); in damon_sysfs_attrs_rm_dirs()
635 struct damon_sysfs_attrs *attrs; member
655 struct damon_sysfs_attrs *attrs = damon_sysfs_attrs_alloc(); in damon_sysfs_context_set_attrs() local
658 if (!attrs) in damon_sysfs_context_set_attrs()
660 err = kobject_init_and_add(&attrs->kobj, &damon_sysfs_attrs_ktype, in damon_sysfs_context_set_attrs()
664 err = damon_sysfs_attrs_add_dirs(attrs); in damon_sysfs_context_set_attrs()
667 context->attrs = attrs; in damon_sysfs_context_set_attrs()
671 kobject_put(&attrs->kobj); in damon_sysfs_context_set_attrs()
730 kobject_put(&context->attrs->kobj); in damon_sysfs_context_add_dirs()
731 context->attrs = NULL; in damon_sysfs_context_add_dirs()
737 damon_sysfs_attrs_rm_dirs(context->attrs); in damon_sysfs_context_rm_dirs()
738 kobject_put(&context->attrs->kobj); in damon_sysfs_context_rm_dirs()
748 enum damon_ops_id id; in avail_operations_show() local
751 for (id = 0; id < NR_DAMON_OPS; id++) { in avail_operations_show()
752 if (!damon_is_registered_ops(id)) in avail_operations_show()
755 damon_sysfs_ops_strs[id]); in avail_operations_show()
774 enum damon_ops_id id; in operations_store() local
776 for (id = 0; id < NR_DAMON_OPS; id++) { in operations_store()
777 if (sysfs_streq(buf, damon_sysfs_ops_strs[id])) { in operations_store()
778 context->ops_id = id; in operations_store()
1077 struct damon_attrs attrs = { in damon_sysfs_set_attrs() local
1084 return damon_set_attrs(ctx, &attrs); in damon_sysfs_set_attrs()
1192 if (ctx->ops.id == DAMON_OPS_PADDR && sysfs_targets->nr > 1) in damon_sysfs_set_targets()
1310 err = damon_sysfs_set_attrs(ctx, sys_ctx->attrs); in damon_sysfs_apply_inputs()