All new accounts created on Gitlab now require administrator approval. If you invite any collaborators, please let Flux staff know so they can approve the accounts.

Commit 8e2fb16b authored by Charlie Jacobsen's avatar Charlie Jacobsen

Adds symbol exports for kernel land.

When we install libcap as a kernel module, in order for other
kernel code (modules) to link with it, we need to mark public
functions with EXPORT_SYMBOL.
parent 6f8ce609
Pipeline #410 passed with stage
......@@ -1217,3 +1217,30 @@ void cap_destroy_cspace(struct cspace *cspace)
fail1:
return;
}
/* EXPORTS -------------------------------------------------- */
/* These are required for kernel land, so that if we install libcap
* as a kernel module, other kernel code can link with it. */
EXPORT_SYMBOL(cap_init);
EXPORT_SYMBOL(cap_fini);
EXPORT_SYMBOL(cap_register_type);
EXPORT_SYMBOL(cap_alloc_cspace);
EXPORT_SYMBOL(cap_free_cspace);
EXPORT_SYMBOL(cap_init_cspace);
EXPORT_SYMBOL(cap_destroy_cspace);
EXPORT_SYMBOL(cap_cspace_setowner);
EXPORT_SYMBOL(cap_cspace_getowner);
EXPORT_SYMBOL(cap_cnode_get);
EXPORT_SYMBOL(cap_cnode_put);
EXPORT_SYMBOL(cap_cnode_object);
EXPORT_SYMBOL(cap_cnode_type);
EXPORT_SYMBOL(cap_cnode_cspace);
EXPORT_SYMBOL(cap_cnode_metadata);
EXPORT_SYMBOL(cap_cnode_set_metadata);
EXPORT_SYMBOL(cap_cnode_verify);
EXPORT_SYMBOL(cap_cnode_cptr);
EXPORT_SYMBOL(cap_insert);
EXPORT_SYMBOL(cap_delete);
EXPORT_SYMBOL(cap_grant);
EXPORT_SYMBOL(cap_revoke);
......@@ -31,16 +31,6 @@ cap_cptr_cache_bmap_for_level(struct cptr_cache *c, int lvl)
#error "You need to adjust this function def."
#endif
int cptr_init(void)
{
return __cptr_init();
}
void cptr_fini(void)
{
__cptr_fini();
}
int cptr_cache_alloc(struct cptr_cache **out)
{
struct cptr_cache *cache;
......@@ -93,8 +83,8 @@ void cptr_cache_destroy(struct cptr_cache *cache)
/* No-op for now */
}
int __cap_alloc_cptr_from_bmap(unsigned long *bmap, int size,
unsigned long *out)
static int __cap_alloc_cptr_from_bmap(unsigned long *bmap, int size,
unsigned long *out)
{
unsigned long idx;
/*
......@@ -200,3 +190,15 @@ void cptr_free(struct cptr_cache *cptr_cache, cptr_t c)
return;
}
/* EXPORTS -------------------------------------------------- */
/* These are required for kernel land, so that if we install libcap
* as a kernel module, other kernel code can link with it. */
EXPORT_SYMBOL(cap_cptr_cache_bmap_for_level);
EXPORT_SYMBOL(cptr_cache_alloc);
EXPORT_SYMBOL(cptr_cache_free);
EXPORT_SYMBOL(cptr_cache_init);
EXPORT_SYMBOL(cptr_cache_destroy);
EXPORT_SYMBOL(cptr_alloc);
EXPORT_SYMBOL(cptr_free);
......@@ -71,7 +71,10 @@ uninstall-headers:
rm -f $(KERNEL_HEADERS_INSTALL)/libcap_list.h
# Don't do regular install; user probably doesn't want kernel stuff in
# user-level directories.
# user-level directories. (In retrospect, maybe a regular install isn't
# a bad idea. User can always uninstall if they mess up and choose the
# wrong prefix. Of course, we have to manually spell out the install
# rule using $DESTDIR.)
install: install-headers
@echo ""; \
echo "----------------------------------------"; \
......
......@@ -208,4 +208,7 @@ static unsigned long find_first_zero_bit(const unsigned long *addr,
#define msleep(ms) usleep(10 * (ms))
/* No need to export symbols for user lib. */
#define EXPORT_SYMBOL(s)
#endif /* __LIBCAP_PLATFORM_INTERNAL_H__ */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment