- good_buf = (char *) malloc(maxfilelen);
- memset(good_buf, '\0', maxfilelen);
- temp_buf = (char *) malloc(maxoplen);
- memset(temp_buf, '\0', maxoplen);
+ if (o_direct) {
+ int ret;
+
+ ret = posix_memalign((void **)&good_buf, writebdy, maxfilelen);
+ if (ret) {
+ prt("main: posix_memalign failed: %s\n", strerror(ret));
+ exit(96);
+ }
+
+ ret = posix_memalign((void **)&temp_buf, readbdy, maxoplen);
+ if (ret) {
+ prt("main: posix_memalign failed: %s\n", strerror(ret));
+ exit(97);
+ }
+ } else {
+ good_buf = malloc(maxfilelen);
+ if (!good_buf) {
+ prt("malloc failed.\n");
+ exit(98);
+ }
+
+ temp_buf = malloc(maxoplen);
+ if (!temp_buf) {
+ prt("malloc failed.\n");
+ exit(99);
+ }
+ }
+ memset(good_buf, 0, maxfilelen);
+ memset(temp_buf, 0, maxoplen);
+