index 7f5b91dd779c396a7ff8da6211525f3f0b6acd1d..e9a1e496f58ce8722786070a171718757c3aaa55 100644 (file)
MODULE HostFiles;
- IMPORT S := SYSTEM, Kernel, HostLang, Files, Log, stdlib := C99stdlib,
- unistd := C99unistd, dirent := C99dirent, fcntl := C99fcntl,
- sysstat := C99sys_stat, stdio := C99stdio, errno := C99errno,
- macro := C99macro, libgen := C99libgen, time := C99time;
+ IMPORT S := SYSTEM, Kernel, HostLang, Files, Log, stdlib := PosixCstdlib,
+ unistd := PosixCunistd, dirent := PosixCdirent, fcntl := PosixCfcntl,
+ sysstat := PosixCsys_stat, stdio := PosixCstdio, errno := PosixCerrno,
+ macro := PosixCmacro, libgen := PosixClibgen, time := PosixCtime;
(* !!! add buffer cache *)
+ (* !!! HostFiles64 must be base for HostFiles *)
CONST
closed = 0; new = 1; temp = 2; shared = 3; exclusive = 4;
File = POINTER TO RECORD (Files.File)
state: INTEGER;
- len: INTEGER;
+ len: INTEGER; (* !!! must be sysstat.off_t *)
fd: unistd.int;
ino: sysstat.ino_t;
pathname: FullName
IF res # -1 THEN
NEW(f); HostLang.HostToString(pathname, f.pathname, HostLang.pep383, err);
IF err = 0 THEN
- f.fd := fd; f.len := s.st_size; f.ino := s.st_ino;
+ f.fd := fd; f.len := S.VAL((*!!!*)INTEGER, s.st_size); f.ino := s.st_ino;
IF isShared THEN f.state := shared
ELSE f.state := exclusive
END;
END;
t.name := name$;
t.type := ""; (* ??? *)
- t.length := s.st_size;
+ t.length := S.VAL((*!!!*)INTEGER, s.st_size);
tm := time.localtime(s.st_mtim.tv_sec);
IF tm # NIL THEN
t.modified.year := tm.tm_year + 1900;