Lines Matching refs:BufferIO
36 static void llvmInitBufferIO(ProfBufferIO *BufferIO, WriterCallback FileWriter,
38 BufferIO->File = File;
39 BufferIO->FileWriter = FileWriter;
40 BufferIO->BufferStart = Buffer;
41 BufferIO->BufferSz = BufferSz;
42 BufferIO->CurOffset = 0;
47 ProfBufferIO *BufferIO = (ProfBufferIO *)CallocHook(1, sizeof(ProfBufferIO));
50 FreeHook(BufferIO);
53 llvmInitBufferIO(BufferIO, FileWriter, File, Buffer, BufferSz);
54 return BufferIO;
57 COMPILER_RT_VISIBILITY void llvmDeleteBufferIO(ProfBufferIO *BufferIO) {
58 FreeHook(BufferIO->BufferStart);
59 FreeHook(BufferIO);
63 llvmBufferIOWrite(ProfBufferIO *BufferIO, const uint8_t *Data, uint32_t Size) {
65 if (Size + BufferIO->CurOffset > BufferIO->BufferSz) {
66 if (llvmBufferIOFlush(BufferIO) != 0)
71 if (Size > BufferIO->BufferSz) {
72 if (BufferIO->FileWriter(IO, 1, &BufferIO->File))
76 uint8_t *Buffer = BufferIO->BufferStart + BufferIO->CurOffset;
78 BufferIO->CurOffset = Buffer - BufferIO->BufferStart;
83 COMPILER_RT_VISIBILITY int llvmBufferIOFlush(ProfBufferIO *BufferIO) {
84 if (BufferIO->CurOffset) {
86 {BufferIO->BufferStart, sizeof(uint8_t), BufferIO->CurOffset}};
87 if (BufferIO->FileWriter(IO, 1, &BufferIO->File))
89 BufferIO->CurOffset = 0;
114 ProfBufferIO *BufferIO;
121 BufferIO = llvmCreateBufferIO(Writer, WriterCtx, BufferSz);
127 if (llvmBufferIOWrite(BufferIO, (const uint8_t *)CurVData,
132 if (llvmBufferIOFlush(BufferIO) != 0)
134 llvmDeleteBufferIO(BufferIO);