author | bdonegan |
Tue, 21 Sep 2010 10:35:24 +0100 | |
changeset 15 | e37098e40f6a |
parent 2 | 0cb2248d0edc |
permissions | -rw-r--r-- |
2
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
1 |
/* GLIB - Library of useful routines for C programming |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
2 |
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
3 |
* |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
4 |
* This library is free software; you can redistribute it and/or |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
5 |
* modify it under the terms of the GNU Lesser General Public |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
6 |
* License as published by the Free Software Foundation; either |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
7 |
* version 2 of the License, or (at your option) any later version. |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
8 |
* |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
9 |
* This library is distributed in the hope that it will be useful, |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
10 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
11 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
12 |
* Lesser General Public License for more details. |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
13 |
* |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
14 |
* You should have received a copy of the GNU Lesser General Public |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
15 |
* License along with this library; if not, write to the |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
16 |
* Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
17 |
* Boston, MA 02111-1307, USA. |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
18 |
*/ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
19 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
20 |
/* |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
21 |
* Modified by the GLib Team and others 1997-2000. See the AUTHORS |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
22 |
* file for a list of people on the GLib Team. See the ChangeLog |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
23 |
* files for a list of changes. These files are distributed with |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
24 |
* GLib at ftp://ftp.gtk.org/pub/gtk/. |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
25 |
*/ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
26 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
27 |
/* |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
28 |
* MT safe |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
29 |
*/ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
30 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
31 |
#include "config.h" |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
32 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
33 |
#include <stdlib.h> |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
34 |
#include <string.h> |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
35 |
#include <signal.h> |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
36 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
37 |
#include "glib.h" |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
38 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
39 |
/* notes on macros: |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
40 |
* if ENABLE_GC_FRIENDLY is defined, freed memory should be 0-wiped. |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
41 |
*/ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
42 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
43 |
#define MEM_PROFILE_TABLE_SIZE 4096 |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
44 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
45 |
#define MEM_AREA_SIZE 4L |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
46 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
47 |
static guint mem_chunk_recursion = 0; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
48 |
# define MEM_CHUNK_ROUTINE_COUNT() (mem_chunk_recursion) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
49 |
# define ENTER_MEM_CHUNK_ROUTINE() (mem_chunk_recursion = MEM_CHUNK_ROUTINE_COUNT () + 1) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
50 |
# define LEAVE_MEM_CHUNK_ROUTINE() (mem_chunk_recursion = MEM_CHUNK_ROUTINE_COUNT () - 1) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
51 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
52 |
/* --- old memchunk prototypes --- */ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
53 |
void old_mem_chunks_init (void); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
54 |
GMemChunk* old_mem_chunk_new (const gchar *name, |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
55 |
gint atom_size, |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
56 |
gulong area_size, |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
57 |
gint type); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
58 |
void old_mem_chunk_destroy (GMemChunk *mem_chunk); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
59 |
gpointer old_mem_chunk_alloc (GMemChunk *mem_chunk); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
60 |
gpointer old_mem_chunk_alloc0 (GMemChunk *mem_chunk); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
61 |
void old_mem_chunk_free (GMemChunk *mem_chunk, |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
62 |
gpointer mem); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
63 |
void old_mem_chunk_clean (GMemChunk *mem_chunk); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
64 |
void old_mem_chunk_reset (GMemChunk *mem_chunk); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
65 |
void old_mem_chunk_print (GMemChunk *mem_chunk); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
66 |
void old_mem_chunk_info (void); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
67 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
68 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
69 |
/* --- MemChunks --- */ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
70 |
#ifndef G_ALLOC_AND_FREE |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
71 |
typedef struct _GAllocator GAllocator; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
72 |
typedef struct _GMemChunk GMemChunk; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
73 |
#define G_ALLOC_ONLY 1 |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
74 |
#define G_ALLOC_AND_FREE 2 |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
75 |
#endif |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
76 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
77 |
typedef struct _GFreeAtom GFreeAtom; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
78 |
typedef struct _GMemArea GMemArea; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
79 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
80 |
struct _GFreeAtom |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
81 |
{ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
82 |
GFreeAtom *next; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
83 |
}; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
84 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
85 |
struct _GMemArea |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
86 |
{ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
87 |
GMemArea *next; /* the next mem area */ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
88 |
GMemArea *prev; /* the previous mem area */ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
89 |
gulong index; /* the current index into the "mem" array */ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
90 |
gulong free; /* the number of free bytes in this mem area */ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
91 |
gulong allocated; /* the number of atoms allocated from this area */ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
92 |
gulong mark; /* is this mem area marked for deletion */ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
93 |
gchar mem[MEM_AREA_SIZE]; /* the mem array from which atoms get allocated |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
94 |
* the actual size of this array is determined by |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
95 |
* the mem chunk "area_size". ANSI says that it |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
96 |
* must be declared to be the maximum size it |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
97 |
* can possibly be (even though the actual size |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
98 |
* may be less). |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
99 |
*/ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
100 |
}; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
101 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
102 |
struct _GMemChunk |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
103 |
{ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
104 |
const gchar *name; /* name of this MemChunk...used for debugging output */ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
105 |
gint type; /* the type of MemChunk: ALLOC_ONLY or ALLOC_AND_FREE */ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
106 |
gint num_mem_areas; /* the number of memory areas */ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
107 |
gint num_marked_areas; /* the number of areas marked for deletion */ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
108 |
guint atom_size; /* the size of an atom */ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
109 |
gulong area_size; /* the size of a memory area */ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
110 |
GMemArea *mem_area; /* the current memory area */ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
111 |
GMemArea *mem_areas; /* a list of all the mem areas owned by this chunk */ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
112 |
GMemArea *free_mem_area; /* the free area...which is about to be destroyed */ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
113 |
GFreeAtom *free_atoms; /* the free atoms list */ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
114 |
GTree *mem_tree; /* tree of mem areas sorted by memory address */ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
115 |
GMemChunk *next; /* pointer to the next chunk */ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
116 |
GMemChunk *prev; /* pointer to the previous chunk */ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
117 |
}; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
118 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
119 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
120 |
static gulong old_mem_chunk_compute_size (gulong size, |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
121 |
gulong min_size) G_GNUC_CONST; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
122 |
static gint old_mem_chunk_area_compare (GMemArea *a, |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
123 |
GMemArea *b); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
124 |
static gint old_mem_chunk_area_search (GMemArea *a, |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
125 |
gchar *addr); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
126 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
127 |
/* here we can't use StaticMutexes, as they depend upon a working |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
128 |
* g_malloc, the same holds true for StaticPrivate |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
129 |
*/ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
130 |
static GMutex *mem_chunks_lock = NULL; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
131 |
static GMemChunk *mem_chunks = NULL; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
132 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
133 |
void |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
134 |
old_mem_chunks_init (void) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
135 |
{ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
136 |
mem_chunks_lock = g_mutex_new (); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
137 |
} |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
138 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
139 |
GMemChunk* |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
140 |
old_mem_chunk_new (const gchar *name, |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
141 |
gint atom_size, |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
142 |
gulong area_size, |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
143 |
gint type) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
144 |
{ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
145 |
GMemChunk *mem_chunk; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
146 |
gulong rarea_size; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
147 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
148 |
g_return_val_if_fail (atom_size > 0, NULL); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
149 |
g_return_val_if_fail (area_size >= atom_size, NULL); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
150 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
151 |
ENTER_MEM_CHUNK_ROUTINE (); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
152 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
153 |
area_size = (area_size + atom_size - 1) / atom_size; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
154 |
area_size *= atom_size; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
155 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
156 |
mem_chunk = g_new (GMemChunk, 1); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
157 |
mem_chunk->name = name; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
158 |
mem_chunk->type = type; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
159 |
mem_chunk->num_mem_areas = 0; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
160 |
mem_chunk->num_marked_areas = 0; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
161 |
mem_chunk->mem_area = NULL; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
162 |
mem_chunk->free_mem_area = NULL; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
163 |
mem_chunk->free_atoms = NULL; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
164 |
mem_chunk->mem_tree = NULL; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
165 |
mem_chunk->mem_areas = NULL; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
166 |
mem_chunk->atom_size = atom_size; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
167 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
168 |
if (mem_chunk->type == G_ALLOC_AND_FREE) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
169 |
mem_chunk->mem_tree = g_tree_new ((GCompareFunc) old_mem_chunk_area_compare); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
170 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
171 |
if (mem_chunk->atom_size % G_MEM_ALIGN) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
172 |
mem_chunk->atom_size += G_MEM_ALIGN - (mem_chunk->atom_size % G_MEM_ALIGN); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
173 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
174 |
rarea_size = area_size + sizeof (GMemArea) - MEM_AREA_SIZE; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
175 |
rarea_size = old_mem_chunk_compute_size (rarea_size, atom_size + sizeof (GMemArea) - MEM_AREA_SIZE); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
176 |
mem_chunk->area_size = rarea_size - (sizeof (GMemArea) - MEM_AREA_SIZE); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
177 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
178 |
g_mutex_lock (mem_chunks_lock); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
179 |
mem_chunk->next = mem_chunks; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
180 |
mem_chunk->prev = NULL; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
181 |
if (mem_chunks) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
182 |
mem_chunks->prev = mem_chunk; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
183 |
mem_chunks = mem_chunk; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
184 |
g_mutex_unlock (mem_chunks_lock); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
185 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
186 |
LEAVE_MEM_CHUNK_ROUTINE (); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
187 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
188 |
return mem_chunk; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
189 |
} |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
190 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
191 |
void |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
192 |
old_mem_chunk_destroy (GMemChunk *mem_chunk) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
193 |
{ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
194 |
GMemArea *mem_areas; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
195 |
GMemArea *temp_area; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
196 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
197 |
g_return_if_fail (mem_chunk != NULL); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
198 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
199 |
ENTER_MEM_CHUNK_ROUTINE (); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
200 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
201 |
mem_areas = mem_chunk->mem_areas; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
202 |
while (mem_areas) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
203 |
{ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
204 |
temp_area = mem_areas; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
205 |
mem_areas = mem_areas->next; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
206 |
g_free (temp_area); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
207 |
} |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
208 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
209 |
g_mutex_lock (mem_chunks_lock); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
210 |
if (mem_chunk->next) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
211 |
mem_chunk->next->prev = mem_chunk->prev; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
212 |
if (mem_chunk->prev) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
213 |
mem_chunk->prev->next = mem_chunk->next; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
214 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
215 |
if (mem_chunk == mem_chunks) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
216 |
mem_chunks = mem_chunks->next; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
217 |
g_mutex_unlock (mem_chunks_lock); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
218 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
219 |
if (mem_chunk->type == G_ALLOC_AND_FREE) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
220 |
g_tree_destroy (mem_chunk->mem_tree); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
221 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
222 |
g_free (mem_chunk); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
223 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
224 |
LEAVE_MEM_CHUNK_ROUTINE (); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
225 |
} |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
226 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
227 |
gpointer |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
228 |
old_mem_chunk_alloc (GMemChunk *mem_chunk) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
229 |
{ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
230 |
GMemArea *temp_area; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
231 |
gpointer mem; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
232 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
233 |
ENTER_MEM_CHUNK_ROUTINE (); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
234 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
235 |
g_return_val_if_fail (mem_chunk != NULL, NULL); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
236 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
237 |
while (mem_chunk->free_atoms) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
238 |
{ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
239 |
/* Get the first piece of memory on the "free_atoms" list. |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
240 |
* We can go ahead and destroy the list node we used to keep |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
241 |
* track of it with and to update the "free_atoms" list to |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
242 |
* point to its next element. |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
243 |
*/ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
244 |
mem = mem_chunk->free_atoms; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
245 |
mem_chunk->free_atoms = mem_chunk->free_atoms->next; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
246 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
247 |
/* Determine which area this piece of memory is allocated from */ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
248 |
temp_area = g_tree_search (mem_chunk->mem_tree, |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
249 |
(GCompareFunc) old_mem_chunk_area_search, |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
250 |
mem); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
251 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
252 |
/* If the area has been marked, then it is being destroyed. |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
253 |
* (ie marked to be destroyed). |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
254 |
* We check to see if all of the segments on the free list that |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
255 |
* reference this area have been removed. This occurs when |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
256 |
* the ammount of free memory is less than the allocatable size. |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
257 |
* If the chunk should be freed, then we place it in the "free_mem_area". |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
258 |
* This is so we make sure not to free the mem area here and then |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
259 |
* allocate it again a few lines down. |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
260 |
* If we don't allocate a chunk a few lines down then the "free_mem_area" |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
261 |
* will be freed. |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
262 |
* If there is already a "free_mem_area" then we'll just free this mem area. |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
263 |
*/ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
264 |
if (temp_area->mark) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
265 |
{ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
266 |
/* Update the "free" memory available in that area */ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
267 |
temp_area->free += mem_chunk->atom_size; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
268 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
269 |
if (temp_area->free == mem_chunk->area_size) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
270 |
{ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
271 |
if (temp_area == mem_chunk->mem_area) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
272 |
mem_chunk->mem_area = NULL; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
273 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
274 |
if (mem_chunk->free_mem_area) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
275 |
{ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
276 |
mem_chunk->num_mem_areas -= 1; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
277 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
278 |
if (temp_area->next) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
279 |
temp_area->next->prev = temp_area->prev; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
280 |
if (temp_area->prev) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
281 |
temp_area->prev->next = temp_area->next; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
282 |
if (temp_area == mem_chunk->mem_areas) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
283 |
mem_chunk->mem_areas = mem_chunk->mem_areas->next; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
284 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
285 |
if (mem_chunk->type == G_ALLOC_AND_FREE) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
286 |
g_tree_remove (mem_chunk->mem_tree, temp_area); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
287 |
g_free (temp_area); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
288 |
} |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
289 |
else |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
290 |
mem_chunk->free_mem_area = temp_area; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
291 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
292 |
mem_chunk->num_marked_areas -= 1; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
293 |
} |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
294 |
} |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
295 |
else |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
296 |
{ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
297 |
/* Update the number of allocated atoms count. |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
298 |
*/ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
299 |
temp_area->allocated += 1; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
300 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
301 |
/* The area wasn't marked...return the memory |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
302 |
*/ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
303 |
goto outa_here; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
304 |
} |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
305 |
} |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
306 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
307 |
/* If there isn't a current mem area or the current mem area is out of space |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
308 |
* then allocate a new mem area. We'll first check and see if we can use |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
309 |
* the "free_mem_area". Otherwise we'll just malloc the mem area. |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
310 |
*/ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
311 |
if ((!mem_chunk->mem_area) || |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
312 |
((mem_chunk->mem_area->index + mem_chunk->atom_size) > mem_chunk->area_size)) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
313 |
{ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
314 |
if (mem_chunk->free_mem_area) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
315 |
{ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
316 |
mem_chunk->mem_area = mem_chunk->free_mem_area; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
317 |
mem_chunk->free_mem_area = NULL; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
318 |
} |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
319 |
else |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
320 |
{ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
321 |
#ifdef ENABLE_GC_FRIENDLY |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
322 |
mem_chunk->mem_area = (GMemArea*) g_malloc0 (sizeof (GMemArea) - |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
323 |
MEM_AREA_SIZE + |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
324 |
mem_chunk->area_size); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
325 |
#else /* !ENABLE_GC_FRIENDLY */ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
326 |
mem_chunk->mem_area = (GMemArea*) g_malloc (sizeof (GMemArea) - |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
327 |
MEM_AREA_SIZE + |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
328 |
mem_chunk->area_size); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
329 |
#endif /* ENABLE_GC_FRIENDLY */ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
330 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
331 |
mem_chunk->num_mem_areas += 1; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
332 |
mem_chunk->mem_area->next = mem_chunk->mem_areas; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
333 |
mem_chunk->mem_area->prev = NULL; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
334 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
335 |
if (mem_chunk->mem_areas) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
336 |
mem_chunk->mem_areas->prev = mem_chunk->mem_area; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
337 |
mem_chunk->mem_areas = mem_chunk->mem_area; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
338 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
339 |
if (mem_chunk->type == G_ALLOC_AND_FREE) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
340 |
g_tree_insert (mem_chunk->mem_tree, mem_chunk->mem_area, mem_chunk->mem_area); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
341 |
} |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
342 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
343 |
mem_chunk->mem_area->index = 0; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
344 |
mem_chunk->mem_area->free = mem_chunk->area_size; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
345 |
mem_chunk->mem_area->allocated = 0; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
346 |
mem_chunk->mem_area->mark = 0; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
347 |
} |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
348 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
349 |
/* Get the memory and modify the state variables appropriately. |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
350 |
*/ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
351 |
mem = (gpointer) &mem_chunk->mem_area->mem[mem_chunk->mem_area->index]; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
352 |
mem_chunk->mem_area->index += mem_chunk->atom_size; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
353 |
mem_chunk->mem_area->free -= mem_chunk->atom_size; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
354 |
mem_chunk->mem_area->allocated += 1; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
355 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
356 |
outa_here: |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
357 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
358 |
LEAVE_MEM_CHUNK_ROUTINE (); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
359 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
360 |
return mem; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
361 |
} |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
362 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
363 |
gpointer |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
364 |
old_mem_chunk_alloc0 (GMemChunk *mem_chunk) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
365 |
{ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
366 |
gpointer mem; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
367 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
368 |
mem = old_mem_chunk_alloc (mem_chunk); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
369 |
if (mem) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
370 |
{ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
371 |
memset (mem, 0, mem_chunk->atom_size); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
372 |
} |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
373 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
374 |
return mem; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
375 |
} |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
376 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
377 |
void |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
378 |
old_mem_chunk_free (GMemChunk *mem_chunk, |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
379 |
gpointer mem) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
380 |
{ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
381 |
GMemArea *temp_area; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
382 |
GFreeAtom *free_atom; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
383 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
384 |
g_return_if_fail (mem_chunk != NULL); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
385 |
g_return_if_fail (mem != NULL); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
386 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
387 |
ENTER_MEM_CHUNK_ROUTINE (); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
388 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
389 |
#ifdef ENABLE_GC_FRIENDLY |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
390 |
memset (mem, 0, mem_chunk->atom_size); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
391 |
#endif /* ENABLE_GC_FRIENDLY */ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
392 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
393 |
/* Don't do anything if this is an ALLOC_ONLY chunk |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
394 |
*/ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
395 |
if (mem_chunk->type == G_ALLOC_AND_FREE) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
396 |
{ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
397 |
/* Place the memory on the "free_atoms" list |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
398 |
*/ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
399 |
free_atom = (GFreeAtom*) mem; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
400 |
free_atom->next = mem_chunk->free_atoms; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
401 |
mem_chunk->free_atoms = free_atom; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
402 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
403 |
temp_area = g_tree_search (mem_chunk->mem_tree, |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
404 |
(GCompareFunc) old_mem_chunk_area_search, |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
405 |
mem); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
406 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
407 |
temp_area->allocated -= 1; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
408 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
409 |
if (temp_area->allocated == 0) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
410 |
{ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
411 |
temp_area->mark = 1; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
412 |
mem_chunk->num_marked_areas += 1; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
413 |
} |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
414 |
} |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
415 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
416 |
LEAVE_MEM_CHUNK_ROUTINE (); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
417 |
} |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
418 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
419 |
/* This doesn't free the free_area if there is one */ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
420 |
void |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
421 |
old_mem_chunk_clean (GMemChunk *mem_chunk) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
422 |
{ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
423 |
GMemArea *mem_area; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
424 |
GFreeAtom *prev_free_atom; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
425 |
GFreeAtom *temp_free_atom; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
426 |
gpointer mem; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
427 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
428 |
g_return_if_fail (mem_chunk != NULL); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
429 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
430 |
ENTER_MEM_CHUNK_ROUTINE (); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
431 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
432 |
if (mem_chunk->type == G_ALLOC_AND_FREE) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
433 |
{ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
434 |
prev_free_atom = NULL; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
435 |
temp_free_atom = mem_chunk->free_atoms; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
436 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
437 |
while (temp_free_atom) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
438 |
{ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
439 |
mem = (gpointer) temp_free_atom; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
440 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
441 |
mem_area = g_tree_search (mem_chunk->mem_tree, |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
442 |
(GCompareFunc) old_mem_chunk_area_search, |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
443 |
mem); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
444 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
445 |
/* If this mem area is marked for destruction then delete the |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
446 |
* area and list node and decrement the free mem. |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
447 |
*/ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
448 |
if (mem_area->mark) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
449 |
{ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
450 |
if (prev_free_atom) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
451 |
prev_free_atom->next = temp_free_atom->next; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
452 |
else |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
453 |
mem_chunk->free_atoms = temp_free_atom->next; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
454 |
temp_free_atom = temp_free_atom->next; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
455 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
456 |
mem_area->free += mem_chunk->atom_size; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
457 |
if (mem_area->free == mem_chunk->area_size) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
458 |
{ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
459 |
mem_chunk->num_mem_areas -= 1; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
460 |
mem_chunk->num_marked_areas -= 1; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
461 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
462 |
if (mem_area->next) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
463 |
mem_area->next->prev = mem_area->prev; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
464 |
if (mem_area->prev) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
465 |
mem_area->prev->next = mem_area->next; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
466 |
if (mem_area == mem_chunk->mem_areas) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
467 |
mem_chunk->mem_areas = mem_chunk->mem_areas->next; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
468 |
if (mem_area == mem_chunk->mem_area) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
469 |
mem_chunk->mem_area = NULL; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
470 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
471 |
if (mem_chunk->type == G_ALLOC_AND_FREE) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
472 |
g_tree_remove (mem_chunk->mem_tree, mem_area); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
473 |
g_free (mem_area); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
474 |
} |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
475 |
} |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
476 |
else |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
477 |
{ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
478 |
prev_free_atom = temp_free_atom; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
479 |
temp_free_atom = temp_free_atom->next; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
480 |
} |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
481 |
} |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
482 |
} |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
483 |
LEAVE_MEM_CHUNK_ROUTINE (); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
484 |
} |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
485 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
486 |
void |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
487 |
old_mem_chunk_reset (GMemChunk *mem_chunk) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
488 |
{ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
489 |
GMemArea *mem_areas; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
490 |
GMemArea *temp_area; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
491 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
492 |
g_return_if_fail (mem_chunk != NULL); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
493 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
494 |
ENTER_MEM_CHUNK_ROUTINE (); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
495 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
496 |
mem_areas = mem_chunk->mem_areas; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
497 |
mem_chunk->num_mem_areas = 0; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
498 |
mem_chunk->mem_areas = NULL; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
499 |
mem_chunk->mem_area = NULL; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
500 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
501 |
while (mem_areas) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
502 |
{ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
503 |
temp_area = mem_areas; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
504 |
mem_areas = mem_areas->next; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
505 |
g_free (temp_area); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
506 |
} |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
507 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
508 |
mem_chunk->free_atoms = NULL; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
509 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
510 |
if (mem_chunk->mem_tree) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
511 |
{ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
512 |
g_tree_destroy (mem_chunk->mem_tree); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
513 |
mem_chunk->mem_tree = g_tree_new ((GCompareFunc) old_mem_chunk_area_compare); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
514 |
} |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
515 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
516 |
LEAVE_MEM_CHUNK_ROUTINE (); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
517 |
} |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
518 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
519 |
void |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
520 |
old_mem_chunk_print (GMemChunk *mem_chunk) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
521 |
{ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
522 |
GMemArea *mem_areas; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
523 |
gulong mem; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
524 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
525 |
g_return_if_fail (mem_chunk != NULL); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
526 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
527 |
mem_areas = mem_chunk->mem_areas; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
528 |
mem = 0; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
529 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
530 |
while (mem_areas) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
531 |
{ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
532 |
mem += mem_chunk->area_size - mem_areas->free; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
533 |
mem_areas = mem_areas->next; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
534 |
} |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
535 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
536 |
g_log (G_LOG_DOMAIN, G_LOG_LEVEL_INFO, |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
537 |
"%s: %ld bytes using %d mem areas", |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
538 |
mem_chunk->name, mem, mem_chunk->num_mem_areas); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
539 |
} |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
540 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
541 |
void |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
542 |
old_mem_chunk_info (void) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
543 |
{ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
544 |
GMemChunk *mem_chunk; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
545 |
gint count; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
546 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
547 |
count = 0; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
548 |
g_mutex_lock (mem_chunks_lock); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
549 |
mem_chunk = mem_chunks; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
550 |
while (mem_chunk) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
551 |
{ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
552 |
count += 1; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
553 |
mem_chunk = mem_chunk->next; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
554 |
} |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
555 |
g_mutex_unlock (mem_chunks_lock); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
556 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
557 |
g_log (G_LOG_DOMAIN, G_LOG_LEVEL_INFO, "%d mem chunks", count); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
558 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
559 |
g_mutex_lock (mem_chunks_lock); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
560 |
mem_chunk = mem_chunks; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
561 |
g_mutex_unlock (mem_chunks_lock); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
562 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
563 |
while (mem_chunk) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
564 |
{ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
565 |
old_mem_chunk_print ((GMemChunk*) mem_chunk); |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
566 |
mem_chunk = mem_chunk->next; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
567 |
} |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
568 |
} |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
569 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
570 |
static gulong |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
571 |
old_mem_chunk_compute_size (gulong size, |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
572 |
gulong min_size) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
573 |
{ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
574 |
gulong power_of_2; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
575 |
gulong lower, upper; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
576 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
577 |
power_of_2 = 16; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
578 |
while (power_of_2 < size) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
579 |
power_of_2 <<= 1; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
580 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
581 |
lower = power_of_2 >> 1; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
582 |
upper = power_of_2; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
583 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
584 |
if (size - lower < upper - size && lower >= min_size) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
585 |
return lower; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
586 |
else |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
587 |
return upper; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
588 |
} |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
589 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
590 |
static gint |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
591 |
old_mem_chunk_area_compare (GMemArea *a, |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
592 |
GMemArea *b) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
593 |
{ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
594 |
if (a->mem > b->mem) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
595 |
return 1; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
596 |
else if (a->mem < b->mem) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
597 |
return -1; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
598 |
return 0; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
599 |
} |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
600 |
|
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
601 |
static gint |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
602 |
old_mem_chunk_area_search (GMemArea *a, |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
603 |
gchar *addr) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
604 |
{ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
605 |
if (a->mem <= addr) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
606 |
{ |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
607 |
if (addr < &a->mem[a->index]) |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
608 |
return 0; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
609 |
return 1; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
610 |
} |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
611 |
return -1; |
0cb2248d0edc
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
shrivatsa
parents:
diff
changeset
|
612 |
} |