jcoffland
Joined 11 years ago
Joined 11 years ago
#include <stdio.h>
#include <stdlib.h>
#include <sys/utsname.h>
#include <liburing.h>
#include <liburing/io_uring.h>
static const char *op_strs[] = {
"IORING_OP_NOP",
"IORING_OP_READV",
"IORING_OP_WRITEV",
"IORING_OP_FSYNC",
"IORING_OP_READ_FIXED",
"IORING_OP_WRITE_FIXED",
"IORING_OP_POLL_ADD",
"IORING_OP_POLL_REMOVE",
"IORING_OP_SYNC_FILE_RANGE",
"IORING_OP_SENDMSG",
"IORING_OP_RECVMSG",
"IORING_OP_TIMEOUT",
"IORING_OP_TIMEOUT_REMOVE",
"IORING_OP_ACCEPT",
"IORING_OP_ASYNC_CANCEL",
"IORING_OP_LINK_TIMEOUT",
"IORING_OP_CONNECT",
"IORING_OP_FALLOCATE",
"IORING_OP_OPENAT",
"IORING_OP_CLOSE",
"IORING_OP_FILES_UPDATE",
"IORING_OP_STATX",
"IORING_OP_READ",
"IORING_OP_WRITE",
"IORING_OP_FADVISE",
"IORING_OP_MADVISE",
"IORING_OP_SEND",
"IORING_OP_RECV",
"IORING_OP_OPENAT2",
"IORING_OP_EPOLL_CTL",
"IORING_OP_SPLICE",
"IORING_OP_PROVIDE_BUFFERS",
"IORING_OP_REMOVE_BUFFERS",
};
int main() {
struct utsname u;
uname(&u);
struct io_uring_probe *probe = io_uring_get_probe();
if (!probe) {
printf("Kernel %s does not support io_uring.\n", u.release);
return 0;
}
printf("List of kernel %s's supported io_uring operations:\n", u.release);
for (int i = 0; i < IORING_OP_LAST; i++ ) {
const char *answer = io_uring_opcode_supported(probe, i) ? "yes" : "no";
printf("%s: %s\n", op_strs[i], answer);
}
free(probe);
return 0;
}I don't mind so much someone selling my software on a CD. What I do mind is that they changed the name to trick the buyer. Perhaps I should be using a different license.
Why is it significant that this post was from a woman or that she has red hair? This comment sounds like a backhanded compliment, at best.
Another way to go Open-Source for a lot less money (~$1500) is to buy a K40 on EBay and refit it with a Buildbotics controller.
The other day I needed a faceplate for an outlet with a circular 240v US dryer plug and a two port 120v US plug. I couldn't find anything at the hardware store that would work but I found drawings for the junction box and plugs online. After an hour or two with LibreCAD and CAMotics, I was ready to LASER cut my faceplate from 1/4" poplar. I was really happy when it fit exactly the first time. Now I keep looking behind the dryer to admire my handiwork.
Disclaimer: I'm a creator of CAMotics and Buildbotics.
* http://cauldrondevelopment.com/ * http://folding.stanford.edu/ * http://camotics.org/ * http://joe.coffland.com/
I live in Petaluma, CA. If you're in the area, send me an email. I'm always up for a coffee or a beer and interesting conversation.