MCPcopy Create free account
hub / github.com/danoon2/Boxedwine / krecvfrom

Function krecvfrom

source/kernel/ksocket.cpp:333–344  ·  view source on GitHub ↗

ssize_t recvfrom(int socket, void *restrict buffer, size_t length, int flags, struct sockaddr *restrict address, socklen_t *restrict address_len);

Source from the content-addressed store, hash-verified

331
332// ssize_t recvfrom(int socket, void *restrict buffer, size_t length, int flags, struct sockaddr *restrict address, socklen_t *restrict address_len);
333U32 krecvfrom(KThread* thread, U32 socket, U32 buffer, U32 length, U32 flags, U32 address, U32 address_len) {
334 KFileDescriptorPtr fd = thread->process->getFileDescriptor(socket);
335
336 if (!fd) {
337 return -K_EBADF;
338 }
339 if (IS_NOT_SOCKET(fd)) {
340 return -K_ENOTSOCK;
341 }
342 std::shared_ptr<KSocketObject> s = std::dynamic_pointer_cast<KSocketObject>(fd->kobject);
343 return s->recvfrom(thread, fd, buffer, length, flags, address, address_len);
344}
345
346bool isNativeSocket(KThread* thread, FD desc) {
347 KFileDescriptorPtr fd = thread->process->getFileDescriptor(desc);

Callers 2

syscall_socketcallFunction · 0.85
syscall_recvfromFunction · 0.85

Calls 2

getFileDescriptorMethod · 0.80
recvfromMethod · 0.45

Tested by

no test coverage detected