socket.cpp 842 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #include <sys/socket.h>
  2. #include <errno.h>
  3. #include <Kernel/Syscall.h>
  4. extern "C" {
  5. int socket(int domain, int type, int protocol)
  6. {
  7. int rc = syscall(SC_socket, domain, type, protocol);
  8. __RETURN_WITH_ERRNO(rc, rc, -1);
  9. }
  10. int bind(int sockfd, const sockaddr* addr, socklen_t addrlen)
  11. {
  12. int rc = syscall(SC_bind, sockfd, addr, addrlen);
  13. __RETURN_WITH_ERRNO(rc, rc, -1);
  14. }
  15. int listen(int sockfd, int backlog)
  16. {
  17. int rc = syscall(SC_listen, sockfd, backlog);
  18. __RETURN_WITH_ERRNO(rc, rc, -1);
  19. }
  20. int accept(int sockfd, sockaddr* addr, socklen_t* addrlen)
  21. {
  22. int rc = syscall(SC_accept, sockfd, addr, addrlen);
  23. __RETURN_WITH_ERRNO(rc, rc, -1);
  24. }
  25. int connect(int sockfd, const sockaddr* addr, socklen_t addrlen)
  26. {
  27. int rc = syscall(SC_connect, sockfd, addr, addrlen);
  28. __RETURN_WITH_ERRNO(rc, rc, -1);
  29. }
  30. }