Exemple #1
0
int main()
{
    char path[20] = {'\0'};
    void *ptr;

    sprintf(path, "/sys/kernel/notes");
    sysfs__read_build_id(path, ptr, 20);
    
    printf("main ptr: 0x%X\n",(unsigned int)ptr);
    printf("ptr: %s\n",(char *)ptr);

}
static int sysfs__fprintf_build_id(FILE *fp)
{
	u8 kallsyms_build_id[BUILD_ID_SIZE];
	char sbuild_id[BUILD_ID_SIZE * 2 + 1];

	if (sysfs__read_build_id("/sys/kernel/notes", kallsyms_build_id,
				 sizeof(kallsyms_build_id)) != 0)
		return -1;

	build_id__sprintf(kallsyms_build_id, sizeof(kallsyms_build_id),
			  sbuild_id);
	fprintf(fp, "%s\n", sbuild_id);
	return 0;
}
static int build_id_cache__kcore_buildid(const char *proc_dir, char *sbuildid)
{
	char root_dir[PATH_MAX];
	char notes[PATH_MAX];
	u8 build_id[BUILD_ID_SIZE];
	char *p;

	strlcpy(root_dir, proc_dir, sizeof(root_dir));

	p = strrchr(root_dir, '/');
	if (!p)
		return -1;
	*p = '\0';

	scnprintf(notes, sizeof(notes), "%s/sys/kernel/notes", root_dir);

	if (sysfs__read_build_id(notes, build_id, sizeof(build_id)))
		return -1;

	build_id__sprintf(build_id, sizeof(build_id), sbuildid);

	return 0;
}