91 lines
2.1 KiB
C
Executable file
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");
|