| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- // SPDX-License-Identifier: GPL-2.0
- /*
- * Common Primitives for DAMON Modules
- *
- * Author: SeongJae Park <sj@kernel.org>
- */
- #include <linux/damon.h>
- #include "modules-common.h"
- /*
- * Allocate, set, and return a DAMON context for the physical address space.
- * @ctxp: Pointer to save the point to the newly created context
- * @targetp: Pointer to save the point to the newly created target
- */
- int damon_modules_new_paddr_ctx_target(struct damon_ctx **ctxp,
- struct damon_target **targetp)
- {
- struct damon_ctx *ctx;
- struct damon_target *target;
- ctx = damon_new_ctx();
- if (!ctx)
- return -ENOMEM;
- if (damon_select_ops(ctx, DAMON_OPS_PADDR)) {
- damon_destroy_ctx(ctx);
- return -EINVAL;
- }
- target = damon_new_target();
- if (!target) {
- damon_destroy_ctx(ctx);
- return -ENOMEM;
- }
- damon_add_target(ctx, target);
- *ctxp = ctx;
- *targetp = target;
- return 0;
- }
|