Sha256: 808d90007c33839085539862024257df95bfbfe5ebb884510da7909e6850b8ea

Contents?: true

Size: 599 Bytes

Versions: 3

Compression:

Stored size: 599 Bytes

Contents

#include <unistd.h>
#include "open.h"
#include "e.h"
#include "load.h"

static int readall(int fd,void *x,long long xlen)
{
  long long r;
  while (xlen > 0) {
    r = xlen;
    if (r > 1048576) r = 1048576;
    r = read(fd,x,r);
    if (r == 0) errno = EPROTO;
    if (r <= 0) {
      if (errno == EINTR || errno == EAGAIN || errno == EWOULDBLOCK) continue;
      return -1;
    }
    x += r;
    xlen -= r;
  }
  return 0;
}

int load(const char *fn,void *x,long long xlen)
{
  int fd;
  int r;
  fd = open_read(fn);
  if (fd == -1) return -1;
  r = readall(fd,x,xlen);
  close(fd);
  return r;
}

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
ruby_nacl-0.1.2 ext/ruby_nacl/NaCl/curvecp/load.c
ruby_nacl-0.1.1 ext/ruby_nacl/NaCl/curvecp/load.c
ruby_nacl-0.1.0 ext/ruby_nacl/NaCl/curvecp/load.c