kernel_samsung_a53x/test/kunit_manager.c
2024-06-15 16:02:09 -03:00

91 lines
2.1 KiB
C
Executable file

/* kunit_manager.c
*
* Driver to manage kunit
*
* Copyright (C) 2019 Samsung Electronics
*
* Sangsu Ha <sangsu.ha@samsung.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#include <test/kunit_manager.h>
extern int test_executor_init(void);
static ssize_t kunit_manager_run_store(struct device *dev,
struct device_attribute *attr, const char *buf, size_t count)
{
if (!strncmp(buf, "1", 1)) {
test_executor_init();
}
return count;
}
static DEVICE_ATTR(run, 0200, NULL, kunit_manager_run_store);
static struct attribute *kunit_manager_attributes[] = {
&dev_attr_run.attr,
NULL,
};
static struct attribute_group kunit_manager_attr_group = {
.attrs = kunit_manager_attributes,
};
static int __init kunit_manager_init(void)
{
struct kunit_manager_data *data;
int ret;
data = kzalloc(sizeof(struct kunit_manager_data), GFP_KERNEL);
if (!data)
return -ENOMEM;
data->dev = (struct device *)sec_device_create(data, "sec_kunit");
if (IS_ERR(data->dev)) {
pr_err("%s: Failed to create device!\n", __func__);
ret = PTR_ERR(data->dev);
goto err_sec_device_create;
}
dev_set_drvdata(data->dev, data);
ret = sysfs_create_group(&data->dev->kobj, &kunit_manager_attr_group);
if (ret < 0) {
pr_err("%s: Failed to create sysfs group\n", __func__);
goto err_sysfs_create_group;
}
pr_info("%s: Success\n", __func__);
return 0;
err_sysfs_create_group:
sec_device_destroy(data->dev->devt);
err_sec_device_create:
kfree(data);
return ret;
}
static void __exit kunit_manager_exit(void)
{
return;
}
module_init(kunit_manager_init);
module_exit(kunit_manager_exit);
MODULE_DESCRIPTION("Samsung kunit manager driver");
MODULE_AUTHOR("Sangsu Ha <sangsu.ha@samsung.com>");
MODULE_LICENSE("GPL");