mirror of
https://github.com/vishapoberon/compiler.git
synced 2026-04-05 23:22:25 +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
|
||||
MaxPathLength-: INTEGER;
|
||||
MaxNameLength-: INTEGER;
|
||||
|
||||
files: POINTER [1] TO FileDesc; (* List of files backed by an OS file, whether open, registered or temporary. *)
|
||||
tempno: INTEGER;
|
||||
HOME: ARRAY 1024 OF CHAR;
|
||||
|
|
@ -741,4 +744,6 @@ BEGIN
|
|||
tempno := -1;
|
||||
Heap.FileCount := 0;
|
||||
HOME := ""; Platform.GetEnv("HOME", HOME);
|
||||
MaxPathLength := Platform.MaxPathLength();
|
||||
MaxNameLength := Platform.MaxNameLength();
|
||||
END Files.
|
||||
|
|
|
|||
|
|
@ -44,6 +44,7 @@ PROCEDURE -Aincludeerrno '#include <errno.h>';
|
|||
PROCEDURE -Astdlib '#include <stdlib.h>';
|
||||
PROCEDURE -Astdio '#include <stdio.h>';
|
||||
PROCEDURE -Aerrno '#include <errno.h>';
|
||||
PROCEDURE -Alimits '#include <limits.h>';
|
||||
|
||||
|
||||
|
||||
|
|
@ -66,7 +67,6 @@ PROCEDURE -EINTR(): ErrorCode 'EINTR';
|
|||
|
||||
|
||||
|
||||
|
||||
PROCEDURE TooManyFiles*(e: ErrorCode): BOOLEAN;
|
||||
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 *)
|
||||
|
||||
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 *)
|
||||
|
||||
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