#include #include #include #include int main(int argc, char *argv[]) { size_t linelen; size_t i; if (argc != 2) return 1; linelen = strlen(argv[1]); uint8_t buf[linelen]; if (read(0, buf, linelen) != linelen) return 1; printf("uint8_t foo[%zu] = {", linelen+1); for (i = 0; i < linelen; i++) printf("%u, ", buf[i]); printf("0};\n"); printf("uint8_t bar[%zu] = {", linelen); for (i = 0; i < linelen; i++) printf("%u, ", buf[i] ^ argv[1][i]); printf( "};\nsize_t nr;\nuint8_t volatile *p = foo;\n" "for (nr = 0; nr < sizeof(foo)-1; nr++) " "p[nr] ^= bar[nr];\n"); return 0; }