2011-04-23 00:13:12 -07:00
|
|
|
/*
|
|
|
|
* Copyright 2011 Stefan Lankes, Chair for Operating Systems,
|
|
|
|
* RWTH Aachen University
|
|
|
|
*
|
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
* you may not use this file except in compliance with the License.
|
|
|
|
* You may obtain a copy of the License at
|
|
|
|
*
|
|
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
*
|
|
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
* See the License for the specific language governing permissions and
|
|
|
|
* limitations under the License.
|
|
|
|
*
|
|
|
|
* This file is part of MetalSVM.
|
|
|
|
*/
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Function and prototypes for MetalSVM's inter core communication
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef __ARCH_ICC_H__
|
|
|
|
#define __ARCH_ICC_H__
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_ROCKCREEK
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
uint32_t addr; // address of the initrd
|
|
|
|
uint32_t size; // size of the initrd
|
|
|
|
int32_t argc; // number of RCCE arguments
|
|
|
|
char** argv; // RCCE arguments
|
|
|
|
} bootinfo_t;
|
|
|
|
|
|
|
|
extern bootinfo_t* bootinfo;
|
|
|
|
|
2011-07-01 15:41:41 +02:00
|
|
|
enum icc_mail_requests {
|
|
|
|
PING_REQ=1,
|
|
|
|
PING_RESP,
|
2011-11-16 03:12:09 -08:00
|
|
|
SVM_REQ,
|
2011-11-07 11:25:54 -08:00
|
|
|
SVM_RESP,
|
2011-08-23 14:45:08 -07:00
|
|
|
NOISE,
|
2011-07-01 15:41:41 +02:00
|
|
|
};
|
|
|
|
|
2011-04-23 00:13:12 -07:00
|
|
|
int icc_init(void);
|
2011-05-17 08:09:40 -07:00
|
|
|
int icc_halt(void);
|
2011-10-09 13:04:13 -07:00
|
|
|
void icc_mail_check(void);
|
2011-05-31 04:57:55 -07:00
|
|
|
int icc_mail_ping(void);
|
2011-08-29 01:49:59 -07:00
|
|
|
int icc_send_gic_irq(int core_num);
|
2011-07-02 09:09:53 -07:00
|
|
|
int icc_mail_ping_irq(void);
|
2011-11-07 13:01:57 -08:00
|
|
|
int icc_mail_ping_jitter(void);
|
2011-07-04 12:27:28 +02:00
|
|
|
int icc_mail_noise(void);
|
2011-11-07 11:25:54 -08:00
|
|
|
void icc_wait(int tag);
|
2011-05-31 04:57:55 -07:00
|
|
|
|
2011-04-23 00:13:12 -07:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif
|