jkehne/libripc — pull request #1 by pepinghege (2012-08-12 18:56:24+00:00)
Title: libRIPC Pull Request

Hey Jens,

ich hab ein paar Änderungen die es vielleicht wert wären sie zu integrieren.
Insgesamt sind es zwei Dinge die ich gemacht habe:
1. Die Schnittstelle habe ich angepasst bezüglich der Typen der Parameter. Zwischen den beiden send- und der receive-Schnittstelle gibt es Typ-Unterschiede bei Parametern mit identischem Zweck. Die Anzahl der Items/Buffer wird in ripc_receive als uint16_t, in den send-Methoden als uint32_t übergeben. Ich habe uint16_t für alle drei Methoden übernommen. Desweiteren sind bei den send-Methoden die Längenangaben der einzelnen Buffer als size_t geführt. In ripc_receive als uint32_t. Ich habe uint32_t für alle übernommen. Auf 64-Bit-Maschinen ist size_t 64 Bit lang. Das ist zum einen deutlich mehr als nötig, zum Anderen hat es bei den pingpong-Clients auch zu Fehlern geführt, weil dort ein uint32_t-Array auf ein size_t-Array gecasted wird, was dann natürlich zu Fehlern führt.
2. Außerdem habe ich noch etwas Netarchitektur-spezifischeren Code erstellt. Zum Beispiel sind in den resolver- und rdma-connect-messages einige Elemente enthalten, die Architektur-spezfisch sind. Die habe ich ausgelagert. In dem remote context-struct das selbe.

Ich habe den Code nicht testen können, da ich keinen Zugriff auf die IB-Hardware habe. Aber da ich nichts semantisches geändert habe, sollte das eigentlich problemfrei funktionieren. Ein kleiner Test würde aber nicht schaden..

Gruß, Felix