blob: 41fb1c5d2e63cbfbff85649c9548cc44480b3f82 [file] [log] [blame]
/*
* Copyright 2022 The Chromium OS Authors. All rights reserved.
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#ifndef __BITFIELD_STREAM_H__
#define __BITFIELD_STREAM_H__
#include <stdlib.h>
#include <stdint.h>
typedef struct BitfieldStream {
const uint8_t* bitstream;
uint8_t bit_idx;
size_t byte_idx;
uint8_t bitstream_mask;
const uint8_t* bitstream_end_pos;
} BitfieldStream;
BitfieldStream bitfield_stream_init(const uint8_t* new_bitstream,
const uint8_t* new_end_pos);
void bitfield_stream_read_bits(BitfieldStream* bfs,
int num_bits,
void* dest_);
void bitfield_stream_skip_bits(BitfieldStream* bfs, size_t bits_to_skip);
#endif