capability: move some previously private structures to public API

This commit is contained in:
William Pitcock 2016-02-27 00:46:49 -06:00
parent 486cd34415
commit ba83226733
2 changed files with 18 additions and 21 deletions

View file

@ -21,8 +21,22 @@
#ifndef __CAPABILITY_H__ #ifndef __CAPABILITY_H__
#define __CAPABILITY_H__ #define __CAPABILITY_H__
struct CapabilityIndex; struct CapabilityIndex {
struct CapabilityEntry; const char *name;
struct Dictionary *cap_dict;
unsigned int highest_bit;
rb_dlink_node node;
};
#define CAP_ORPHANED 0x1
#define CAP_REQUIRED 0x2
struct CapabilityEntry {
const char *cap;
unsigned int value;
unsigned int flags;
void *ownerdata;
};
extern unsigned int capability_get(struct CapabilityIndex *idx, const char *cap, void **ownerdata); extern unsigned int capability_get(struct CapabilityIndex *idx, const char *cap, void **ownerdata);
extern unsigned int capability_put(struct CapabilityIndex *idx, const char *cap, void *ownerdata); extern unsigned int capability_put(struct CapabilityIndex *idx, const char *cap, void *ownerdata);

View file

@ -25,23 +25,6 @@
static rb_dlink_list capability_indexes = { NULL, NULL, 0 }; static rb_dlink_list capability_indexes = { NULL, NULL, 0 };
struct CapabilityIndex {
char *name;
struct Dictionary *cap_dict;
unsigned int highest_bit;
rb_dlink_node node;
};
#define CAP_ORPHANED 0x1
#define CAP_REQUIRED 0x2
struct CapabilityEntry {
char *cap;
unsigned int value;
unsigned int flags;
void *ownerdata;
};
unsigned int unsigned int
capability_get(struct CapabilityIndex *idx, const char *cap, void **ownerdata) capability_get(struct CapabilityIndex *idx, const char *cap, void **ownerdata)
{ {
@ -78,7 +61,7 @@ capability_put(struct CapabilityIndex *idx, const char *cap, void *ownerdata)
} }
entry = rb_malloc(sizeof(struct CapabilityEntry)); entry = rb_malloc(sizeof(struct CapabilityEntry));
entry->cap = rb_strdup(cap); entry->cap = cap;
entry->flags = 0; entry->flags = 0;
entry->value = idx->highest_bit; entry->value = idx->highest_bit;
entry->ownerdata = ownerdata; entry->ownerdata = ownerdata;
@ -148,7 +131,7 @@ capability_index_create(const char *name)
struct CapabilityIndex *idx; struct CapabilityIndex *idx;
idx = rb_malloc(sizeof(struct CapabilityIndex)); idx = rb_malloc(sizeof(struct CapabilityIndex));
idx->name = rb_strdup(name); idx->name = name;
idx->cap_dict = irc_dictionary_create(name, strcasecmp); idx->cap_dict = irc_dictionary_create(name, strcasecmp);
idx->highest_bit = 1; idx->highest_bit = 1;