Import Debian changes 20180207-1
[hcoop/debian/mlton.git] / basis-library / mlton / rlimit.sml
1 (* Copyright (C) 2017 Matthew Fluet.
2 * Copyright (C) 1999-2007 Henry Cejtin, Matthew Fluet, Suresh
3 * Jagannathan, and Stephen Weeks.
4 * Copyright (C) 1997-2000 NEC Research Institute.
5 *
6 * MLton is released under a BSD-style license.
7 * See the file MLton-LICENSE for details.
8 *)
9
10 structure MLtonRlimit: MLTON_RLIMIT =
11 struct
12 open PrimitiveFFI.MLton.Rlimit
13 structure RLim =
14 struct
15 type t = C_RLim.t
16 val castFromSysWord = C_RLim.castFromSysWord
17 val castToSysWord = C_RLim.castToSysWord
18 end
19 type t = C_Int.t
20
21 val get =
22 fn (r: t) =>
23 PosixError.SysCall.syscall
24 (fn () =>
25 (get r, fn _ =>
26 {hard = getHard (),
27 soft = getSoft ()}))
28
29 val set =
30 fn (r: t, {hard, soft}) =>
31 PosixError.SysCall.simple
32 (fn () => set (r, hard, soft))
33
34 val infinity = INFINITY
35
36 val coreFileSize = CORE
37 val cpuTime = CPU
38 val dataSize = DATA
39 val fileSize = FSIZE
40 val numFiles = NOFILE
41 val stackSize = STACK
42 val virtualMemorySize = AS
43
44 (* NOT STANDARD *)
45 val lockedInMemorySize = MEMLOCK
46 val numProcesses = NPROC
47 val residentSetSize = RSS
48 (* *)
49
50 end