110e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project/**
210e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * @file opd_cookie.h
310e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * cookie -> name cache
410e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project *
510e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * @remark Copyright 2002, 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_COOKIE_H
1210e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project#define OPD_COOKIE_H
1310e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project
1410e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Projecttypedef unsigned long long cookie_t;
1510e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project
1610e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project#define INVALID_COOKIE ~0LLU
1710e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project#define NO_COOKIE 0LLU
1810e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project
1910e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project/**
2010e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * Shift value to remove trailing zero on a dcookie value, 7 is sufficient
2110e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * for most architecture
2210e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project */
2310e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project#define DCOOKIE_SHIFT 7
2410e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project
2510e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project/**
2610e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * Return the name of the given dcookie. May return
2710e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * NULL on failure.
2810e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project */
2910e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Projectchar const * find_cookie(cookie_t cookie);
3010e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project
3110e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project/** return true if this cookie should be ignored */
3210e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Projectint is_cookie_ignored(cookie_t cookie);
3310e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project
3410e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project/** give a textual description of the cookie */
3510e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Projectchar const * verbose_cookie(cookie_t cookie);
3610e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project
3710e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Projectvoid cookie_init(void);
3810e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project
3910e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project#endif /* OPD_COOKIE_H */
40