summaryrefslogtreecommitdiff
path: root/debugfs.h
diff options
context:
space:
mode:
Diffstat (limited to 'debugfs.h')
-rw-r--r--debugfs.h75
1 files changed, 75 insertions, 0 deletions
diff --git a/debugfs.h b/debugfs.h
new file mode 100644
index 0000000..7b2e282
--- /dev/null
+++ b/debugfs.h
@@ -0,0 +1,75 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Copyright 2022 Google LLC.
+ *
+ * Author: Star Chang <starchang@google.com>
+ */
+
+#ifndef _WLAN_PTRACKER_DEBUGFS_H
+#define _WLAN_PTRACKER_DEBUGFS_H
+
+#include <linux/types.h>
+#include <linux/mutex.h>
+#include <linux/time64.h>
+#include <linux/sysfs.h>
+#include <linux/kobject.h>
+
+struct wlan_ptracker_core;
+
+struct wlan_ptracker_debugfs {
+ struct dentry *root;
+ struct kobject kobj;
+ u32 dscp;
+ u32 ac;
+ u32 action;
+ u32 log_level;
+};
+
+struct ptracker_kobj_attr {
+ struct attribute attr;
+ ssize_t (*show)(struct wlan_ptracker_debugfs *, char *);
+ ssize_t (*store)(struct wlan_ptracker_debugfs *, const char *, size_t count);
+};
+
+enum {
+ FEATURE_FLAG_TWT,
+ FEATURE_FLAG_MAX
+};
+
+enum {
+ ACTION_DSCP_UPDATE,
+ ACTION_MAX,
+};
+
+struct scene_statistic {
+ u64 awake;
+ u64 asleep;
+};
+
+struct history_entry {
+ u32 state;
+ bool valid;
+ struct timespec64 ts;
+};
+
+#define MODULE_NAME_MAX 64
+struct history_manager {
+ char name[MODULE_NAME_MAX];
+ int cur;
+ int round;
+ int entry_count;
+ int entry_size;
+ struct mutex mutex;
+ int (*priv_read)(struct wlan_ptracker_core *core, void *cur, void *next, char *buf, int len);
+ u8 entries[0];
+};
+
+extern int wlan_ptracker_debugfs_init(struct wlan_ptracker_debugfs *debugfs);
+extern void wlan_ptracker_debugfs_exit(struct wlan_ptracker_debugfs *debugfs);
+extern struct history_manager *wlan_ptracker_history_create(int entry_count, int entry_size);
+extern void wlan_ptracker_history_destroy(struct history_manager *hm);
+extern void *wlan_ptracker_history_store(struct history_manager *hm, u32 state);
+extern size_t wlan_ptracker_history_read(struct wlan_ptracker_core *core,
+ struct history_manager *hm, char *buf, int len);
+
+#endif /* _WLAN_PTRACKER_DEBUGFS_H */