Rizin
unix-like reverse engineering framework and cli tools
LEB128.h
Go to the documentation of this file.
1
//===- llvm/Support/LEB128.h - [SU]LEB128 utility functions -----*- C++ -*-===//
2
//
3
// The LLVM Compiler Infrastructure
4
//
5
// This file is distributed under the University of Illinois Open Source
6
// License. See LICENSE.TXT for details.
7
//
8
//===----------------------------------------------------------------------===//
9
//
10
// This file declares some utility functions for encoding SLEB128 and
11
// ULEB128 values.
12
//
13
//===----------------------------------------------------------------------===//
14
15
/* Capstone Disassembly Engine */
16
/* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2015 */
17
18
#ifndef CS_LLVM_SUPPORT_LEB128_H
19
#define CS_LLVM_SUPPORT_LEB128_H
20
21
#include "include/capstone/capstone.h"
22
24
static
inline
uint64_t
decodeULEB128
(
const
uint8_t
*
p
,
unsigned
*
n
)
25
{
26
const
uint8_t
*orig_p =
p
;
27
uint64_t
Value = 0;
28
unsigned
Shift = 0;
29
do
{
30
Value += (
uint64_t
)(*
p
& 0x7f) << Shift;
31
Shift += 7;
32
}
while
(*
p
++ >= 128);
33
if
(
n
)
34
*
n
= (
unsigned
)(
p
- orig_p);
35
return
Value;
36
}
37
38
#endif
// LLVM_SYSTEM_LEB128_H
decodeULEB128
static uint64_t decodeULEB128(const uint8_t *p, unsigned *n)
Utility function to decode a ULEB128 value.
Definition:
LEB128.h:24
p
void * p
Definition:
libc.cpp:67
unsigned
static void struct sockaddr socklen_t static fromlen static backlog static fork char char char static envp int struct rusage static rusage struct utsname static buf struct sembuf unsigned
Definition:
sflib.h:97
n
int n
Definition:
mipsasm.c:19
uint64_t
unsigned long uint64_t
Definition:
sftypes.h:28
uint8_t
unsigned char uint8_t
Definition:
sftypes.h:31
subprojects
capstone-bundled
LEB128.h
Generated by
1.9.1