koboldcpp/include/cuda/nv_decode.h

58 lines
1.9 KiB
C

/*
* NVIDIA_COPYRIGHT_BEGIN
*
* Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved.
*
* NVIDIA_COPYRIGHT_END
*/
/*
nv_decode.h -- API for the CUDA C++ name demangler.
*/
/* Avoid including these declarations more than once: */
#ifndef DECODE_H
#define DECODE_H 1
#ifdef __cplusplus
extern "C" {
#endif
/* Cuda C++ demangling API.
Parameters:
id: Input mangled string
output_buffer: Pointer to where the demangled buffer will
be stored. This memory must be allocated with malloc.
If output-buffer is NULL, memory will be malloc'd to
store the demangled name and returned through the
function return value.
If the output-buffer is too small, it is expanded using
realloc.
length: It is necessary to provide the size of the output buffer if the user
is providing pre-allocated memory. This is needed by the demangler
in case the size needs to be reallocated.
If the length is non-null, the length of the demangled buffer
is placed in length.
status: *status is set to one of the following values. 0 - The
demangling operation succeeded; -1 - A memory allocation
failure occurred. -2 - Not a valid mangled id. -3 - An
input validation failure has occurred (one or more
arguments are invalid).
Return Value: A pointer to the start of the NUL-terminated demangled name,
or NULL if the demangling fails. The caller is responsible for
deallocating this memory using free.
Note: This function is thread-safe.
*/
char* __cu_demangle(const char *id,
char *output_buffer,
size_t *length,
int *status);
#ifdef __cplusplus
}
#endif
#endif /* ifndef DECODE_H */