int *arg_runnable = arg; *arg_runnable = 0; return 0; } static const struct ctl_node CTL_NODE(test_index)[] = { CTL_LEAF_RO(index_value), CTL_NODE_END }; static const struct ctl_node CTL_NODE(debug)[] = { CTL_LEAF_RO(test_ro), CTL_LEAF_WO(test_wo), CTL_LEAF_RUNNABLE(test_runnable), CTL_LEAF_RW(test_rw), CTL_INDEXED(test_index), CTL_LEAF_WO(test_config), CTL_LEAF_WO(test_config_complex_arg), CTL_NODE_END }; static int CTL_WRITE_HANDLER(gtest_config)(void *ctx, enum ctl_query_source source, void *arg, struct ctl_indexes *indexes) { UT_ASSERTeq(source, CTL_QUERY_CONFIG_INPUT); char *config_value = arg; UT_ASSERTeq(strcmp(config_value, TEST_CONFIG_VALUE), 0);
return 0; } static int CTL_WRITE_HANDLER(at_open)(void *ctx, enum ctl_query_source source, void *arg, struct ctl_indexes *indexes) { int arg_in = *(int *)arg; Prefault_at_open = arg_in; return 0; } static struct ctl_argument CTL_ARG(at_create) = CTL_ARG_BOOLEAN; static struct ctl_argument CTL_ARG(at_open) = CTL_ARG_BOOLEAN; static const struct ctl_node CTL_NODE(prefault)[] = { CTL_LEAF_RW(at_create), CTL_LEAF_RW(at_open), CTL_NODE_END }; void ctl_prefault_register(void) { CTL_REGISTER_MODULE(NULL, prefault); }
.dest_size = sizeof(struct pobj_alloc_class_desc), .parsers = { CTL_ARG_PARSER_STRUCT(struct pobj_alloc_class_desc, unit_size, ctl_arg_integer), CTL_ARG_PARSER_STRUCT(struct pobj_alloc_class_desc, alignment, ctl_arg_integer), CTL_ARG_PARSER_STRUCT(struct pobj_alloc_class_desc, units_per_block, ctl_arg_integer), CTL_ARG_PARSER_STRUCT(struct pobj_alloc_class_desc, header_type, pmalloc_header_type_parser), CTL_ARG_PARSER_END } }; static const struct ctl_node CTL_NODE(class_id)[] = { CTL_LEAF_RW(desc), CTL_NODE_END }; static const struct ctl_node CTL_NODE(new)[] = { CTL_LEAF_WO(desc), CTL_NODE_END }; static const struct ctl_node CTL_NODE(alloc_class)[] = { CTL_INDEXED(class_id), CTL_INDEXED(new), CTL_NODE_END