diff options
author | Brian Behlendorf <[email protected]> | 2009-01-09 15:30:53 -0800 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2009-01-09 15:30:53 -0800 |
commit | 121d48c97d9ad4455062bc289d78a872a7e021b7 (patch) | |
tree | 9cc1d2c4fbc66d2fbb6b4de3e09710ce98ca2410 /include | |
parent | f590d7d37469a45f3da17bd30c3c0b0396004ac1 (diff) |
Add basic ksid_lookupdomain and ksiddomain_rele support, just allocations
Diffstat (limited to 'include')
-rw-r--r-- | include/sys/sid.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/include/sys/sid.h b/include/sys/sid.h index 530c91a75..f798d24a8 100644 --- a/include/sys/sid.h +++ b/include/sys/sid.h @@ -1,4 +1,31 @@ #ifndef _SPL_SID_H #define _SPL_SID_H +typedef struct ksiddomain { + uint_t kd_ref; + uint_t kd_len; + char *kd_name; + avl_node_t kd_link; +} ksiddomain_t; + +static inline ksiddomain_t * +ksid_lookupdomain(const char *dom) +{ + ksiddomain_t *kd; + int len = strlen(dom); + + kd = kmem_zalloc(sizeof(ksiddomain_t), KM_SLEEP); + kd->kd_name = kmem_zalloc(len + 1, KM_SLEEP); + memcpy(kd->kd_name, dom, len); + + return (kd); +} + +static inline void +ksiddomain_rele(ksiddomain_t *ksid) +{ + kmem_free(ksid->kd_name, strlen(ksid->kd_name) + 1); + kmem_free(ksid, sizeof(ksiddomain_t)); +} + #endif /* _SPL_SID_H */ |