Import Upstream version 20180207
[hcoop/debian/mlton.git] / basis-library / posix / error.sig
CommitLineData
7f918cf1
CE
1signature POSIX_ERROR =
2 sig
3 eqtype syserror
4
5 val toWord: syserror -> SysWord.word
6 val fromWord: SysWord.word -> syserror
7
8 val errorMsg: syserror -> string
9 val errorName: syserror -> string
10 val syserror: string -> syserror option
11
12 val acces: syserror
13 val again: syserror
14 val badf: syserror
15 val badmsg: syserror
16 val busy: syserror
17 val canceled: syserror
18 val child: syserror
19 val deadlk: syserror
20 val dom: syserror
21 val exist: syserror
22 val fault: syserror
23 val fbig: syserror
24 val inprogress: syserror
25 val intr: syserror
26 val inval: syserror
27 val io: syserror
28 val isdir: syserror
29 val loop: syserror
30 val mfile: syserror
31 val mlink: syserror
32 val msgsize: syserror
33 val nametoolong: syserror
34 val nfile: syserror
35 val nodev: syserror
36 val noent: syserror
37 val noexec: syserror
38 val nolck: syserror
39 val nomem: syserror
40 val nospc: syserror
41 val nosys: syserror
42 val notdir: syserror
43 val notempty: syserror
44 val notsup: syserror
45 val notty: syserror
46 val nxio: syserror
47 val perm: syserror
48 val pipe: syserror
49 val range: syserror
50 val rofs: syserror
51 val spipe: syserror
52 val srch: syserror
53 val toobig: syserror
54 val xdev: syserror
55
56 end
57
58signature POSIX_ERROR_EXTRA =
59 sig
60 include POSIX_ERROR
61
62 exception SysErr of string * syserror option
63
64 val cleared: syserror
65 val raiseSys: syserror -> 'a
66 val raiseSysWithMsg: syserror * string -> 'a
67
68 structure SysCall :
69 sig
70 val blocker: (unit -> (unit -> unit)) ref
71 val restartFlag: bool ref
72
73 val syscallErr:
74 {clear: bool, restart: bool, errVal: ''a} *
75 (unit -> {return: ''a C_Errno.t,
76 post: ''a -> 'b,
77 handlers: (syserror * (unit -> 'b)) list}) -> 'b
78
79 (* clear = false, restart = false, errVal = ~1
80 * post = fn _ => (), handlers = []
81 *)
82 val simple: (unit -> C_Int.t C_Errno.t) -> unit
83 (* clear = false, restart = false,
84 * post = fn _ => (), handlers = []
85 *)
86 val simple': {errVal: ''a} * (unit -> ''a C_Errno.t) -> unit
87
88 (* clear = false, restart = true, errVal = ~1
89 * post = fn _ => (), handlers = []
90 *)
91 val simpleRestart: (unit -> C_Int.t C_Errno.t) -> unit
92 (* clear = false, restart = true,
93 * post = fn _ => (), handlers = []
94 *)
95 val simpleRestart': {errVal: ''a} * (unit -> ''a C_Errno.t) -> unit
96
97 (* clear = false, restart = false, errVal = ~1
98 * post = fn ret => ret, handlers = []
99 *)
100 val simpleResult: (unit -> C_Int.t C_Errno.t) -> C_Int.t
101 (* clear = false, restart = false,
102 * post = fn ret => ret, handlers = []
103 *)
104 val simpleResult': {errVal: ''a} * (unit -> ''a C_Errno.t) -> ''a
105
106 (* clear = false, restart = true, errVal = ~1
107 * post = fn ret => ret, handlers = []
108 *)
109 val simpleResultRestart: (unit -> C_Int.t C_Errno.t) -> C_Int.t
110 (* clear = false, restart = true,
111 * post = fn ret => ret, handlers = []
112 *)
113 val simpleResultRestart': {errVal: ''a} * (unit -> ''a C_Errno.t) -> ''a
114
115 (* clear = false, restart = false, errVal = ~1
116 * handlers = []
117 *)
118 val syscall: (unit -> C_Int.t C_Errno.t * (C_Int.t -> 'a)) -> 'a
119 (* clear = false, restart = false,
120 * handlers = []
121 *)
122 val syscall': {errVal: ''a} * (unit -> ''a C_Errno.t * (''a -> 'b)) -> 'b
123
124 (* clear = false, restart = true, errVal = ~1
125 * handlers = []
126 *)
127 val syscallRestart: (unit -> C_Int.t C_Errno.t * (C_Int.t -> 'a)) -> 'a
128 (* clear = false, restart = true,
129 * handlers = []
130 *)
131 val syscallRestart': {errVal: ''a} * (unit -> ''a C_Errno.t * (''a -> 'b)) -> 'b
132 end
133 end