opd_image.c File Reference

Management of binary images. More...

#include "opd_image.h"
#include "opd_printf.h"
#include "opd_sample_files.h"
#include "opd_24_stats.h"
#include "oprofiled.h"
#include "op_file.h"
#include "op_config_24.h"
#include "op_libiberty.h"
#include "op_string.h"
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
Include dependency graph for opd_image.c:

Defines

#define OPD_IMAGE_HASH_SIZE   2048

Functions

void opd_init_images (void)
 initialize opd_image container
int opd_get_nr_images (void)
 opd_get_nr_images - return number of images
void opd_delete_image (struct opd_image *image)
void opd_for_each_image (opd_image_cb image_cb)
struct opd_imageopd_get_image (char const *name, char const *app_name, int kernel, pid_t tid, pid_t tgid)
 opd_get_image - get an image from the image structure
struct opd_imageopd_get_kernel_image (char const *name, char const *app_name, pid_t tid, pid_t tgid)
 opd_get_kernel_image - get a kernel image

Detailed Description

Management of binary images.

Remarks:
Copyright 2002 OProfile authors
Read the file COPYING
Author:
John Levon
Philippe Elie

Define Documentation

#define OPD_IMAGE_HASH_SIZE   2048

Function Documentation

void opd_delete_image ( struct opd_image image  ) 
Parameters:
image the image pointer

Decrement reference count of image, if reference count is zero flush and close the samples files then freeze all memory belonging to this image.

References opd_image::app_name, opd_image::hash_next, opd_image::kernel, opd_image::name, opd_close_image_samples_files(), opd_image::ref_count, opd_image::tgid, opd_image::tid, verbprintf, and vmisc.

Referenced by opd_kill_maps().

void opd_for_each_image ( opd_image_cb  imagecb  ) 
Parameters:
imagecb callback to apply onto each existing image struct

the callback receive a struct opd_image * (not a const struct) and is allowed to freeze the image struct itself.

References opd_image::hash_next, list_entry, list_for_each_safe, and OPD_IMAGE_HASH_SIZE.

struct opd_image* opd_get_image ( char const *  name,
char const *  app_name,
int  kernel,
pid_t  tid,
pid_t  tgid 
) [read]

opd_get_image - get an image from the image structure

Parameters:
name name of image
app_name the application name where belongs this image
kernel is the image a kernel/module image
tid thread id
tgid thread group id

Get the image specified by the file name name from the image structure. If it is not present, the image is added to the structure. In either case, the image number is returned.

Referenced by opd_get_kernel_image(), opd_handle_fork(), and opd_handle_mapping().

struct opd_image* opd_get_kernel_image ( char const *  name,
char const *  app_name,
pid_t  tid,
pid_t  tgid 
) [read]

opd_get_kernel_image - get a kernel image

Parameters:
name of image
app_name application owner of this kernel image. non-null only when separate_kernel_sample != 0
tid thread id
tgid thread group id

Create and initialise an image adding it to the image lists and to image hash list. Note than at creation reference count is zero, it's caller responsabilities to incr this count.

References opd_get_image().

Referenced by opd_add_kernel_map(), and opd_init_kernel_image().

int opd_get_nr_images ( void   ) 

opd_get_nr_images - return number of images

Referenced by opd_print_24_stats().

void opd_init_images ( void   ) 

initialize opd_image container

References OPD_IMAGE_HASH_SIZE.


Generated on 27 Aug 2012 for oprofile by  doxygen 1.6.1