126 |
/* printf("SETTING %d TO %d\n", fd, nfds); */ |
/* printf("SETTING %d TO %d\n", fd, nfds); */ |
127 |
pfds[nfds] = v; |
pfds[nfds] = v; |
128 |
nfds++; |
nfds++; |
129 |
} else |
} // else ; |
|
; |
|
130 |
} |
} |
131 |
} |
} |
132 |
/* printf("POLL: %d/%d\n", nfds, ufds_size); */ |
/* printf("POLL: %d/%d\n", nfds, ufds_size); */ |
350 |
|
|
351 |
value ml_sizeofoff_t(value unit) |
value ml_sizeofoff_t(value unit) |
352 |
{ |
{ |
353 |
return Val_int(sizeof(off_t)); |
return Val_int(sizeof(OFF_T)); |
354 |
} |
} |
355 |
|
|
356 |
/******************************************************************* |
/******************************************************************* |
394 |
#define ZEROS_LEN 1024 |
#define ZEROS_LEN 1024 |
395 |
value mld_ftruncate_64(value fd_v, value len_v) |
value mld_ftruncate_64(value fd_v, value len_v) |
396 |
{ |
{ |
397 |
off_t len = Int64_val(len_v); |
OFF_T len = Int64_val(len_v); |
398 |
OS_FD fd = Fd_val(fd_v); |
OS_FD fd = Fd_val(fd_v); |
399 |
|
|
400 |
os_ftruncate(fd, len); |
os_ftruncate(fd, len); |
499 |
value HASH_NAME##_unsafe64_fd (value digest_v, value fd_v, value pos_v, value len_v) \ |
value HASH_NAME##_unsafe64_fd (value digest_v, value fd_v, value pos_v, value len_v) \ |
500 |
{ \ |
{ \ |
501 |
OS_FD fd = Fd_val(fd_v); \ |
OS_FD fd = Fd_val(fd_v); \ |
502 |
off_t pos = Int64_val(pos_v); \ |
OFF_T pos = Int64_val(pos_v); \ |
503 |
off_t len = Int64_val(len_v); \ |
OFF_T len = Int64_val(len_v); \ |
504 |
unsigned char *digest = String_val(digest_v); \ |
unsigned char *digest = String_val(digest_v); \ |
505 |
HASH_CONTEXT context; \ |
HASH_CONTEXT context; \ |
506 |
int nread; \ |
ssize_t nread; \ |
507 |
\ |
\ |
508 |
HASH_INIT (&context); \ |
HASH_INIT (&context); \ |
509 |
os_lseek(fd, pos, SEEK_SET); \ |
os_lseek(fd, pos, SEEK_SET); \ |
510 |
\ |
\ |
511 |
while (len!=0){ \ |
while (len!=0){ \ |
512 |
int max_nread = HASH_BUFFER_LEN > len ? len : HASH_BUFFER_LEN; \ |
size_t max_nread = HASH_BUFFER_LEN > len ? len : HASH_BUFFER_LEN; \ |
513 |
\ |
\ |
514 |
nread = os_read (fd, hash_buffer, max_nread); \ |
nread = os_read (fd, hash_buffer, max_nread); \ |
515 |
\ |
\ |
551 |
unsigned char *digest = String_val(digest_v); \ |
unsigned char *digest = String_val(digest_v); \ |
552 |
FILE *file; \ |
FILE *file; \ |
553 |
HASH_CONTEXT context; \ |
HASH_CONTEXT context; \ |
554 |
int len; \ |
size_t len; \ |
555 |
\ |
\ |
556 |
if ((file = fopen (filename, "rb")) == NULL) \ |
if ((file = fopen (filename, "rb")) == NULL) \ |
557 |
raise_not_found(); \ |
raise_not_found(); \ |
585 |
*******************************************************************/ |
*******************************************************************/ |
586 |
#include "tiger.h" |
#include "tiger.h" |
587 |
|
|
588 |
static void tiger_tree_fd(OS_FD fd, int len, int pos, int block_size, char *digest) |
static void tiger_tree_fd(OS_FD fd, size_t len, size_t pos, size_t block_size, char *digest) |
589 |
{ |
{ |
590 |
static char tiger_buffer[BLOCK_SIZE+1]; |
static char tiger_buffer[BLOCK_SIZE+1]; |
591 |
if(block_size == BLOCK_SIZE){ |
if(block_size == BLOCK_SIZE){ |
592 |
int length = (len - pos > BLOCK_SIZE) ? BLOCK_SIZE : len - pos; |
size_t length = (len - pos > BLOCK_SIZE) ? BLOCK_SIZE : len - pos; |
593 |
char *s = tiger_buffer+1; |
char *s = tiger_buffer+1; |
594 |
int toread = length; |
size_t toread = length; |
595 |
char *curs = s; |
char *curs = s; |
596 |
while (toread!=0){ |
while (toread!=0){ |
597 |
int max_nread = toread; |
int max_nread = toread; |
598 |
/* HASH_BUFFER_LEN > toread ? toread : HASH_BUFFER_LEN; */ |
/* HASH_BUFFER_LEN > toread ? toread : HASH_BUFFER_LEN; */ |
599 |
|
|
600 |
int nread = os_read (fd, curs, max_nread); |
ssize_t nread = os_read (fd, curs, max_nread); |
601 |
|
|
602 |
if(nread <= 0) { |
if(nread <= 0) { |
603 |
unix_error(errno, "tiger_safe_fd: Read", Nothing); |
unix_error(errno, "tiger_safe_fd: Read", Nothing); |
623 |
value tigertree_unsafe64_fd (value digest_v, value fd_v, value pos_v, value len_v) |
value tigertree_unsafe64_fd (value digest_v, value fd_v, value pos_v, value len_v) |
624 |
{ |
{ |
625 |
OS_FD fd = Fd_val(fd_v); |
OS_FD fd = Fd_val(fd_v); |
626 |
off_t pos = Int64_val(pos_v); |
OFF_T pos = Int64_val(pos_v); |
627 |
off_t len = Int64_val(len_v); |
OFF_T len = Int64_val(len_v); |
628 |
unsigned char *digest = String_val(digest_v); |
unsigned char *digest = String_val(digest_v); |
629 |
/* int nread; */ |
/* int nread; */ |
630 |
|
|
675 |
|
|
676 |
// #include "socketaddr.h" |
// #include "socketaddr.h" |
677 |
#ifndef _WIN32 |
#ifndef _WIN32 |
678 |
#include <sys/types.h> |
// #include <sys/types.h> |
679 |
#include <netdb.h> |
#include <netdb.h> |
680 |
#endif |
#endif |
681 |
|
|