In all demo bundles, the xillybus read * and xillybus write * streams are asynchronous.xillybus mem 8 is seekable and therefore synchronous.
is it Only at the host driver level ?
How to know the user application layer, The open file is block or non block?
For example in memwrite.c: how to know _write() function is block or non block
void allwrite(int fd, unsigned char *buf, int len) {
int sent = 0;
int rc;
while (sent < len) {
rc = _write(fd, buf + sent, len - sent);
if ((rc < 0) && (errno == EINTR))
continue;
if (rc < 0) {
perror("allwrite() failed to write");
exit(1);
}
if (rc == 0) {
fprintf(stderr, "Reached write EOF (?!)\n");
exit(1);
}
sent += rc;
}
}