Example #1
0
void pgResetFn_ledStripConfig(ledStripConfig_t *ledStripConfig)
{
    memset(ledStripConfig->ledConfigs, 0, LED_MAX_STRIP_LENGTH * sizeof(ledConfig_t));
    // copy hsv colors as default
    memset(ledStripConfig->colors, 0, ARRAYLEN(hsv) * sizeof(hsvColor_t));
    BUILD_BUG_ON(LED_CONFIGURABLE_COLOR_COUNT < ARRAYLEN(hsv));
    for (unsigned colorIndex = 0; colorIndex < ARRAYLEN(hsv); colorIndex++) {
        ledStripConfig->colors[colorIndex] = hsv[colorIndex];
    }
    memcpy_fn(&ledStripConfig->modeColors, &defaultModeColors, sizeof(defaultModeColors));
    memcpy_fn(&ledStripConfig->specialColors, &defaultSpecialColors, sizeof(defaultSpecialColors));
    ledStripConfig->ledstrip_visual_beeper = 0;
    ledStripConfig->ledstrip_aux_channel = THROTTLE;

    for (int i = 0; i < USABLE_TIMER_CHANNEL_COUNT; i++) {
        if (timerHardware[i].usageFlags & TIM_USE_LED) {
            ledStripConfig->ioTag = timerHardware[i].tag;
            return;
        }
    }
    ledStripConfig->ioTag = IO_TAG_NONE;
}
Example #2
0
int memcpyTest(MemcpyType type, bool callKernel, void *(*memcpy_fn)(void *, const void *, size_t n))
{
	int error = 0;

	ecl::config globalSize (1);
	ecl::config localSize (1);

	ecl::error ret;
	ecl::kernel kernel("null", ret);
	assert(ret == eclSuccess);

	uint8_t *baseSrc = NULL;
	uint8_t *eclSrc = NULL;
	uint8_t *eclDst = NULL;

	baseSrc = (uint8_t *)malloc(maxCount);
	init(baseSrc, int(maxCount), 0xca);
	for (size_t count = minCount; count <= maxCount; count *= 2) {
		fprintf(stderr, "ALLOC: "FMT_SIZE"\n", count);

		if (type == GMAC_TO_GMAC) {
			assert(ecl::malloc((void **)&eclSrc, count) == eclSuccess);
			assert(ecl::malloc((void **)&eclDst, count) == eclSuccess);
		} else if (type == HOST_TO_GMAC) {
			eclSrc = (uint8_t *)malloc(count);
			assert(ecl::malloc((void **)&eclDst, count) == eclSuccess);
		} else if (type == GMAC_TO_HOST) {
			assert(ecl::malloc((void **)&eclSrc, count) == eclSuccess);
			eclDst = (uint8_t *)malloc(count);
		}

		for (size_t stride = 0, i = 1; stride < count/3; stride = i, i =  i * 2 - (i == 1? 0: 1)) {
			for (size_t copyCount = 1; copyCount < count/3; copyCount *= 2) {
				init(eclSrc + stride, int(copyCount), 0xca);
				if (stride == 0) {
					init(eclDst + stride, int(copyCount) + 1, 0);
				} else {
					init(eclDst + stride - 1, int(copyCount) + 2, 0);
				}
				assert(stride + copyCount <= count);

				if (callKernel) {
					ret = kernel.callNDRange(globalSize, localSize);
					assert(ret == eclSuccess);
				}
				memcpy_fn(eclDst + stride, eclSrc + stride, copyCount);

				int ret = memcmp(eclDst + stride, baseSrc + stride, copyCount);
				if (stride == 0) {
					ret = ret && (eclDst[stride - 1] == 0 && eclDst[stride + copyCount] == 0);
				} else {
					ret = ret && (eclDst[stride - 1] == 0 && eclDst[stride + copyCount] == 0);
				}

				if (ret != 0) {
#if 0
					fprintf(stderr, "Error: eclToGmacTest size: %zd, stride: %zd, copy: %zd\n",
						count    ,
						stride   ,
						copyCount);
#endif
					abort();
					error = 1;
					goto exit_test;
				}
#if 0
				for (unsigned k = 0; k < count; k++) {
					int ret = baseDst[k] != eclDst[k];
					if (ret != 0) {
						fprintf(stderr, "Error: eclToGmacTest size: %zd, stride: %zd, copy: %zd. Pos %u\n", count    ,
							stride   ,
							copyCount, k);
						error = 1;
					}
				}
#endif
			}
		}

		if (type == GMAC_TO_GMAC) {
			assert(ecl::free(eclSrc) == eclSuccess);
			assert(ecl::free(eclDst) == eclSuccess);
		} else if (type == HOST_TO_GMAC) {
			free(eclSrc);
			assert(ecl::free(eclDst) == eclSuccess);
		} else if (type == GMAC_TO_HOST) {
			assert(ecl::free(eclSrc) == eclSuccess);
			free(eclDst);
		}
	}
	free(baseSrc);

	return error;

exit_test:
	if (type == GMAC_TO_GMAC) {
		assert(ecl::free(eclSrc) == eclSuccess);
		assert(ecl::free(eclDst) == eclSuccess);
	} else if (type == HOST_TO_GMAC) {
		free(eclSrc);
		assert(ecl::free(eclDst) == eclSuccess);
	} else if (type == GMAC_TO_HOST) {
		assert(ecl::free(eclSrc) == eclSuccess);
		free(eclDst);
	}

	free(baseSrc);

	return error;
}
Example #3
0
void applyDefaultModeColors(modeColorIndexes_t *modeColors)
{
    memcpy_fn(modeColors, &defaultModeColors, sizeof(defaultModeColors));
}
Example #4
0
void applyDefaultSpecialColors(specialColorIndexes_t *specialColors)
{
    memcpy_fn(specialColors, &defaultSpecialColors, sizeof(defaultSpecialColors));
}
Example #5
0
void pgResetFn_osdElementConfig(osdElementConfig_t *osdElementConfig) {
    memset(osdElementConfig, 0, sizeof(osdElementConfig_t));
    memcpy_fn(&osdElementConfig->elements, &osdDefaultElements, sizeof(osdDefaultElements));
}