linux/security/selinux/ss/ebitmap.c

/* SPDX-License-Identifier: GPL-2.0 */
/*
 * Implementation of the extensible bitmap type.
 *
 * Author : Stephen Smalley, <[email protected]>
 */
/*
 * Updated: Hewlett-Packard <[email protected]>
 *          Added support to import/export the NetLabel category bitmap
 *          (c) Copyright Hewlett-Packard Development Company, L.P., 2006
 *
 * Updated: KaiGai Kohei <[email protected]>
 *          Applied standard bit operations to improve bitmap scanning.
 */

#include <linux/kernel.h>
#include <linux/slab.h>
#include <linux/errno.h>
#include <linux/jhash.h>
#include <net/netlabel.h>
#include "ebitmap.h"
#include "policydb.h"

#define BITS_PER_U64

static struct kmem_cache *ebitmap_node_cachep __ro_after_init;

int ebitmap_cmp(const struct ebitmap *e1, const struct ebitmap *e2)
{}

int ebitmap_cpy(struct ebitmap *dst, const struct ebitmap *src)
{}

int ebitmap_and(struct ebitmap *dst, const struct ebitmap *e1,
		const struct ebitmap *e2)
{}

#ifdef CONFIG_NETLABEL
/**
 * ebitmap_netlbl_export - Export an ebitmap into a NetLabel category bitmap
 * @ebmap: the ebitmap to export
 * @catmap: the NetLabel category bitmap
 *
 * Description:
 * Export a SELinux extensibile bitmap into a NetLabel category bitmap.
 * Returns zero on success, negative values on error.
 *
 */
int ebitmap_netlbl_export(struct ebitmap *ebmap,
			  struct netlbl_lsm_catmap **catmap)
{}

/**
 * ebitmap_netlbl_import - Import a NetLabel category bitmap into an ebitmap
 * @ebmap: the ebitmap to import
 * @catmap: the NetLabel category bitmap
 *
 * Description:
 * Import a NetLabel category bitmap into a SELinux extensibile bitmap.
 * Returns zero on success, negative values on error.
 *
 */
int ebitmap_netlbl_import(struct ebitmap *ebmap,
			  struct netlbl_lsm_catmap *catmap)
{}
#endif /* CONFIG_NETLABEL */

/*
 * Check to see if all the bits set in e2 are also set in e1. Optionally,
 * if last_e2bit is non-zero, the highest set bit in e2 cannot exceed
 * last_e2bit.
 */
int ebitmap_contains(const struct ebitmap *e1, const struct ebitmap *e2,
		     u32 last_e2bit)
{}

int ebitmap_get_bit(const struct ebitmap *e, u32 bit)
{}

int ebitmap_set_bit(struct ebitmap *e, u32 bit, int value)
{}

void ebitmap_destroy(struct ebitmap *e)
{}

int ebitmap_read(struct ebitmap *e, void *fp)
{}

int ebitmap_write(const struct ebitmap *e, void *fp)
{}

u32 ebitmap_hash(const struct ebitmap *e, u32 hash)
{}

void __init ebitmap_cache_init(void)
{}