diff options
Diffstat (limited to 'contrib/sendmail/libsm/memstat.c')
-rw-r--r-- | contrib/sendmail/libsm/memstat.c | 336 |
1 files changed, 0 insertions, 336 deletions
diff --git a/contrib/sendmail/libsm/memstat.c b/contrib/sendmail/libsm/memstat.c deleted file mode 100644 index 80391d7..0000000 --- a/contrib/sendmail/libsm/memstat.c +++ /dev/null @@ -1,336 +0,0 @@ -/* - * Copyright (c) 2005-2007 Sendmail, Inc. and its suppliers. - * All rights reserved. - * - * By using this file, you agree to the terms and conditions set - * forth in the LICENSE file which can be found at the top level of - * the sendmail distribution. - */ - -#include <sm/gen.h> -SM_RCSID("@(#)$Id: memstat.c,v 1.6 2007/03/20 23:26:12 ca Exp $") - -#include <errno.h> -#include <sm/misc.h> - -#if USESWAPCTL -#include <sys/stat.h> -#include <sys/swap.h> - -static long sc_page_size; - -/* -** SM_MEMSTAT_OPEN -- open memory statistics -** -** Parameters: -** none -** -** Results: -** errno as error code, 0: ok -*/ - -int -sm_memstat_open() -{ - sc_page_size = sysconf(_SC_PAGE_SIZE); - if (sc_page_size == -1) - return (errno != 0) ? errno : -1; - return 0; -} - -/* -** SM_MEMSTAT_CLOSE -- close memory statistics -** -** Parameters: -** none -** -** Results: -** errno as error code, 0: ok -*/ - -int -sm_memstat_close() -{ - return 0; -} - -/* -** SM_MEMSTAT_GET -- get memory statistics -** -** Parameters: -** resource -- resource to look up -** pvalue -- (pointer to) memory statistics value (output) -** -** Results: -** 0: success -** !=0: error -*/ - -int -sm_memstat_get(resource, pvalue) - char *resource; - long *pvalue; -{ - int r; - struct anoninfo ai; - - r = swapctl(SC_AINFO, &ai); - if (r == -1) - return (errno != 0) ? errno : -1; - r = ai.ani_max - ai.ani_resv; - r *= sc_page_size >> 10; - *pvalue = r; - return 0; -} - -#elif USEKSTAT - -#include <kstat.h> -#include <sys/sysinfo.h> - -static kstat_ctl_t *kc; -static kstat_t *kst; - -/* -** SM_MEMSTAT_OPEN -- open memory statistics -** -** Parameters: -** none -** -** Results: -** errno as error code, 0: ok -*/ - -int -sm_memstat_open() -{ - kstat_named_t *kn; - - kc = kstat_open(); - if (kc == NULL) - return (errno != 0) ? errno : -1; - kst = kstat_lookup(kc, "unix", 0, - (name != NULL) ? name : "system_pages"); - if (kst == 0) - return (errno != 0) ? errno : -2; - return 0; -} - -/* -** SM_MEMSTAT_CLOSE -- close memory statistics -** -** Parameters: -** none -** -** Results: -** errno as error code, 0: ok -*/ - -int -sm_memstat_close() -{ - int r; - - if (kc == NULL) - return 0; - r = kstat_close(kc); - if (r != 0) - return (errno != 0) ? errno : -1; - return 0; -} - -/* -** SM_MEMSTAT_GET -- get memory statistics -** -** Parameters: -** resource -- resource to look up -** pvalue -- (pointer to) memory statistics value (output) -** -** Results: -** 0: success -** !=0: error -*/ - -int -sm_memstat_get(resource, pvalue) - char *resource; - long *pvalue; -{ - int r; - kstat_named_t *kn; - - if (kc == NULL || kst == NULL) - return -1; - if (kstat_read(kc, kst, NULL) == -1) - return (errno != 0) ? errno : -2; - kn = kstat_data_lookup(kst, - (resource != NULL) ? resource: "freemem"); - if (kn == NULL) - return (errno != 0) ? errno : -3; - *pvalue = kn->value.ul; - return 0; -} - -#elif USEPROCMEMINFO - -/* -/proc/meminfo? - total: used: free: shared: buffers: cached: -Mem: 261468160 252149760 9318400 0 3854336 109813760 -Swap: 1052794880 62185472 990609408 -MemTotal: 255340 kB -MemFree: 9100 kB -MemShared: 0 kB -Buffers: 3764 kB -Cached: 107240 kB -Active: 104340 kB -Inact_dirty: 4220 kB -Inact_clean: 2444 kB -Inact_target: 4092 kB -HighTotal: 0 kB -HighFree: 0 kB -LowTotal: 255340 kB -LowFree: 9100 kB -SwapTotal: 1028120 kB -SwapFree: 967392 kB -*/ - -#include <stdio.h> -#include <string.h> -static FILE *fp; - -/* -** SM_MEMSTAT_OPEN -- open memory statistics -** -** Parameters: -** none -** -** Results: -** errno as error code, 0: ok -*/ - -int -sm_memstat_open() -{ - fp = fopen("/proc/meminfo", "r"); - return (fp != NULL) ? 0 : errno; -} - -/* -** SM_MEMSTAT_CLOSE -- close memory statistics -** -** Parameters: -** none -** -** Results: -** errno as error code, 0: ok -*/ - -int -sm_memstat_close() -{ - if (fp != NULL) - { - fclose(fp); - fp = NULL; - } - return 0; -} - -/* -** SM_MEMSTAT_GET -- get memory statistics -** -** Parameters: -** resource -- resource to look up -** pvalue -- (pointer to) memory statistics value (output) -** -** Results: -** 0: success -** !=0: error -*/ - -int -sm_memstat_get(resource, pvalue) - char *resource; - long *pvalue; -{ - int r; - size_t l; - char buf[80]; - - if (resource == NULL) - return EINVAL; - if (pvalue == NULL) - return EINVAL; - if (fp == NULL) - return -1; /* try to reopen? */ - rewind(fp); - l = strlen(resource); - if (l >= sizeof(buf)) - return EINVAL; - while (fgets(buf, sizeof(buf), fp) != NULL) - { - if (strncmp(buf, resource, l) == 0 && buf[l] == ':') - { - r = sscanf(buf + l + 1, "%ld", pvalue); - return (r > 0) ? 0 : -1; - } - } - return 0; -} - -#else /* USEPROCMEMINFO */ - -/* -** SM_MEMSTAT_OPEN -- open memory statistics -** -** Parameters: -** none -** -** Results: -** errno as error code, 0: ok -*/ - -int -sm_memstat_open() -{ - return -1; -} - -/* -** SM_MEMSTAT_CLOSE -- close memory statistics -** -** Parameters: -** none -** -** Results: -** errno as error code, 0: ok -*/ - -int -sm_memstat_close() -{ - return 0; -} - -/* -** SM_MEMSTAT_GET -- get memory statistics -** -** Parameters: -** resource -- resource to look up -** pvalue -- (pointer to) memory statistics value (output) -** -** Results: -** 0: success -** !=0: error -*/ - -int -sm_memstat_get(resource, pvalue) - char *resource; - long *pvalue; -{ - return -1; -} - -#endif /* USEKSTAT */ |