RTEMS 6.3
Loading...
Searching...
No Matches
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)
#define ALL_CORES   ((1U << INTERCOM_CORE_COUNT) - 1U)
#define OTHER_CORES(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_packet * qoriq_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_packet * qoriq_intercom_clone_packet (const intercom_packet *packet)

Detailed Description

Inter-Processor Communication implementation.

Macro Definition Documentation

◆ ONE_CORE

#define ONE_CORE ( core)
Value:
(1U << (core))

◆ OTHER_CORES

#define OTHER_CORES ( core)
Value:
(ALL_CORES & ~ONE_CORE(core))