Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void test_devchar()
- {
- error_t er;
- OPtr<OPseudoFile> file; // do not garbage collect - such would delete the file
- if (ERROR(er = CreateTempKernFile(file)))
- {
- printf("couldn't create file %lli\n", er);
- return;
- }
- file->OnUserWrite([](OPtr<OPseudoFile> file, const void * buffer, size_t length, size_t off, size_t *bytesRead)
- {
- uint64_t len;
- const char * path;
- char msg[100];
- len = MIN(length, sizeof(msg) - 1);
- memset(msg, 0, 100);
- memcpy(msg, buffer, len);
- if (msg[len - 1] == '\n')
- msg[len - 1] = 0;
- if (ERROR(file->GetPath(&path)))
- path = "NULL";
- LogPrint(kLogInfo, "User said: %s to device %s\n", msg, path);
- *bytesRead = length;
- return true;
- });
- file->OnUserRead([](OPtr<OPseudoFile> file, void * buffer, size_t length, size_t off, size_t *bytesRead)
- {
- const char * msg;
- size_t mlen;
- msg = "Hello usermode component";
- mlen = MIN(length, 25 - 1 - off);
- memcpy(buffer, &msg[off], mlen);
- *bytesRead = mlen;
- return true;
- });
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement