-static void set_invalid_timespec_msg(const char *field,
- const long long sec,
- const long nsec,
- const char *filename,
- int fd)
-{
- if (filename != NULL)
- PyErr_Format(PyExc_ValueError,
- "invalid %s timespec (%lld %ld) for file \"%s\"",
- field, sec, nsec, filename);
- else
- PyErr_Format(PyExc_ValueError,
- "invalid %s timespec (%lld %ld) for file descriptor %d",
- field, sec, nsec, fd);
-}
-
-
-static int normalize_timespec_values(const char *name,
- long long *sec,
- long *nsec,
- const char *filename,
- int fd)
-{
- if (*nsec < -999999999 || *nsec > 999999999)
- {
- set_invalid_timespec_msg(name, *sec, *nsec, filename, fd);
- return 0;
- }
- if (*nsec < 0)
- {
- if (*sec == LONG_MIN)
- {
- set_invalid_timespec_msg(name, *sec, *nsec, filename, fd);
- return 0;
- }
- *nsec += 1000000000;
- *sec -= 1;
- }
- return 1;
-}
-
-