My Project
Loading...
Searching...
No Matches
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.