c7c3de87f5
http://marc.info/?l=linux-mm-commits&m=127352503417787&w=2 for more details. * Remove the ptmalloc memory component; replace it with a new "linux" memory component. * The linux memory component will conditionally compile in support for ummunotify. At run-time, if it has ummunotify support and finds run-time support for ummunotify (i.e., /dev/ummunotify), it uses it. If not, it tries to use ptmalloc via the glibc memory hooks. * Add some more API functions to the memory framework to accomodate the ummunotify model (i.e., poll to see if memory has "changed"). * Add appropriate calls in the rcache to the new memory APIs to see if memory has changed, and to react accordingly. * Add a few comments in the openib BTL to indicate why we don't need to notify the OPAL memory framework about specific instances of registered memory. * Add dummy API calls in the solaris malloc component (since it doesn't have polling/"did memory change" support). This commit was SVN r23113.
52 строки
837 B
C
52 строки
837 B
C
/* lran2.h
|
|
* by Wolfram Gloger 1996.
|
|
*
|
|
* A small, portable pseudo-random number generator.
|
|
*/
|
|
|
|
#ifndef _LRAN2_H
|
|
#define _LRAN2_H
|
|
|
|
#define LRAN2_MAX 714025l /* constants for portable */
|
|
#define IA 1366l /* random number generator */
|
|
#define IC 150889l /* (see e.g. `Numerical Recipes') */
|
|
|
|
struct lran2_st {
|
|
long x, y, v[97];
|
|
};
|
|
|
|
static void
|
|
lran2_init(struct lran2_st* d, long seed)
|
|
{
|
|
long x;
|
|
int j;
|
|
|
|
x = (IC - seed) % LRAN2_MAX;
|
|
if(x < 0) x = -x;
|
|
for(j=0; j<97; j++) {
|
|
x = (IA*x + IC) % LRAN2_MAX;
|
|
d->v[j] = x;
|
|
}
|
|
d->x = (IA*x + IC) % LRAN2_MAX;
|
|
d->y = d->x;
|
|
}
|
|
|
|
#ifdef __GNUC__
|
|
__inline__
|
|
#endif
|
|
static long
|
|
lran2(struct lran2_st* d)
|
|
{
|
|
int j = (d->y % 97);
|
|
|
|
d->y = d->v[j];
|
|
d->x = (IA*d->x + IC) % LRAN2_MAX;
|
|
d->v[j] = d->x;
|
|
return d->y;
|
|
}
|
|
|
|
#undef IA
|
|
#undef IC
|
|
|
|
#endif
|