RTEMS  5.0.0
Data Structures | Macros | Typedefs | Functions
intercom.c File Reference

Inter-Processor Communication implementation. More...

#include <assert.h>
#include <string.h>
#include <rtems.h>
#include <libcpu/powerpc-utility.h>
#include <bspopts.h>
#include <bsp/irq.h>
#include <bsp/qoriq.h>
#include <bsp/intercom.h>

Data Structures

struct  consumer
 
struct  consumer_list
 
struct  free_list
 
struct  core_fifo
 
struct  control
 

Macros

#define INTERCOM_EVENT_IPI   RTEMS_EVENT_13
 
#define INTERCOM_EVENT_WAKE_UP   RTEMS_EVENT_14
 
#define PACKET_SIZE_COUNT   4
 
#define ONE_CORE(core)   (1U << (core))
 
#define ALL_CORES   ((1U << INTERCOM_CORE_COUNT) - 1U)
 
#define OTHER_CORES(core)   (ALL_CORES & ~ONE_CORE(core))
 
#define IPI_INDEX   0
 

Typedefs

typedef struct consumer consumer
 

Functions

void qoriq_intercom_free_packet (intercom_packet *packet)
 
void qoriq_intercom_init (void)
 
void qoriq_intercom_start (void)
 
intercom_packetqoriq_intercom_allocate_packet (intercom_type type, intercom_size size)
 
void qoriq_intercom_send_packets (int destination_core, intercom_packet *first, intercom_packet *last)
 
void qoriq_intercom_broadcast_packets (intercom_packet *first, intercom_packet *last)
 
void qoriq_intercom_send (int destination_core, intercom_type type, intercom_size size, const void *buf, size_t n)
 
void qoriq_intercom_service_install (intercom_type type, intercom_service service, void *arg)
 
void qoriq_intercom_service_remove (intercom_type type)
 
intercom_packetqoriq_intercom_clone_packet (const intercom_packet *packet)
 

Detailed Description

Inter-Processor Communication implementation.