xref: /minix3/minix/lib/libc/sys/gcov_flush_sys.c (revision 3ac58492b3d3709bad0ae9c60a137f63a90960b7)
1bad58c9cSBen Gras #include <lib.h>
2bad58c9cSBen Gras #include <string.h>
3bad58c9cSBen Gras #include <minix/gcov.h>
4bad58c9cSBen Gras 
5*3ac58492SDavid van Moolenbroek int
gcov_flush_svr(const char * label,char * buff,size_t buff_sz)6*3ac58492SDavid van Moolenbroek gcov_flush_svr(const char * label, char * buff, size_t buff_sz)
7bad58c9cSBen Gras {
8bad58c9cSBen Gras 	message m;
9bad58c9cSBen Gras 
10bad58c9cSBen Gras 	memset(&m, 0, sizeof(m));
11*3ac58492SDavid van Moolenbroek 	m.m_lc_vfs_gcov.label = (vir_bytes)label;
12*3ac58492SDavid van Moolenbroek 	m.m_lc_vfs_gcov.labellen = strlen(label) + 1;
13*3ac58492SDavid van Moolenbroek 	m.m_lc_vfs_gcov.buf = (vir_bytes)buff;
14*3ac58492SDavid van Moolenbroek 	m.m_lc_vfs_gcov.buflen = buff_sz;
15bad58c9cSBen Gras 
16*3ac58492SDavid van Moolenbroek 	/*
17*3ac58492SDavid van Moolenbroek 	 * Make the call to VFS.  VFS will call the gcov library, buffer the
18*3ac58492SDavid van Moolenbroek 	 * stdio requests, and copy the buffer to us.
19bad58c9cSBen Gras 	 */
20bad58c9cSBen Gras 	return _syscall(VFS_PROC_NR, VFS_GCOV_FLUSH, &m);
21bad58c9cSBen Gras }
22