/*
 * Copyright (C) 2014, Samsung Electronics Co., Ltd.
 *
 * Custom SMC Handler for Exynos 5433
 * Test Logic
 */

#include <stdint.h>

#define ARR_COUNT(arr) (sizeof(arr) / sizeof(*arr))

static uint32_t test_val_arr[16] =
{
    0xe1a0d007,
    0xea000002,
    0xe0812002,
    0xe0820000,
    0xe12fff1e,
    0xe59fc044,
    0xe1a00001,
    0xe92d4008,
    0xe1a01002,
    0xe1a02003,
    0xe08fc00c,
    0xe59c3000,
    0xe12fff33,
    0xe3a0ee11,
    0xe1a05000,
    0xe3a0c000
};


/*
 * Implements test logic
 */
static uint32_t get_val(uint32_t index)
{
    return test_val_arr[index % ARR_COUNT(test_val_arr)];
}

/*
 * Implements test logic
 */
uint32_t test_logic(uint32_t p1, uint32_t p2)
{
    uint32_t i, ret_val = 0;
    uint32_t arr[10];

    for(i = 0; i < ARR_COUNT(arr); i++) {
        arr[i] = get_val(p1++) + get_val(p2++);
    }
    for(i = 0; i < ARR_COUNT(arr); i++) {
        ret_val += arr[i];
    }
    return ret_val;
}
