1
0
mirror of https://github.com/samba-team/samba.git synced 2025-08-26 01:49:31 +03:00

lib/util Move bitmap.c to lib/util

This commit is contained in:
Andrew Bartlett
2011-07-07 21:04:31 +10:00
parent 6b2749f8a9
commit 6e6aaacedb
15 changed files with 51 additions and 23 deletions

View File

@ -18,6 +18,7 @@
*/
#include "includes.h"
#include "lib/util/bitmap.h"
/* these functions provide a simple way to allocate integers from a
pool without repetition */
@ -34,7 +35,7 @@ struct bitmap *bitmap_talloc(TALLOC_CTX *mem_ctx, int n)
if (!bm) return NULL;
bm->n = n;
bm->b = talloc_zero_array(bm, uint32, (n+31)/32);
bm->b = talloc_zero_array(bm, uint32_t, (n+31)/32);
if (!bm->b) {
TALLOC_FREE(bm);
return NULL;
@ -51,7 +52,7 @@ int bitmap_copy(struct bitmap * const dst, const struct bitmap * const src)
int count = MIN(dst->n, src->n);
SMB_ASSERT(dst->b != src->b);
memcpy(dst->b, src->b, sizeof(uint32)*((count+31)/32));
memcpy(dst->b, src->b, sizeof(uint32_t)*((count+31)/32));
return count;
}

32
lib/util/bitmap.h Normal file
View File

@ -0,0 +1,32 @@
/*
Unix SMB/CIFS implementation.
simple bitmap functions
Copyright (C) Andrew Tridgell 1992-1998
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/* The following definitions come from lib/bitmap.c */
struct bitmap {
uint32_t *b;
unsigned int n;
};
struct bitmap *bitmap_talloc(TALLOC_CTX *mem_ctx, int n);
int bitmap_copy(struct bitmap * const dst, const struct bitmap * const src);
bool bitmap_set(struct bitmap *bm, unsigned i);
bool bitmap_clear(struct bitmap *bm, unsigned i);
bool bitmap_query(struct bitmap *bm, unsigned i);
int bitmap_find(struct bitmap *bm, unsigned ofs);

View File

@ -84,5 +84,11 @@ bld.SAMBA_LIBRARY('tdb-wrap',
deps='tdb_compat talloc samba-util',
private_library=True,
local_include=False
)
)
bld.SAMBA_LIBRARY('bitmap',
source='bitmap.c',
deps='talloc samba-util',
local_include=False,
private_library=True)

View File

@ -456,7 +456,7 @@ LIB_OBJ = $(LIBSAMBAUTIL_OBJ) $(UTIL_OBJ) $(CRYPTO_OBJ) $(LIBTSOCKET_OBJ) \
lib/username.o \
../libds/common/flag_mapping.o \
lib/access.o lib/smbrun.o \
lib/bitmap.o ../lib/util/dprintf.o $(UTIL_REG_OBJ) \
../lib/util/bitmap.o ../lib/util/dprintf.o $(UTIL_REG_OBJ) \
lib/wins_srv.o lib/string_init.o \
lib/util_str.o ../lib/util/util_str_common.o \
../lib/util/util_str.o \

View File

@ -61,15 +61,6 @@ const char *audit_description_str(uint32 category);
bool get_audit_category_from_param(const char *param, uint32 *audit_category);
const char *audit_policy_str(TALLOC_CTX *mem_ctx, uint32 policy);
/* The following definitions come from lib/bitmap.c */
struct bitmap *bitmap_talloc(TALLOC_CTX *mem_ctx, int n);
int bitmap_copy(struct bitmap * const dst, const struct bitmap * const src);
bool bitmap_set(struct bitmap *bm, unsigned i);
bool bitmap_clear(struct bitmap *bm, unsigned i);
bool bitmap_query(struct bitmap *bm, unsigned i);
int bitmap_find(struct bitmap *bm, unsigned ofs);
/* The following definitions come from lib/charcnv.c */
void gfree_charcnv(void);

View File

@ -705,11 +705,6 @@ struct connections_data {
uint32 unused_compatitibility_field;
};
struct bitmap {
uint32 *b;
unsigned int n;
};
/* offsets into message for common items */
#define smb_com 8
#define smb_rcls 9

View File

@ -23,6 +23,7 @@
#include "system/filesys.h"
#include "../libcli/security/security.h"
#include "../librpc/gen_ndr/ndr_security.h"
#include "../lib/util/bitmap.h"
static NTSTATUS create_acl_blob(const struct security_descriptor *psd,
DATA_BLOB *pblob,

View File

@ -65,6 +65,7 @@
#include "auth.h"
#include "ntioctl.h"
#include "lib/param/loadparm.h"
#include "lib/util/bitmap.h"
static int vfs_full_audit_debug_level = DBGC_VFS;

View File

@ -67,6 +67,7 @@
#include "smb_signing.h"
#include "dbwrap.h"
#include "smbldap.h"
#include "../lib/util/bitmap.h"
#ifdef HAVE_SYS_SYSCTL_H
#include <sys/sysctl.h>

View File

@ -25,6 +25,7 @@
#include "passdb.h"
#include "../libcli/auth/libcli_auth.h"
#include "../libcli/security/security.h"
#include "../lib/util/bitmap.h"
#undef DBGC_CLASS
#define DBGC_CLASS DBGC_PASSDB

View File

@ -22,6 +22,7 @@
#include "includes.h"
#include "smbd/smbd.h"
#include "smbd/globals.h"
#include "lib/util/bitmap.h"
/* The connections bitmap is expanded in increments of BITMAP_BLOCK_SZ. The
* maximum size of the bitmap is the largest positive integer, but you will hit

View File

@ -23,6 +23,7 @@
#include "smbd/smbd.h"
#include "smbd/globals.h"
#include "libcli/security/security.h"
#include "lib/util/bitmap.h"
/*
This module implements directory related functions for Samba.

View File

@ -23,6 +23,7 @@
#include "libcli/security/security.h"
#include "util_tdb.h"
#include <ccan/hash/hash.h>
#include "lib/util/bitmap.h"
#define VALID_FNUM(fnum) (((fnum) >= 0) && ((fnum) < real_max_open_files))

View File

@ -26,6 +26,7 @@
#include "../lib/tsocket/tsocket.h"
#include "../lib/util/tevent_ntstatus.h"
#include "smbprofile.h"
#include "../lib/util/bitmap.h"
#define OUTVEC_ALLOC_SIZE (SMB2_HDR_BODY + 9)

View File

@ -1039,11 +1039,6 @@ bld.SAMBA3_LIBRARY('util_sec',
deps='samba-util',
private_library=True)
bld.SAMBA3_LIBRARY('bitmap',
source='lib/bitmap.c',
deps='samba-util',
private_library=True)
bld.SAMBA3_LIBRARY('namearray',
source='lib/namearray.c',
deps='samba-util',