mirror of
https://github.com/vishapoberon/compiler.git
synced 2026-04-06 00:32:24 +00:00
Expose file name and path max lengths in Files.Mod.
This commit is contained in:
parent
f7904230c9
commit
ee01f97392
3 changed files with 28 additions and 1 deletions
|
|
@ -54,6 +54,9 @@ MODULE Files; (* J. Templ 1.12. 89/12.4.95 Oberon files mapped onto Unix files
|
||||||
|
|
||||||
|
|
||||||
VAR
|
VAR
|
||||||
|
MaxPathLength-: INTEGER;
|
||||||
|
MaxNameLength-: INTEGER;
|
||||||
|
|
||||||
files: POINTER [1] TO FileDesc; (* List of files backed by an OS file, whether open, registered or temporary. *)
|
files: POINTER [1] TO FileDesc; (* List of files backed by an OS file, whether open, registered or temporary. *)
|
||||||
tempno: INTEGER;
|
tempno: INTEGER;
|
||||||
HOME: ARRAY 1024 OF CHAR;
|
HOME: ARRAY 1024 OF CHAR;
|
||||||
|
|
@ -741,4 +744,6 @@ BEGIN
|
||||||
tempno := -1;
|
tempno := -1;
|
||||||
Heap.FileCount := 0;
|
Heap.FileCount := 0;
|
||||||
HOME := ""; Platform.GetEnv("HOME", HOME);
|
HOME := ""; Platform.GetEnv("HOME", HOME);
|
||||||
|
MaxPathLength := Platform.MaxPathLength();
|
||||||
|
MaxNameLength := Platform.MaxNameLength();
|
||||||
END Files.
|
END Files.
|
||||||
|
|
|
||||||
|
|
@ -44,6 +44,7 @@ PROCEDURE -Aincludeerrno '#include <errno.h>';
|
||||||
PROCEDURE -Astdlib '#include <stdlib.h>';
|
PROCEDURE -Astdlib '#include <stdlib.h>';
|
||||||
PROCEDURE -Astdio '#include <stdio.h>';
|
PROCEDURE -Astdio '#include <stdio.h>';
|
||||||
PROCEDURE -Aerrno '#include <errno.h>';
|
PROCEDURE -Aerrno '#include <errno.h>';
|
||||||
|
PROCEDURE -Alimits '#include <limits.h>';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -66,7 +67,6 @@ PROCEDURE -EINTR(): ErrorCode 'EINTR';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
PROCEDURE TooManyFiles*(e: ErrorCode): BOOLEAN;
|
PROCEDURE TooManyFiles*(e: ErrorCode): BOOLEAN;
|
||||||
BEGIN RETURN (e = EMFILE()) OR (e = ENFILE()) END TooManyFiles;
|
BEGIN RETURN (e = EMFILE()) OR (e = ENFILE()) END TooManyFiles;
|
||||||
|
|
||||||
|
|
@ -95,6 +95,17 @@ BEGIN RETURN e = EINTR() END Interrupted;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
(* Expose file and path name length limits *)
|
||||||
|
|
||||||
|
PROCEDURE -NAMEMAX(): INTEGER 'NAME_MAX';
|
||||||
|
PROCEDURE -PATHMAX(): INTEGER 'PATH_MAX';
|
||||||
|
|
||||||
|
PROCEDURE MaxNameLength*(): INTEGER; BEGIN RETURN NAMEMAX() END MaxNameLength;
|
||||||
|
PROCEDURE MaxPathLength*(): INTEGER; BEGIN RETURN PATHMAX() END MaxPathLength;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
(* OS memory allocaton *)
|
(* OS memory allocaton *)
|
||||||
|
|
||||||
PROCEDURE -allocate (size: SYSTEM.ADDRESS): SYSTEM.ADDRESS "(ADDRESS)((void*)malloc((size_t)size))";
|
PROCEDURE -allocate (size: SYSTEM.ADDRESS): SYSTEM.ADDRESS "(ADDRESS)((void*)malloc((size_t)size))";
|
||||||
|
|
|
||||||
|
|
@ -91,6 +91,17 @@ BEGIN RETURN e = EINTR() END Interrupted;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
(* Expose file and path name length limits (same on Windows) *)
|
||||||
|
|
||||||
|
PROCEDURE -MAXPATH(): INTEGER 'MAX_PATH';
|
||||||
|
|
||||||
|
PROCEDURE MaxNameLength*(): INTEGER; BEGIN RETURN MAXPATH() END MaxNameLength;
|
||||||
|
PROCEDURE MaxPathLength*(): INTEGER; BEGIN RETURN MAXPATH() END MaxPathLength;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
(* OS memory allocaton *)
|
(* OS memory allocaton *)
|
||||||
|
|
||||||
PROCEDURE -allocate(size: SYSTEM.ADDRESS): SYSTEM.ADDRESS "(ADDRESS)((void*)HeapAlloc(GetProcessHeap(), 0, (size_t)size))";
|
PROCEDURE -allocate(size: SYSTEM.ADDRESS): SYSTEM.ADDRESS "(ADDRESS)((void*)HeapAlloc(GetProcessHeap(), 0, (size_t)size))";
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue