예제 #1
0
파일: chunk.c 프로젝트: tricky1997/wifisec
static void initChunksCommon()
{
#define ROUND_CHUNKS(a) a = (((a) + CHUNK_SIZE - 1) / CHUNK_SIZE) * CHUNK_SIZE;
	int q;

	if (CHUNK_SIZE != 1 << log2_ceil(CHUNK_SIZE)) {
		do_log(L_ERROR, "CHUNK SIZE %d is not a power of two.\n",
		       CHUNK_SIZE);
		exit(1);
	}

	ROUND_CHUNKS(chunkHighMark);
	ROUND_CHUNKS(chunkCriticalMark);
	ROUND_CHUNKS(chunkLowMark);

	if (chunkHighMark < 8 * CHUNK_SIZE) {
		int mem = physicalMemory();
		if (mem > 0)
			chunkHighMark = mem / 4;
		else
			chunkHighMark = 24 * MB;
		chunkHighMark = MIN(chunkHighMark, 24 * MB);
		chunkHighMark = MAX(chunkHighMark, 8 * CHUNK_SIZE);
	}

	if (chunkHighMark < MB / 2)
		fprintf(stderr,
			"Warning: little chunk memory (%d bytes)\n",
			chunkHighMark);

	q = 0;
	if (chunkLowMark <= 0)
		q = 1;
	if (chunkLowMark < 4 * CHUNK_SIZE ||
	    chunkLowMark > chunkHighMark - 4 * CHUNK_SIZE) {
		chunkLowMark = MIN(chunkHighMark - 4 * CHUNK_SIZE,
				   chunkHighMark * 3 / 4);
		ROUND_CHUNKS(chunkLowMark);
		if (!q)
			do_log(L_WARN,
			       "Inconsistent chunkLowMark -- setting to %d.\n",
			       chunkLowMark);
	}

	q = 0;
	if (chunkCriticalMark <= 0)
		q = 1;
	if (chunkCriticalMark >= chunkHighMark - 2 * CHUNK_SIZE ||
	    chunkCriticalMark <= chunkLowMark + 2 * CHUNK_SIZE) {
		chunkCriticalMark =
		    MIN(chunkHighMark - 2 * CHUNK_SIZE,
			chunkLowMark + (chunkHighMark -
					chunkLowMark) * 15 / 16);
		ROUND_CHUNKS(chunkCriticalMark);
		if (!q)
			do_log(L_WARN, "Inconsistent chunkCriticalMark -- "
			       "setting to %d.\n", chunkCriticalMark);
	}
#undef ROUND_CHUNKS
}
예제 #2
0
/* ChapelReduce.chpl:2 */
int64_t _reduce(_sum_int64_t r, _ic_physicalMemory__ref__array_int32_t_locale_1_SingleLocaleArithmeticArray_locale_int32_t_0_1_0 s, int32_t _ln, _string _fn) {
  _sum_int64_t T1 = NULL;
  int64_t T26;
  _array_int32_t_locale_1_SingleLocaleArithmeticArray_locale_int32_t_0_1_0 T2;
  MemUnits T3;
  MemUnits T4;
  SingleLocaleArithmeticArray_locale_int32_t_0_1_0 T5 = NULL;
  SingleLocaleArithmeticArray_locale_int32_t_0_1_0 T6 = NULL;
  SingleLocaleArithmeticDomain_1_int32_t_0 T7 = NULL;
  range_int32_t_bounded_0 T9;
  _tuple_1_range_int32_t_bounded_0 T8;
  range_int32_t_bounded_0 T10;
  int32_t T11;
  int32_t T13;
  int32_t T12;
  int32_t T15;
  int32_t T14;
  _ref_int32_t T16 = NULL;
  int32_t T17;
  int32_t T18;
  int32_t T19;
  int32_t T20;
  _ddata_locale T21 = NULL;
  _ref_locale T22 = NULL;
  locale T23 = NULL;
  int64_t T24;
  int64_t T25;
  T1 = r;
  T2 = (s->_0_this);
  T3 = (s->_1_unit);
  T4 = T3;
  T5 = (T2._value);
  T6 = T5;
  T7 = (T5->dom);
  T8 = (T7->ranges);
  T9 = (T8.x1);
  T10 = _copy(&(T9));
  T11 = 0;
  T12 = (T10._low);
  T13 = T12;
  T14 = (T10._high);
  T15 = T14;
  for (T11 = T13; T11 <= T15; T11 += 1) {
    T16 = &(T11);
    T17 = (T6->origin);
    T18 = (T17+T11);
    T19 = (T6->factoredOffs);
    T20 = (T18-T19);
    T21 = (T6->data);
    T22 = _ARRAY_GET(T21, T20);
    T23 = *(T22);
    T24 = physicalMemory(T23, T4, _ln, _fn);
    accumulate(T1, T24);
  }
  T25 = generate(T1);
  T26 = T25;
  return T26;
}