Skip to content

Commit 11bf54b

Browse files
sumanannaLuis Henriques
authored andcommitted
SYSLINK:ipc-added multicore ipc module to syslink
Add multicore ipc module to syslink. Signed-off-by: Suman Anna <[email protected]> Signed-off-by: Subramaniam C.A <[email protected]> Signed-off-by: Arun M G <[email protected]> Signed-off-by: Ramesh Gupta G <[email protected]> Signed-off-by: Jayan John <[email protected]> Signed-off-by: Angela Stegmaier <[email protected]> Signed-off-by: Hari Kanigeri <[email protected]> Signed-off-by: Arun Radhakrishnan <[email protected]> Signed-off-by: Subin Gangadharan <[email protected]>
1 parent 3ce951f commit 11bf54b

35 files changed

+26303
-0
lines changed
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
libsyslink_ipc = multiproc.o multiproc_ioctl.o nameserver.o \
2+
nameserver_ioctl.o nameserver_remote.o nameserver_remotenotify.o \
3+
listmp.o listmp_ioctl.o sharedregion.o sharedregion_ioctl.o \
4+
gate.o gatepeterson.o gatehwspinlock.o gatemp.o gatemp_ioctl.o \
5+
heap.o heapmemmp.o heapmemmp_ioctl.o heapbufmp.o heapbufmp_ioctl.o \
6+
messageq.o messageq_ioctl.o transportshm.o transportshm_setup.o \
7+
platform.o ipc.o sysipc_ioctl.o ipc_ioctl.o ipc_drv.o \
8+
../omap_notify/notify_driver.o ../omap_notify/notify.o \
9+
../omap_notify/drv_notify.o ../omap_notify/plat/omap4_notify_setup.o \
10+
../notify_ducatidriver/notify_ducati.o ../ipu_pm/ipu_pm.o
11+
12+
libsyslink_platform = platform_mem.o
13+
14+
obj-$(CONFIG_MPU_SYSLINK_IPC) += syslink_ipc.o
15+
syslink_ipc-objs = $(libservices) $(libsyslink_ipc)
16+
17+
obj-$(CONFIG_MPU_SYSLINK_PLATFORM) += syslink_platform.o
18+
syslink_platform-objs = $(libservices) $(libsyslink_platform)
19+
20+
ccflags-y += -Wno-strict-prototypes
21+
22+
#Machine dependent
23+
ccflags-y += -D_TI_ -D_DB_TIOMAP -DTMS32060 \
24+
-DTICFG_PROC_VER -DTICFG_EVM_TYPE -DCHNL_SMCLASS \
25+
-DCHNL_MESSAGES -DUSE_LEVEL_1_MACROS \
26+
-DCONFIG_DISABLE_BRIDGE_PM -DDSP_TRACEBUF_DISABLED
27+
28+
#Header files
29+
ccflags-y += -Iarch/arm/plat-omap/include
30+
ccflags-y += -Iarch/arm/plat-omap/include/syslink
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
/*
2+
* gatemp.c
3+
*
4+
* Gate wrapper implementation
5+
*
6+
* Copyright (C) 2008-2009 Texas Instruments, Inc.
7+
*
8+
* This package is free software; you can redistribute it and/or modify
9+
* it under the terms of the GNU General Public License version 2 as
10+
* published by the Free Software Foundation.
11+
*
12+
* THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
13+
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
14+
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
15+
* PURPOSE.
16+
*/
17+
18+
19+
/* Standard headers */
20+
#include <linux/types.h>
21+
#include <linux/kernel.h>
22+
23+
/* Module level headers */
24+
#include <igateprovider.h>
25+
#include <gate.h>
26+
27+
28+
/* Structure defining internal object for the Gate Peterson.*/
29+
struct gate_object {
30+
IGATEPROVIDER_SUPEROBJECT; /* For inheritance from IGateProvider */
31+
};
32+
33+
/* Function to enter a Gate */
34+
int *gate_enter_system(void)
35+
{
36+
unsigned long flags;
37+
38+
local_irq_save(flags);
39+
40+
return (int *)flags;
41+
}
42+
43+
/* Function to leave a gate */
44+
void gate_leave_system(int *key)
45+
{
46+
local_irq_restore((unsigned long) key);
47+
}
48+
49+
/* Match with IGateProvider */
50+
static inline int *_gate_enter_system(struct gate_object *obj)
51+
{
52+
(void) obj;
53+
return gate_enter_system();
54+
}
55+
56+
/* Match with IGateProvider */
57+
static inline void _gate_leave_system(struct gate_object *obj, int *key)
58+
{
59+
(void) obj;
60+
gate_leave_system(key);
61+
}
62+
63+
static struct gate_object gate_system_object = {
64+
.enter = (int *(*)(void *))_gate_enter_system,
65+
.leave = (void (*)(void *, int *))_gate_leave_system,
66+
};
67+
68+
struct igateprovider_object *gate_system_handle = \
69+
(struct igateprovider_object *)&gate_system_object;
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
/*
2+
* gate_remote.c
3+
*
4+
* This includes the functions to handle remote gates
5+
*
6+
* Copyright (C) 2008-2009 Texas Instruments, Inc.
7+
*
8+
* This package is free software; you can redistribute it and/or modify
9+
* it under the terms of the GNU General Public License version 2 as
10+
* published by the Free Software Foundation.
11+
*
12+
* THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
13+
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
14+
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
15+
* PURPOSE.
16+
*/
17+
18+
#include <linux/types.h>
19+
20+
/*
21+
* ======== gate_remote_enter ========
22+
* Purpose:
23+
* This function is used to enter in to a remote gate
24+
*/
25+
int gate_remote_enter(void *ghandle)
26+
{
27+
return 0;
28+
}
29+
30+
/*
31+
* ======== gate_remote_leave ========
32+
* Purpose:
33+
* This function is used to leave from a remote gate
34+
*/
35+
int gate_remote_leave(void *ghandle, u32 key)
36+
{
37+
key = 0;
38+
return 0;
39+
}

0 commit comments

Comments
 (0)