110e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project/** 210e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * @file opd_anon.h 310e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * Anonymous region handling. 410e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * 510e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * @remark Copyright 2005 OProfile authors 610e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * @remark Read the file COPYING 710e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * 810e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * @author John Levon 910e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project */ 1010e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project 1110e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project#ifndef OPD_ANON_H 1210e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project#define OPD_ANON_H 1310e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project 1410e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project#include "op_types.h" 1510e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project#include "op_list.h" 1610e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project 1710e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project#include "opd_cookie.h" 1810e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project 1910e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project#include <sys/types.h> 2010e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project 2110e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Projectstruct transient; 2210e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project 2310e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project/** 2410e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * Shift useful bits into play for VMA hashing. 2510e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project */ 2610e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project#define VMA_SHIFT 13 2710e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project 2810e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project/* Maximum size of the image name considered */ 2910e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project#define MAX_IMAGE_NAME_SIZE 20 3010e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project 3110e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Projectstruct anon_mapping { 3210e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project /** start of the mapping */ 3310e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project vma_t start; 3410e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project /** end of the mapping */ 3510e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project vma_t end; 3610e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project /** tgid of the app */ 3710e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project pid_t tgid; 3810e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project /** cookie of the app */ 3910e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project cookie_t app_cookie; 4010e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project /** hash list */ 4110e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project struct list_head list; 4210e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project /** lru list */ 4310e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project struct list_head lru_list; 4410e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project char name[MAX_IMAGE_NAME_SIZE+1]; 4510e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project}; 4610e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project 4710e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project/** 4810e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * Try to find an anonymous mapping for the given pc/tgid pair. 4910e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project */ 5010e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Projectstruct anon_mapping * find_anon_mapping(struct transient *); 5110e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project 5210e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Projectvoid anon_init(void); 5310e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project 5410e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project#endif /* OPD_ANON_H */ 55