/*******************************************************************************
 *   Copyright (c) 2019 Dortmund University of Applied Sciences and Arts and others.
 *  
 *   This program and the accompanying materials are made
 *   available under the terms of the Eclipse Public License 2.0
 *   which is available at https://www.eclipse.org/legal/epl-2.0/
 *  
 *   SPDX-License-Identifier: EPL-2.0
 *  
 *   Contributors:
 *        Dortmund University of Applied Sciences and Arts - initial API and implementation
 *******************************************************************************/

#ifndef C2C_H
#define C2C_H


#include <stdint.h>
#define dstr_mem_offset_sec_1 			0x4000
#define dstr_mem_sec_1_label_count		10
#define dstr_mem_sec_1_label_type		unsigned int

/**
 * Initiate the shared label section, this funcion will assign addresses to labels in a section,
 * and initialize those labels to 0
 *
 * Arguments:
 *
 */
void shared_labels_init_core();

/**
 * write a value to a label in a distributed shared memory section
 *
 * Arguments:
 * row			:	absolute row number of the core
 * col			:	absolute column number of the core
 * label_indx	:	index of the target shared label
 * payload		:	value to write
 *
 */
uint8_t shared_label_write_core	(unsigned row,unsigned col,int label_indx,int payload);

/**
 * read a value of a label in a distributed shared memory section
 *
 * Arguments:
 * row			:	absolute row number of the core
 * col			:	absolute column number of the core
 * label_indx	:	index of the target shared label
 *
 */
unsigned int shared_label_read_core(unsigned row, unsigned col, int label_indx);

/**
 * get the absolute base memory address of a core
 *
 * Arguments:
 * row			:	absolute row number of the core
 * col			:	absolute column number of the core
 *
 */
unsigned int get_base_address_core(int row, int col);



#endif
