filesio.h 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386
  1. /**
  2. * @brief The function writes the flag vectors into /preprocflags/ directory in duoram-online
  3. *
  4. * @param party
  5. * @param i
  6. * @param db_nitems
  7. * @param flags
  8. * @param outs_
  9. * @param final_correction_word
  10. */
  11. void write_evalfull_outs_into_a_file(bool party, size_t i, size_t db_nitems, int8_t * flags, int64_t * outs_, __m128i final_correction_word, int64_t additve_sharesR)
  12. {
  13. if(!party)
  14. {
  15. char const * p0_filename0;
  16. char tmp[100];
  17. // p0_filename0 = "../duoram-online/preprocflags/party0_read_flags_b";
  18. p0_filename0 = "/media/ramdisk/avadapal/preprocflags/party0_read_flags_b";
  19. strcpy(tmp, p0_filename0);
  20. strcat(tmp, std::to_string(i).c_str());
  21. int w0 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  22. int written = write(w0, flags, db_nitems * sizeof(flags[0]));
  23. if(written<0) perror("Write error");
  24. close(w0);
  25. p0_filename0 = "/media/ramdisk/avadapal/preprocflags/party0_read_flags_c";
  26. strcpy(tmp, p0_filename0);
  27. strcat(tmp, std::to_string(i).c_str());
  28. int w1 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  29. written = write(w1, flags, db_nitems * sizeof(flags[0]));
  30. if(written<0) perror("Write error");
  31. close(w1);
  32. p0_filename0 = "/media/ramdisk/avadapal/preprocflags/party0_read_flags_d";
  33. strcpy(tmp, p0_filename0);
  34. strcat(tmp, std::to_string(i).c_str());
  35. int w2 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  36. written = write(w2, flags, db_nitems * sizeof(flags[0]));
  37. if(written<0) perror("Write error");
  38. close(w2);
  39. p0_filename0 = "/media/ramdisk/avadapal/preprocflags/party0_write_flags_b";
  40. strcpy(tmp, p0_filename0);
  41. strcat(tmp, std::to_string(i).c_str());
  42. int w4 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  43. written = write(w4, flags, db_nitems * sizeof(flags[0]));
  44. if(written<0) perror("Write error");
  45. close(w4);
  46. p0_filename0 = "/media/ramdisk/avadapal/preprocflags/party0_write_flags_c";
  47. strcpy(tmp, p0_filename0);
  48. strcat(tmp, std::to_string(i).c_str());
  49. int w5 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  50. written = write(w5, flags, db_nitems * sizeof(flags[0]));
  51. if(written<0) perror("Write error");
  52. close(w5);
  53. p0_filename0 = "/media/ramdisk/avadapal/preprocflags/party0_write_flags_d";
  54. strcpy(tmp, p0_filename0);
  55. strcat(tmp, std::to_string(i).c_str());
  56. int w6 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  57. written = write(w6, flags, db_nitems * sizeof(flags[0]));
  58. if(written<0) perror("Write error");
  59. close(w6);
  60. p0_filename0 = "/media/ramdisk/avadapal/preprocflags/party0_write_b";
  61. strcpy(tmp, p0_filename0);
  62. strcat(tmp, std::to_string(i).c_str());
  63. w4 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  64. written = write(w4, outs_, db_nitems * sizeof(outs_[0]));
  65. if(written<0) perror("Write error");
  66. close(w4);
  67. p0_filename0 = "/media/ramdisk/avadapal/preprocflags/party0_write_c";
  68. strcpy(tmp, p0_filename0);
  69. strcat(tmp, std::to_string(i).c_str());
  70. w5 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  71. written = write(w5, outs_, db_nitems * sizeof(outs_[0]));
  72. if(written<0) perror("Write error");
  73. close(w5);
  74. p0_filename0 = "/media/ramdisk/avadapal/preprocflags/party0_write_d";
  75. strcpy(tmp, p0_filename0);
  76. strcat(tmp, std::to_string(i).c_str());
  77. w6 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  78. written = write(w6, outs_, db_nitems * sizeof(outs_[0]));
  79. if(written<0) perror("Write error");
  80. close(w6);
  81. }
  82. if(party)
  83. {
  84. char const * p0_filename0;
  85. char tmp[100];
  86. p0_filename0 = "/media/ramdisk/avadapal/preprocflags/party1_read_flags_b";
  87. strcpy(tmp, p0_filename0);
  88. strcat(tmp, std::to_string(i).c_str());
  89. int w0 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  90. int written = write(w0, flags, db_nitems * sizeof(flags[0]));
  91. if(written<0) perror("Write error");
  92. close(w0);
  93. p0_filename0 = "/media/ramdisk/avadapal/preprocflags/party1_read_flags_c";
  94. strcpy(tmp, p0_filename0);
  95. strcat(tmp, std::to_string(i).c_str());
  96. int w1 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  97. written = write(w1, flags, db_nitems * sizeof(flags[0]));
  98. if(written<0) perror("Write error");
  99. close(w1);
  100. p0_filename0 = "/media/ramdisk/avadapal/preprocflags/party1_read_flags_d";
  101. strcpy(tmp, p0_filename0);
  102. strcat(tmp, std::to_string(i).c_str());
  103. int w2 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  104. written = write(w2,flags, db_nitems * sizeof(flags[0]));
  105. if(written<0) perror("Write error");
  106. close(w2);
  107. p0_filename0 = "/media/ramdisk/avadapal/preprocflags/party1_write_flags_b";
  108. strcpy(tmp, p0_filename0);
  109. strcat(tmp, std::to_string(i).c_str());
  110. int w4 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  111. written = write(w4,flags, db_nitems * sizeof(flags[0]));
  112. if(written<0) perror("Write error");
  113. close(w4);
  114. p0_filename0 = "/media/ramdisk/avadapal/preprocflags/party1_write_flags_c";
  115. strcpy(tmp, p0_filename0);
  116. strcat(tmp, std::to_string(i).c_str());
  117. int w5 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  118. written = write(w5, flags, db_nitems * sizeof(flags[0]));
  119. if(written<0) perror("Write error");
  120. close(w5);
  121. p0_filename0 = "/media/ramdisk/avadapal/preprocflags/party1_write_flags_d";
  122. strcpy(tmp, p0_filename0);
  123. strcat(tmp, std::to_string(i).c_str());
  124. int w6 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  125. written = write(w6, flags, db_nitems * sizeof(flags[0]));
  126. if(written<0) perror("Write error");
  127. close(w6);
  128. p0_filename0 = "/media/ramdisk/avadapal/preprocflags/party1_write_b";
  129. strcpy(tmp, p0_filename0);
  130. strcat(tmp, std::to_string(i).c_str());
  131. w4 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  132. written = write(w4, outs_, db_nitems * sizeof(outs_[0]));
  133. if(written<0) perror("Write error");
  134. close(w4);
  135. p0_filename0 = "/media/ramdisk/avadapal/preprocflags/party1_write_c";
  136. strcpy(tmp, p0_filename0);
  137. strcat(tmp, std::to_string(i).c_str());
  138. w5 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  139. written = write(w5, outs_, db_nitems * sizeof(outs_[0]));
  140. if(written<0) perror("Write error");
  141. close(w5);
  142. p0_filename0 = "/media/ramdisk/avadapal/preprocflags/party1_write_d";
  143. strcpy(tmp, p0_filename0);
  144. strcat(tmp, std::to_string(i).c_str());
  145. w6 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  146. written = write(w6, outs_, db_nitems * sizeof(outs_[0]));
  147. if(written<0) perror("Write error");
  148. close(w6);
  149. }
  150. if(party)
  151. {
  152. char const * p1_filename0;
  153. char tmp[100];
  154. p1_filename0 = "/media/ramdisk/avadapal/preprocflags/FCW1";
  155. strcpy(tmp, p1_filename0);
  156. strcat(tmp, std::to_string(i).c_str());
  157. int w0 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  158. int written = write(w0, &final_correction_word[0], sizeof(uint64_t));
  159. if(written<0) perror("Write error");
  160. close(w0);
  161. p1_filename0 = "/media/ramdisk/avadapal/preprocflags/R1";
  162. strcpy(tmp, p1_filename0);
  163. strcat(tmp, std::to_string(i).c_str());
  164. w0 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  165. written = write(w0, &additve_sharesR, sizeof(int64_t));
  166. if(written<0) perror("Write error");
  167. close(w0);
  168. }
  169. if(!party)
  170. {
  171. char const * p0_filename0;
  172. char tmp[100];
  173. p0_filename0 = "/media/ramdisk/avadapal/preprocflags/FCW0";
  174. strcpy(tmp, p0_filename0);
  175. strcat(tmp, std::to_string(i).c_str());
  176. int w0 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  177. int written = write(w0, &final_correction_word[0], sizeof(uint64_t));
  178. if(written<0) perror("Write error");
  179. close(w0);
  180. p0_filename0 = "/media/ramdisk/avadapal/preprocflags/R0";
  181. strcpy(tmp, p0_filename0);
  182. strcat(tmp, std::to_string(i).c_str());
  183. w0 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  184. written = write(w0, &additve_sharesR, sizeof(int64_t));
  185. if(written<0) perror("Write error");
  186. close(w0);
  187. }
  188. }
  189. void P2_write_evalfull_outs_into_a_file(bool party, size_t i, size_t db_nitems, int8_t * flags, int64_t * outs_)
  190. {
  191. if(!party)
  192. {
  193. char const * p0_filename0;
  194. char tmp[100];
  195. p0_filename0 = "/media/ramdisk/avadapal/preprocflags/P2_party0_read_flags_b";
  196. strcpy(tmp, p0_filename0);
  197. strcat(tmp, std::to_string(i).c_str());
  198. int w0 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  199. int written = write(w0, flags, db_nitems * sizeof(int8_t));
  200. if(written<0) perror("Write error");
  201. close(w0);
  202. p0_filename0 = "/media/ramdisk/avadapal/preprocflags/P2_party0_read_flags_c";
  203. strcpy(tmp, p0_filename0);
  204. strcat(tmp, std::to_string(i).c_str());
  205. int w1 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  206. written = write(w1, flags, db_nitems * sizeof(int8_t));
  207. if(written<0) perror("Write error");
  208. close(w1);
  209. p0_filename0 = "/media/ramdisk/avadapal/preprocflags/P2_party0_read_flags_d";
  210. strcpy(tmp, p0_filename0);
  211. strcat(tmp, std::to_string(i).c_str());
  212. int w2 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  213. written = write(w2, flags, db_nitems * sizeof(int8_t));
  214. if(written<0) perror("Write error");
  215. close(w2);
  216. p0_filename0 = "/media/ramdisk/avadapal/preprocflags/P2_party0_write_flags_b";
  217. strcpy(tmp, p0_filename0);
  218. strcat(tmp, std::to_string(i).c_str());
  219. int w4 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  220. written = write(w4, flags, db_nitems * sizeof(int8_t));
  221. if(written<0) perror("Write error");
  222. close(w4);
  223. p0_filename0 = "/media/ramdisk/avadapal/preprocflags/P2_party0_write_flags_c";
  224. strcpy(tmp, p0_filename0);
  225. strcat(tmp, std::to_string(i).c_str());
  226. int w5 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  227. written = write(w5, flags, db_nitems * sizeof(int8_t));
  228. if(written<0) perror("Write error");
  229. close(w5);
  230. p0_filename0 = "/media/ramdisk/avadapal/preprocflags/P2_party0_write_flags_d";
  231. strcpy(tmp, p0_filename0);
  232. strcat(tmp, std::to_string(i).c_str());
  233. int w6 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  234. written = write(w6, flags, db_nitems * sizeof(int8_t));
  235. if(written<0) perror("Write error");
  236. close(w6);
  237. p0_filename0 = "/media/ramdisk/avadapal/preprocflags/P2_party0_write_b";
  238. strcpy(tmp, p0_filename0);
  239. strcat(tmp, std::to_string(i).c_str());
  240. w4 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  241. written = write(w4, outs_, db_nitems * sizeof(int64_t));
  242. if(written<0) perror("Write error");
  243. close(w4);
  244. p0_filename0 = "/media/ramdisk/avadapal/preprocflags/P2_party0_write_c";
  245. strcpy(tmp, p0_filename0);
  246. strcat(tmp, std::to_string(i).c_str());
  247. w5 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  248. written = write(w5, outs_, db_nitems * sizeof(int64_t));
  249. if(written<0) perror("Write error");
  250. close(w5);
  251. p0_filename0 = "/media/ramdisk/avadapal/preprocflags/P2_party0_write_d";
  252. strcpy(tmp, p0_filename0);
  253. strcat(tmp, std::to_string(i).c_str());
  254. w6 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  255. written = write(w6, outs_, db_nitems * sizeof(int64_t));
  256. if(written<0) perror("Write error");
  257. close(w6);
  258. }
  259. if(party)
  260. {
  261. char const * p0_filename0;
  262. char tmp[100];
  263. p0_filename0 = "/media/ramdisk/avadapal/preprocflags/P2_party1_read_flags_b";
  264. strcpy(tmp, p0_filename0);
  265. strcat(tmp, std::to_string(i).c_str());
  266. int w0 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  267. int written = write(w0, flags, db_nitems * sizeof(int8_t));
  268. if(written<0) perror("Write error");
  269. close(w0);
  270. p0_filename0 = "/media/ramdisk/avadapal/preprocflags/P2_party1_read_flags_c";
  271. strcpy(tmp, p0_filename0);
  272. strcat(tmp, std::to_string(i).c_str());
  273. int w1 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  274. written = write(w1, flags, db_nitems * sizeof(int8_t));
  275. if(written<0) perror("Write error");
  276. close(w1);
  277. p0_filename0 = "/media/ramdisk/avadapal/preprocflags/P2_party1_read_flags_d";
  278. strcpy(tmp, p0_filename0);
  279. strcat(tmp, std::to_string(i).c_str());
  280. int w2 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  281. written = write(w2,flags, db_nitems * sizeof(int8_t));
  282. if(written<0) perror("Write error");
  283. close(w2);
  284. p0_filename0 = "/media/ramdisk/avadapal/preprocflags/P2_party1_write_flags_b";
  285. strcpy(tmp, p0_filename0);
  286. strcat(tmp, std::to_string(i).c_str());
  287. int w4 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  288. written = write(w4,flags, db_nitems * sizeof(int8_t));
  289. if(written<0) perror("Write error");
  290. close(w4);
  291. p0_filename0 = "/media/ramdisk/avadapal/preprocflags/P2_party1_write_flags_c";
  292. strcpy(tmp, p0_filename0);
  293. strcat(tmp, std::to_string(i).c_str());
  294. int w5 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  295. written = write(w5, flags, db_nitems * sizeof(int8_t));
  296. if(written<0) perror("Write error");
  297. close(w5);
  298. p0_filename0 = "/media/ramdisk/avadapal/preprocflags/P2_party1_write_flags_d";
  299. strcpy(tmp, p0_filename0);
  300. strcat(tmp, std::to_string(i).c_str());
  301. int w6 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  302. written = write(w6, flags, db_nitems * sizeof(int8_t));
  303. if(written<0) perror("Write error");
  304. close(w6);
  305. p0_filename0 = "/media/ramdisk/avadapal/preprocflags/P2_party1_write_b";
  306. strcpy(tmp, p0_filename0);
  307. strcat(tmp, std::to_string(i).c_str());
  308. w4 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  309. written = write(w4, outs_, db_nitems * sizeof(int64_t));
  310. if(written<0) perror("Write error");
  311. close(w4);
  312. //char const * p0_filename0;
  313. p0_filename0 = "/media/ramdisk/avadapal/preprocflags/P2_party1_write_c";
  314. strcpy(tmp, p0_filename0);
  315. strcat(tmp, std::to_string(i).c_str());
  316. w5 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  317. written = write(w5, outs_, db_nitems * sizeof(int64_t));
  318. if(written<0) perror("Write error");
  319. close(w5);
  320. p0_filename0 = "/media/ramdisk/avadapal/preprocflags/P2_party1_write_d";
  321. strcpy(tmp, p0_filename0);
  322. strcat(tmp, std::to_string(i).c_str());
  323. w6 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  324. written = write(w6, outs_, db_nitems * sizeof(int64_t));
  325. if(written<0) perror("Write error");
  326. close(w6);
  327. }
  328. }