My Project
Data Structures | Functions | Variables
omStats.h File Reference

Go to the source code of this file.

Data Structures

struct  omInfo_t
 

Functions

struct omInfo_s omGetInfo (void)
 
void omUpdateInfo (void)
 
void omInitInfo (void)
 
void omPrintStats (FILE *fd)
 
void omPrintInfo (FILE *fd)
 

Variables

struct omInfo_s om_Info
 
unsigned long om_SbrkInit
 

Data Structure Documentation

◆ omInfo_s

struct omInfo_s

Definition at line 10 of file omStats.h.

Data Fields
long AvailBytes
long AvailBytesFromValloc
long AvailBytesMalloc
long AvailPages
long CurrentBytesFromMalloc
long CurrentBytesFromValloc
long CurrentBytesMmap
long CurrentBytesSbrk
long CurrentBytesSystem
long CurrentRegionsAlloc
long InternalUsedBytesMalloc
long MaxBytesFromMalloc
long MaxBytesFromValloc
long MaxBytesMmap
long MaxBytesSbrk
long MaxBytesSystem
long MaxPages
long MaxRegionsAlloc
long UsedBytes
long UsedBytesFromValloc
long UsedBytesMalloc
long UsedPages

Function Documentation

◆ omGetInfo()

struct omInfo_s omGetInfo ( void  )

Definition at line 112 of file omStats.c.

113 {
114  omUpdateInfo();
115  return om_Info;
116 }
void omUpdateInfo()
Definition: omStats.c:27
omInfo_t om_Info
Definition: omStats.c:16

◆ omInitInfo()

void omInitInfo ( void  )

Definition at line 20 of file omStats.c.

21 {
22 #ifdef HAVE_SBRK
23  om_SbrkInit = (unsigned long) sbrk(0);
24 #endif
25 }
unsigned long om_SbrkInit
Definition: omStats.c:18

◆ omPrintInfo()

void omPrintInfo ( FILE *  fd)

Definition at line 132 of file omStats.c.

133 {
134  omUpdateInfo();
135  fputs(" Current: Max:\n",fd);
136  fprintf(fd, "BytesSystem: %8ldk %8ldk\n", om_Info.CurrentBytesSystem/1024, om_Info.MaxBytesSystem/1024);
137  fprintf(fd, "BytesSbrk: %8ldk %8ldk\n", om_Info.CurrentBytesSbrk/1024, om_Info.MaxBytesSbrk/1024);
138  fprintf(fd, "BytesMmap: %8ldk %8ldk\n", om_Info.CurrentBytesMmap/1024, om_Info.MaxBytesMmap/1024);
139  fprintf(fd, "BytesFromMalloc: %8ldk %8ldk\n", om_Info.CurrentBytesFromMalloc/1024, om_Info.MaxBytesFromMalloc/1024);
140  fprintf(fd, "BytesFromValloc: %8ldk %8ldk\n", om_Info.CurrentBytesFromValloc/1024, om_Info.MaxBytesFromValloc/1024);
141  fprintf(fd, "PagesAlloc: %8ld %8ld \n", om_Info.UsedPages, om_Info.MaxPages);
142  fprintf(fd, "RegionsAlloc: %8ld %8ld \n", om_Info.CurrentRegionsAlloc, om_Info.MaxRegionsAlloc);
143  fputs(" Used: Avail:\n",fd);
144  fprintf(fd, "BytesAppl: %8ldk %8ldk\n", om_Info.UsedBytes/1024, om_Info.AvailBytes/1024);
145  fprintf(fd, "BytesMalloc: %8ldk %8ldk\n", om_Info.UsedBytesMalloc/1024, om_Info.AvailBytesMalloc/1024);
146  fprintf(fd, "BytesValloc: %8ldk %8ldk\n", om_Info.UsedBytesFromValloc/1024, om_Info.AvailBytesFromValloc/1024);
147  fprintf(fd, "Pages: %8ld %8ld\n", om_Info.UsedPages, om_Info.AvailPages);
148 }
int status int fd
Definition: si_signals.h:59

◆ omPrintStats()

void omPrintStats ( FILE *  fd)

Definition at line 118 of file omStats.c.

119 {
120  omUpdateInfo();
121  fprintf(fd, "System %ldk:%ldk Appl %ldk/%ldk Malloc %ldk/%ldk Valloc %ldk/%ldk Pages %ld/%ld Regions %ld:%ld Internal: %ld\n",
122  om_Info.CurrentBytesSystem/1024, om_Info.MaxBytesSystem/1024,
123  om_Info.UsedBytes/1024, om_Info.AvailBytes/1024,
124  om_Info.UsedBytesMalloc/1024, om_Info.AvailBytesMalloc/1024,
125  om_Info.CurrentBytesFromValloc/1024, om_Info.AvailBytesFromValloc/1024,
126  om_Info.UsedPages, om_Info.AvailPages,
127  om_Info.CurrentRegionsAlloc, om_Info.MaxRegionsAlloc,
128  om_Info.InternalUsedBytesMalloc);
129 }

◆ omUpdateInfo()

void omUpdateInfo ( void  )

Definition at line 27 of file omStats.c.

28 {
29 #ifdef OM_MALLOC_UPDATE_INFO
30  OM_MALLOC_UPDATE_INFO;
31 #endif
32 
33  /* this can happen, since sizes are added as requested, and
34  subtracted as the real size of the memory */
35  if (om_Info.CurrentBytesFromMalloc < 0)
36  om_Info.CurrentBytesFromMalloc = 0;
37 
38  om_Info.UsedBytesFromValloc = omGetUsedBinBytes();
39  om_Info.AvailBytesFromValloc = om_Info.CurrentBytesFromValloc - om_Info.UsedBytesFromValloc;
40 
41 #ifdef OM_MALLOC_USED_BYTES
42  om_Info.UsedBytesMalloc = OM_MALLOC_USED_BYTES;
43 #else
44  om_Info.UsedBytesMalloc = om_Info.CurrentBytesFromMalloc
45  -om_Info.InternalUsedBytesMalloc;
46 #endif
47 #ifdef OM_MALLOC_AVAIL_BYTES
48  om_Info.AvailBytesMalloc = OM_MALLOC_AVAIL_BYTES;
49 #endif
50 
51  om_Info.UsedBytes = om_Info.UsedBytesMalloc + om_Info.UsedBytesFromValloc;
52  om_Info.AvailBytes = om_Info.AvailBytesMalloc + om_Info.AvailBytesFromValloc;
53 
54 #ifdef OM_HAVE_VALLOC_MMAP
55  om_Info.CurrentBytesMmap = om_Info.CurrentBytesFromValloc;
56  om_Info.MaxBytesMmap = om_Info.MaxBytesFromValloc;
57 #endif
58 #ifdef OM_MALLOC_CURRENT_BYTES_MMAP
59  om_Info.CurrentBytesMmap += OM_MALLOC_CURRENT_BYTES_MMAP;
60 #endif
61 #ifdef OM_MALLOC_MAX_BYTES_MMAP
62  om_Info.MaxBytesMmap += OM_MALLOC_MAX_BYTES_MMAP;
63 #endif
64 
65 #ifndef OM_MALLOC_CURRENT_BYTES_SBRK
66 #ifdef HAVE_SBRK
67  if (om_SbrkInit)
68  {
69  om_Info.CurrentBytesSbrk = (unsigned long) sbrk(0) - om_SbrkInit;
70  if (om_Info.CurrentBytesSbrk > om_Info.MaxBytesSbrk)
71  om_Info.MaxBytesSbrk = om_Info.CurrentBytesSbrk;
72  }
73  else
74  {
75  om_SbrkInit = (unsigned long) sbrk(0);
76  }
77 #endif
78 #else
79  om_Info.CurrentBytesSbrk = OM_MALLOC_CURRENT_BYTES_SBRK;
80 #ifdef OM_MALLOC_MAX_BYTES_SBRK
81  om_Info.MaxBytesSbrk = OM_MALLOC_MAX_BYTES_SBRK;
82 #else
83  if (om_Info.CurrentBytesSbrk > om_Info.MaxBytesSbrk)
84  om_Info.MaxBytesSbrk = om_Info.CurrentBytesSbrk;
85 #endif
86 #endif
87 
88 #ifdef OM_MALLOC_CURRENT_BYTES_SYSTEM
89  om_Info.CurrentBytesSystem = OM_MALLOC_CURRENT_BYTES_SYSTEM;
90 #else
91  om_Info.CurrentBytesSystem =
92  (om_Info.CurrentBytesSbrk > om_Info.UsedBytesMalloc ?
93  om_Info.CurrentBytesSbrk : om_Info.UsedBytesMalloc);
94 #endif
95 #ifdef OM_HAVE_VALLOC_MMAP
96  om_Info.CurrentBytesSystem += om_Info.CurrentBytesFromValloc;
97 #endif
98 
99 #if ! (defined(OM_HAVE_VALLOC_MMAP) && defined(OM_MALLOC_MAX_BYTES_SYSTEM))
100 #ifdef OM_MALLOC_MAX_BYTES_SYSTEM
101  om_Info.MaxBytesSystem = OM_MALLOC_MAX_BYTES_SYSTEM;
102 #else
103  om_Info.MaxBytesSystem =
104  (om_Info.MaxBytesSbrk + om_Info.MaxBytesMmap >
105  om_Info.MaxBytesFromMalloc + om_Info.MaxBytesFromValloc ?
106  om_Info.MaxBytesSbrk + om_Info.MaxBytesMmap :
107  om_Info.MaxBytesFromMalloc + om_Info.MaxBytesFromValloc);
108 #endif
109 #endif
110 }
long omGetUsedBinBytes()
Definition: omBin.c:763

Variable Documentation

◆ om_Info

struct omInfo_s om_Info
extern

Definition at line 16 of file omStats.c.

◆ om_SbrkInit

unsigned long om_SbrkInit
extern

Definition at line 18 of file omStats.c.