r1954 - in trunk
dslinux_amadeus at dslinux.in-berlin.de
dslinux_amadeus at dslinux.in-berlin.de
Mon Oct 1 23:40:28 CEST 2007
Author: amadeus
Date: 2007-10-01 23:40:22 +0200 (Mon, 01 Oct 2007)
New Revision: 1954
Log:
Implement primitive shared memory between client and server of nano-X
Modified: trunk/user/microwin/src/nanox/client.c
===================================================================
--- trunk/user/microwin/src/nanox/client.c 2007-10-01 17:56:53 UTC (rev 1953)
+++ trunk/user/microwin/src/nanox/client.c 2007-10-01 21:40:22 UTC (rev 1954)
@@ -3782,15 +3782,23 @@
return;
}
+#if NDSDRIVER
+ shmid = key;
+#else
shmid = shmget(key, shmsize, 0);
+#endif
if (shmid == -1) {
EPRINTF("nxclient: Can't shmget key %d: %m\n", key);
UNLOCK(&nxGlobalLock);
return;
}
+#if NDSDRIVER
+ nxSharedMem = (char *)shmid;
+#else
nxSharedMem = shmat(shmid, 0, 0);
shmctl(shmid,IPC_RMID,0); /* Prevent other from attaching */
+#endif
if (nxSharedMem == (char *)-1) {
UNLOCK(&nxGlobalLock);
return;
Modified: trunk/user/microwin/src/nanox/srvnet.c
===================================================================
--- trunk/user/microwin/src/nanox/srvnet.c 2007-10-01 17:56:53 UTC (rev 1953)
+++ trunk/user/microwin/src/nanox/srvnet.c 2007-10-01 21:40:22 UTC (rev 1954)
@@ -1436,12 +1436,26 @@
goto bad;
for ( key=SHMKEY_BASE; key < SHMKEY_BASE+SHMKEY_MAX; key++ ) {
+#if NDSDRIVER
+ shmid = (int)malloc(req->size);
+ if (shmid)
+ key = shmid;
+ else {
+ shmid = -1;
+ errno = ENOMEM;
+ }
+#else
shmid = shmget(key,req->size,IPC_CREAT|IPC_EXCL|0666);
+#endif
if ( shmid == -1 ) {
if ( errno != EEXIST )
goto bad;
} else {
+#if NDSDRIVER
+ tmp = (char *)shmid;
+#else
tmp = shmat(shmid,0,0);
+#endif
if ( tmp == (char *)-1 )
goto bad;
curclient->shm_cmds = tmp;
@@ -2118,8 +2132,12 @@
#if HAVE_SHAREDMEM_SUPPORT
if ( client->shm_cmds != 0 ) {
/* Free shared memory */
+#if NDSDRIVER
+ /* do nothing for now */
+#else
shmctl(client->shm_cmds_shmid,IPC_RMID,0);
shmdt(client->shm_cmds);
+#endif
}
#endif
GsPrintResources();
Modified: trunk/vendors/Nintendo/DLDI/config.vendor
===================================================================
--- trunk/vendors/Nintendo/DLDI/config.vendor 2007-10-01 17:56:53 UTC (rev 1953)
+++ trunk/vendors/Nintendo/DLDI/config.vendor 2007-10-01 21:40:22 UTC (rev 1954)
@@ -903,7 +903,7 @@
# CONFIG_USER_MICROWIN_HAVE_PNG_SUPPORT is not set
# CONFIG_USER_MICROWIN_HAVE_T1LIB_SUPPORT is not set
# CONFIG_USER_MICROWIN_HAVE_FREETYPE_SUPPORT is not set
-# CONFIG_USER_MICROWIN_HAVE_SHAREDMEM_SUPPORT is not set
+CONFIG_USER_MICROWIN_HAVE_SHAREDMEM_SUPPORT=y
# CONFIG_USER_MICROWIN_HAVE_HZK_SUPPORT is not set
# CONFIG_USER_MICROWIN_HAVE_BIG5_SUPPORT is not set
# CONFIG_USER_MICROWIN_HAVE_GB2312_SUPPORT is not set
More information about the dslinux-commit
mailing list