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
static uint64_t decodeULEB128(const uint8_t *p, unsigned *n)
Utility function to decode a ULEB128 value.
Definition: LEB128.h:24
void * p
Definition: libc.cpp:67
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
int n
Definition: mipsasm.c:19
unsigned long uint64_t
Definition: sftypes.h:28
unsigned char uint8_t
Definition: sftypes.h:31