repos
/
Myth2
/ annotate_shade
summary
|
shortlog
|
log
|
tree
|
commit
|
commitdiff
|
headdiff
|
annotate
|
filehistory
normal
|
plain
|
shade
|
zebra
create meminfo in memory
Annotate for file fopenRedirect.c
2009-02-17 tobias
1
/*
2009-02-21 tobias
2
* Copyright (c) 2004, 2009 Tobias Rautenkranz <tobias@rautenkranz.ch>
2009-02-17 tobias
3
*
23:15:35 '
4
* Permission is hereby granted, free of charge, to any person
'
5
* obtaining a copy of this software and associated documentation
'
6
* files (the "Software"), to deal in the Software without
'
7
* restriction, including without limitation the rights to use,
'
8
* copy, modify, merge, publish, distribute, sublicense, and/or sell
'
9
* copies of the Software, and to permit persons to whom the
'
10
* Software is furnished to do so, subject to the following
'
11
* conditions:
'
12
*
'
13
* The above copyright notice and this permission notice shall be
'
14
* included in all copies or substantial portions of the Software.
'
15
*
'
16
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
'
17
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
'
18
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
'
19
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
'
20
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
'
21
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
'
22
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
'
23
* OTHER DEALINGS IN THE SOFTWARE.
'
24
*/
'
25
2009-02-21 tobias
26
#define _GNU_SOURCE
2009-02-17 tobias
27
#include <stdio.h>
23:15:35 '
28
#include <string.h>
'
29
#include <dlfcn.h>
'
30
2009-02-21 Alan
31
/* Old meminfo emulating 256Mb */
2009-02-21 tobias
32
static char meminfo_str[] =
2009-02-21 tobias
33
"root: total: used: free: shared: buffers: cached:\n"
10:26:12 '
34
"Mem: 268435456 0 268435456 0 0 0\n"
'
35
"Swap: 268435456 0 268435456\n";
'
36
'
37
FILE*
2009-02-21 tobias
38
fopen(const char *filename, const char *mode)
2009-02-21 tobias
39
{
10:26:12 '
40
FILE* (*_fopen)(const char*,const char*) = dlsym(RTLD_NEXT, "fopen");
2009-02-21 tobias
41
2009-02-21 tobias
42
if (!_fopen)
10:26:12 '
43
{
'
44
fprintf(stderr, "myth-meminfo: dlsym: %s\n", dlerror());
'
45
return NULL;
'
46
}
'
47
'
48
if (strcmp(filename, "/proc/meminfo") == 0)
'
49
{
'
50
fprintf(stderr, "myth-meminfo: fixing /proc/meminfo\n");
2009-02-21 Alan
51
2009-02-21 tobias
52
return fmemopen(meminfo_str, sizeof(meminfo_str), mode);
2009-02-21 tobias
53
}
10:26:12 '
54
else
'
55
return _fopen(filename, mode);
2009-02-17 tobias
56
}