Add basic dynamic kstat support

Add the bare minimum functionality to support dynamic kstats.  A
complete kstat implementation should be done as part of issue #84.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue #84
This commit is contained in:
Brian Behlendorf
2012-01-30 12:15:31 -08:00
parent 4b2220f0b9
commit 9a8b7a7458
2 changed files with 22 additions and 1 deletions
+10 -1
View File
@@ -72,7 +72,14 @@
#define KS_MAGIC 0x9d9d9d9d
typedef int kid_t; /* unique kstat id */
/* Dynamic updates */
#define KSTAT_READ 0
#define KSTAT_WRITE 1
struct kstat_s;
typedef int kid_t; /* unique kstat id */
typedef int kstat_update_t(struct kstat_s *, int); /* dynamic update cb */
typedef struct kstat_s {
int ks_magic; /* magic value */
@@ -89,6 +96,8 @@ typedef struct kstat_s {
uint_t ks_ndata; /* # of type-specific data records */
size_t ks_data_size; /* size of kstat data section */
struct proc_dir_entry *ks_proc; /* proc linkage */
kstat_update_t *ks_update; /* dynamic updates */
void *ks_private; /* private data */
spinlock_t ks_lock; /* kstat data lock */
struct list_head ks_list; /* kstat linkage */
} kstat_t;