int real_post_viman_poster(POSTER_ID id, VimanObjectPublicArray* viman_data) { size_t offset = 0; posterWrite(id, offset, viman_data, sizeof(VimanObjectPublicArray)); return 0; }
static void $module$CntrlPosterWrite () { if (posterWrite ($module$CntrlPosterId, 0, (void *) $module$CntrlStrId, sizeof ($MODULE$_CNTRL_STR)) != sizeof ($MODULE$_CNTRL_STR)) { h2perror("$module$CntrlPosterWrite"); $module$CntrlTaskSuspend (TRUE); } }
int main(int argc, char *argv[]) { POSTER_ID posterIdC; POSTER_ID posterIdF; TESTPOST_STR testIn = INIT_TESTPOST_STR; TESTPOST_STR testOut; int size = sizeof(TESTPOST_STR); int sizeOut; H2_ENDIANNESS endianness; char c; char msg[256]; printf ("testPosterWrite: LOCAL ENDIANNESS = %d\n", h2localEndianness()); /* create */ if (posterCreate(TEST_POSTER_NAME, size, &posterIdC) == ERROR) { printf ("testPosterWrite: posterCreate(%s) failed : %s\n", TEST_POSTER_NAME, h2getErrMsg(errnoGet(), msg, 256)); return 1; } printf ("testPosterWrite: poster %s created. Id = %0x\n", TEST_POSTER_NAME, (int)posterIdC); posterEndianness(posterIdC, &endianness); printf ("testPosterWrite: posterEndianness(%s) = %d\n\n", TEST_POSTER_NAME, endianness); /* write */ if ((sizeOut=posterWrite(posterIdC, 0, (void *)&testIn, size)) != size) { printf ("testPosterWrite: posterWrite size = %d != %d \n", sizeOut, size); return testEnd(posterIdC); } printf ("testPosterWrite: poster %s writen\n", TEST_POSTER_NAME); /* read after create */ if ((sizeOut=posterRead(posterIdC, 0, (void *)&testOut, size)) != size) { printf ("testPosterWrite: posterRead size = %d != %d \n", sizeOut, size); return testEnd(posterIdC); } printf ("testPosterWrite: poster %s read OK\n", TEST_POSTER_NAME); /* display */ if (endianness != h2localEndianness()) endianswap_TESTPOST_STR(&testOut); printTestStr("Write", &testOut); printf ("\n"); /* find */ if (posterFind(TEST_POSTER_NAME, &posterIdF) == ERROR) { printf ("testPosterWrite: posterFind failed\n"); return testEnd(posterIdC); } /* printf ("posterFind TEST_POSTER_NAME posterIdF = %d\n", (int)posterIdF); */ posterEndianness(posterIdF, &endianness); printf (" endianness = %d\n", endianness); /* read after find */ if ((sizeOut=posterRead(posterIdF, 0, (void *)&testOut, size)) != size) { printf ("testPosterWrite: posterRead size = %d != %d \n", sizeOut, size); return testEnd(posterIdC); } /* display */ if (endianness != h2localEndianness()) endianswap_TESTPOST_STR(&testOut); printTestStr("Write", &testOut); /* find again */ if (posterFind(TEST_POSTER_NAME, &posterIdF) == ERROR) { printf ("testPosterWrite: posterFind failed\n"); return testEnd(posterIdC); } printf ("PosterIdF %s = %d\n", TEST_POSTER_NAME, (int)posterIdF); posterEndianness(posterIdF, &endianness); printf (" endianness = %d\n", endianness); printf ("Return to end ...."); fflush(stdout); scanf("%c", &c); /* end */ return testEnd(posterIdF); }