sys-sendfile.c 858 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. /*
  2. * <sys/sendfile.h> wrapper functions.
  3. *
  4. * Authors:
  5. * Jonathan Pryor ([email protected])
  6. *
  7. * Copyright (C) 2004 Jonathan Pryor
  8. */
  9. #include <config.h>
  10. #include <sys/types.h>
  11. #include <errno.h>
  12. #include "map.h"
  13. #include "mph.h"
  14. #ifdef HAVE_SYS_SENDFILE_H
  15. #include <sys/sendfile.h>
  16. #endif /* ndef HAVE_SYS_SENDFILE_H */
  17. G_BEGIN_DECLS
  18. #ifdef HAVE_SENDFILE
  19. mph_ssize_t
  20. Mono_Posix_Syscall_sendfile (int out_fd, int in_fd, mph_off_t *offset, mph_size_t count)
  21. {
  22. off_t _offset;
  23. ssize_t r;
  24. mph_return_if_off_t_overflow (*offset);
  25. _offset = *offset;
  26. #if defined(PLATFORM_MACOSX) || defined(PLATFORM_BSD)
  27. /* The BSD version has 6 arguments */
  28. g_assert_not_reached ();
  29. #else
  30. r = sendfile (out_fd, in_fd, &_offset, (size_t) count);
  31. #endif
  32. *offset = _offset;
  33. return r;
  34. }
  35. #endif /* ndef HAVE_SENDFILE */
  36. G_END_DECLS
  37. /*
  38. * vim: noexpandtab
  39. */