libyang 5.4.9
libyang is YANG data modelling language parser and toolkit written (and providing API) in C.
Loading...
Searching...
No Matches
bits.c File Reference

Built-in bits type plugin. More...

#include "plugins_types.h"
#include <ctype.h>
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
#include "libyang.h"
#include "compat.h"
#include "ly_common.h"
#include "plugins_internal.h"
Include dependency graph for bits.c:

Go to the source code of this file.

Macros

#define _GNU_SOURCE   /* strdup */
 
#define BITS_BITMAP_BYTE(bitmap, size, idx)   (bitmap + idx)
 Get a specific byte in a bitmap.
 
#define BITS_LAST_BIT_POSITION(type_bits)   ((type_bits)->bits[LY_ARRAY_COUNT((type_bits)->bits) - 1].position)
 Get the position of the last bit.
 

Functions

LIBYANG_API_DEF ly_bool lyplg_type_bits_is_bit_set (const char *bitmap, uint32_t size_bits, uint32_t bit_position)
 Check whether a particular bit of a bitmap is set.
 

Variables

const struct lyplg_type_record plugins_bits []
 Plugin information for bits type implementation.
 

Detailed Description

Built-in bits type plugin.

Author
Radek Krejci rkrej.nosp@m.ci@c.nosp@m.esnet.nosp@m..cz
Michal Vasko mvask.nosp@m.o@ce.nosp@m.snet..nosp@m.cz

Copyright (c) 2019 - 2025 CESNET, z.s.p.o.

This source code is licensed under BSD 3-Clause License (the "License"). You may not use this file except in compliance with the License. You may obtain a copy of the License at

https://opensource.org/licenses/BSD-3-Clause

Definition in file bits.c.

Macro Definition Documentation

◆ _GNU_SOURCE

#define _GNU_SOURCE   /* strdup */

Definition at line 16 of file bits.c.

◆ BITS_BITMAP_BYTE

#define BITS_BITMAP_BYTE (   bitmap,
  size,
  idx 
)    (bitmap + idx)

Get a specific byte in a bitmap.

Definition at line 54 of file bits.c.

◆ BITS_LAST_BIT_POSITION

#define BITS_LAST_BIT_POSITION (   type_bits)    ((type_bits)->bits[LY_ARRAY_COUNT((type_bits)->bits) - 1].position)

Get the position of the last bit.

Definition at line 46 of file bits.c.

Variable Documentation

◆ plugins_bits

const struct lyplg_type_record plugins_bits[]
Initial value:
= {
{
.module = "",
.revision = NULL,
.name = LY_TYPE_BITS_STR,
.plugin.id = "ly2 bits",
.plugin.lyb_size = lyplg_type_lyb_size_bits,
.plugin.store = lyplg_type_store_bits,
.plugin.validate_value = NULL,
.plugin.validate_tree = NULL,
.plugin.compare = lyplg_type_compare_bits,
.plugin.sort = lyplg_type_sort_bits,
.plugin.print = lyplg_type_print_bits,
.plugin.duplicate = lyplg_type_dup_bits,
.plugin.free = lyplg_type_free_bits,
},
{0}
}

Plugin information for bits type implementation.

Note that external plugins are supposed to use:

LYPLG_TYPES = {

Definition at line 498 of file bits.c.