88 lines
2.3 KiB
C
88 lines
2.3 KiB
C
/*************************************************************************/
|
|
/* */
|
|
/* Copyright (c) 1994 Stanford University */
|
|
/* */
|
|
/* All rights reserved. */
|
|
/* */
|
|
/* Permission is given to use, copy, and modify this software for any */
|
|
/* non-commercial purpose as long as this copyright notice is not */
|
|
/* removed. All other uses, including redistribution in whole or in */
|
|
/* part, are forbidden without prior written permission. */
|
|
/* */
|
|
/* This software is provided with absolutely no warranty and no */
|
|
/* support. */
|
|
/* */
|
|
/*************************************************************************/
|
|
|
|
#ifndef _Memory_H
|
|
#define _Memory_H 1
|
|
|
|
#include "defs.h"
|
|
#include "particle.h"
|
|
#include "box.h"
|
|
|
|
#define MAX_LOCKS 2048
|
|
|
|
EXTERN_ENV
|
|
|
|
typedef struct _G_Mem g_mem;
|
|
|
|
struct _G_Mem
|
|
{
|
|
LOCKDEC(io_lock)
|
|
LOCKDEC(mal_lock)
|
|
LOCKDEC(single_lock)
|
|
LOCKDEC(count_lock)
|
|
long count;
|
|
ALOCKDEC(lock_array, MAX_LOCKS)
|
|
BARDEC(synch)
|
|
volatile long *i_array;
|
|
volatile double *d_array;
|
|
real f_array[MAX_PROCS][NUM_DIM_POW_2];
|
|
real max_x;
|
|
real min_x;
|
|
real max_y;
|
|
real min_y;
|
|
long id;
|
|
};
|
|
extern g_mem *G_Memory;
|
|
|
|
typedef struct _Local_Memory local_memory;
|
|
struct _Local_Memory {
|
|
long pad_begin[PAD_SIZE];
|
|
|
|
box *B_Heap;
|
|
long Index_B_Heap;
|
|
long Max_B_Heap;
|
|
|
|
particle **Particles;
|
|
long Num_Particles;
|
|
long Max_Particles;
|
|
|
|
box *Childless_Partition;
|
|
box *Parent_Partition[MAX_LEVEL];
|
|
long Max_Parent_Level;
|
|
|
|
box *Local_Grid;
|
|
real Local_X_Max;
|
|
real Local_X_Min;
|
|
real Local_Y_Max;
|
|
real Local_Y_Min;
|
|
|
|
long Total_Work;
|
|
long Min_Work;
|
|
long Max_Work;
|
|
|
|
long Time_Step;
|
|
double Time;
|
|
unsigned long init_done_times;
|
|
time_info Timing[MAX_TIME_STEPS];
|
|
|
|
long pad_end[PAD_SIZE];
|
|
};
|
|
extern local_memory Local[MAX_PROCS];
|
|
|
|
extern void InitGlobalMemory(void);
|
|
|
|
#endif /* _Memory_H */
|