Merge branch 'for-3.1' of git://linux-nfs.org/~bfields/linux
[firefly-linux-kernel-4.4.55.git] / net / mac80211 / debugfs_sta.c
index c04a1396cf8d94e4ff6d467cb1f98a3a1133f5be..a01d2137fddca33f11bc89bda319c5d00937b98d 100644 (file)
@@ -92,6 +92,31 @@ static ssize_t sta_inactive_ms_read(struct file *file, char __user *userbuf,
 }
 STA_OPS(inactive_ms);
 
+
+static ssize_t sta_connected_time_read(struct file *file, char __user *userbuf,
+                                       size_t count, loff_t *ppos)
+{
+       struct sta_info *sta = file->private_data;
+       struct timespec uptime;
+       struct tm result;
+       long connected_time_secs;
+       char buf[100];
+       int res;
+       do_posix_clock_monotonic_gettime(&uptime);
+       connected_time_secs = uptime.tv_sec - sta->last_connected;
+       time_to_tm(connected_time_secs, 0, &result);
+       result.tm_year -= 70;
+       result.tm_mday -= 1;
+       res = scnprintf(buf, sizeof(buf),
+               "years  - %ld\nmonths - %d\ndays   - %d\nclock  - %d:%d:%d\n\n",
+                       result.tm_year, result.tm_mon, result.tm_mday,
+                       result.tm_hour, result.tm_min, result.tm_sec);
+       return simple_read_from_buffer(userbuf, count, ppos, buf, res);
+}
+STA_OPS(connected_time);
+
+
+
 static ssize_t sta_last_seq_ctrl_read(struct file *file, char __user *userbuf,
                                      size_t count, loff_t *ppos)
 {
@@ -324,6 +349,7 @@ void ieee80211_sta_debugfs_add(struct sta_info *sta)
        DEBUGFS_ADD(flags);
        DEBUGFS_ADD(num_ps_buf_frames);
        DEBUGFS_ADD(inactive_ms);
+       DEBUGFS_ADD(connected_time);
        DEBUGFS_ADD(last_seq_ctrl);
        DEBUGFS_ADD(agg_status);
        DEBUGFS_ADD(dev);