@salang/sa 0.1.3 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/sa.js +13 -1
- package/package.json +8 -7
- package/sa_std/alloc/layout.sal +12 -0
- package/sa_std/alloc/prelude.sa +1 -0
- package/sa_std/alloc/prelude.sal +1 -0
- package/sa_std/alloc/string.sa +3 -0
- package/sa_std/alloc/vec.sa +684 -0
- package/sa_std/alloc/vec.sal +4 -0
- package/sa_std/any.sa +130 -0
- package/sa_std/any.sal +23 -0
- package/sa_std/array.sa +1876 -0
- package/sa_std/ascii.sa +2 -0
- package/sa_std/ascii.sal +1 -0
- package/sa_std/async.sla +116 -0
- package/sa_std/binary_heap.sa +3003 -0
- package/sa_std/binary_heap.sal +7 -0
- package/sa_std/borrow.sa +171 -0
- package/sa_std/borrow.sal +13 -0
- package/sa_std/btree_map.sa +2210 -0
- package/sa_std/btree_map.sal +11 -0
- package/sa_std/btree_set.sa +1072 -0
- package/sa_std/btree_set.sal +6 -0
- package/sa_std/char.sa +1309 -0
- package/sa_std/char.sal +50 -0
- package/sa_std/cmp.sa +554 -0
- package/sa_std/cmp.sal +14 -0
- package/sa_std/collections/binary_heap.sa +1 -0
- package/sa_std/collections/btree_map.sa +1 -0
- package/sa_std/collections/btree_set.sa +1 -0
- package/sa_std/collections/hashmap.sa +1 -0
- package/sa_std/collections/hashset.sa +1 -0
- package/sa_std/collections/linked_list.sa +1120 -0
- package/sa_std/collections/linked_list.sal +10 -0
- package/sa_std/collections/prelude.sa +7 -0
- package/sa_std/collections/prelude.sal +1 -0
- package/sa_std/collections/vec_deque.sa +1 -0
- package/sa_std/collections.sal +13 -0
- package/sa_std/convert.sa +1115 -0
- package/sa_std/convert.sal +24 -0
- package/sa_std/core/arc.sa +233 -0
- package/sa_std/core/arc.sal +4 -0
- package/sa_std/core/ascii.sa +784 -0
- package/sa_std/core/ascii.sal +34 -0
- package/sa_std/core/bit.sa +41 -0
- package/sa_std/core/box.sa +1 -0
- package/sa_std/core/box.sal +2 -0
- package/sa_std/core/cell.sa +108 -0
- package/sa_std/core/cell.sal +5 -0
- package/sa_std/core/cleanup.sa +26 -0
- package/sa_std/core/control.sa +20 -0
- package/sa_std/core/derive.sa +60 -0
- package/sa_std/core/derive.sal +1 -0
- package/sa_std/core/dispatch.sa +7 -0
- package/sa_std/core/dispatch.sal +5 -0
- package/sa_std/core/future.sa +777 -0
- package/sa_std/core/future.sal +73 -0
- package/sa_std/core/hash.sa +48 -0
- package/sa_std/core/iter.sa +2805 -0
- package/sa_std/core/iter.sal +4 -0
- package/sa_std/core/loop.sa +60 -0
- package/sa_std/core/mem.sa +220 -0
- package/sa_std/core/option.sa +825 -0
- package/sa_std/core/option.sal +11 -0
- package/sa_std/core/panic.sa +23 -0
- package/sa_std/core/panic.sal +12 -0
- package/sa_std/core/prelude.sa +18 -0
- package/sa_std/core/prelude.sal +18 -0
- package/sa_std/core/rc.sa +225 -0
- package/sa_std/core/rc.sal +4 -0
- package/sa_std/core/refcell.sa +283 -0
- package/sa_std/core/refcell.sal +13 -0
- package/sa_std/core/result.sa +708 -0
- package/sa_std/core/result.sal +6 -0
- package/sa_std/core/rust_patterns.sal +295 -0
- package/sa_std/core/sa_core.sa +84 -0
- package/sa_std/core/slice.sa +4021 -0
- package/sa_std/core/slice.sal +7 -0
- package/sa_std/core/task.sa +112 -0
- package/sa_std/core/task.sal +15 -0
- package/sa_std/core/trait_object.sa +26 -0
- package/sa_std/core/trait_object.sal +4 -0
- package/sa_std/core/waker.sa +289 -0
- package/sa_std/core/waker.sal +31 -0
- package/sa_std/core/weak.sa +2 -0
- package/sa_std/core/weak.sal +4 -0
- package/sa_std/cow.sa +3 -0
- package/sa_std/cow.sal +2 -0
- package/sa_std/cstring.sa +3 -0
- package/sa_std/cstring.sal +2 -0
- package/sa_std/default.sa +99 -0
- package/sa_std/duration.sa +3 -0
- package/sa_std/duration.sal +2 -0
- package/sa_std/encoding/json.sa +259 -0
- package/sa_std/encoding/json.sai +54 -0
- package/sa_std/encoding/json.sal +35 -0
- package/sa_std/encoding/prelude.sa +1 -0
- package/sa_std/encoding/prelude.sal +0 -0
- package/sa_std/env.sa +390 -0
- package/sa_std/env.sai +25 -0
- package/sa_std/error.sa +253 -0
- package/sa_std/error.sal +44 -0
- package/sa_std/ffi/cstring.sa +3 -0
- package/sa_std/ffi/cstring.sal +1 -0
- package/sa_std/ffi/prelude.sa +2 -0
- package/sa_std/ffi/prelude.sal +2 -0
- package/sa_std/ffi.sa +635 -0
- package/sa_std/ffi.sal +51 -0
- package/sa_std/fmt.sa +2 -0
- package/sa_std/fmt.sai +18 -0
- package/sa_std/fmt.sal +35 -0
- package/sa_std/fs.sa +1023 -0
- package/sa_std/fs.sai +127 -0
- package/sa_std/fs.sal +51 -0
- package/sa_std/future.sa +2 -0
- package/sa_std/future.sal +1 -0
- package/sa_std/hash.sa +1486 -0
- package/sa_std/hash.sal +13 -0
- package/sa_std/hashmap.sa +1962 -0
- package/sa_std/hashmap.sal +20 -0
- package/sa_std/hashset.sa +1004 -0
- package/sa_std/hashset.sal +18 -0
- package/sa_std/http2.sa +78 -0
- package/sa_std/http2.sai +26 -0
- package/sa_std/http2.sal +36 -0
- package/sa_std/instant.sa +3 -0
- package/sa_std/instant.sal +2 -0
- package/sa_std/io/buf_reader.sa +43 -0
- package/sa_std/io/buf_writer.sa +35 -0
- package/sa_std/io/bufio.sa +4 -0
- package/sa_std/io/bufio.sal +4 -0
- package/sa_std/io/prelude.sa +1 -0
- package/sa_std/io/prelude.sal +1 -0
- package/sa_std/io/print.sa +2 -0
- package/sa_std/io/print.sai +3 -0
- package/sa_std/io.sa +925 -0
- package/sa_std/io.sai +25 -0
- package/sa_std/io.sal +84 -0
- package/sa_std/iter.sa +2 -0
- package/sa_std/iter.sal +1 -0
- package/sa_std/join_handle.sa +3 -0
- package/sa_std/join_handle.sal +2 -0
- package/sa_std/libsa_async.sa +80 -0
- package/sa_std/m_async.sa +137 -0
- package/sa_std/m_async.sal +30 -0
- package/sa_std/m_async.sla +2 -0
- package/sa_std/manually_drop.sa +3 -0
- package/sa_std/manually_drop.sal +2 -0
- package/sa_std/marker/phantom_data.sa +3 -0
- package/sa_std/marker/phantom_data.sal +1 -0
- package/sa_std/marker/prelude.sa +4 -0
- package/sa_std/marker/prelude.sal +4 -0
- package/sa_std/marker.sa +220 -0
- package/sa_std/marker.sal +15 -0
- package/sa_std/math.sa +84 -0
- package/sa_std/math.sai +10 -0
- package/sa_std/mem/manually_drop.sa +3 -0
- package/sa_std/mem/manually_drop.sal +1 -0
- package/sa_std/mem/prelude.sa +2 -0
- package/sa_std/mem/prelude.sal +2 -0
- package/sa_std/mem.sa +564 -0
- package/sa_std/mem.sal +40 -0
- package/sa_std/modstate.sai +19 -0
- package/sa_std/net.sa +4227 -0
- package/sa_std/net.sai +239 -0
- package/sa_std/net.sal +159 -0
- package/sa_std/netx.sa +85 -0
- package/sa_std/netx.sai +11 -0
- package/sa_std/netx.sal +39 -0
- package/sa_std/nonzero.sa +3 -0
- package/sa_std/nonzero.sal +2 -0
- package/sa_std/num/nonzero.sa +3 -0
- package/sa_std/num/nonzero.sal +1 -0
- package/sa_std/num/prelude.sa +3 -0
- package/sa_std/num/prelude.sal +3 -0
- package/sa_std/num.sa +17302 -0
- package/sa_std/num.sai +11 -0
- package/sa_std/num.sal +341 -0
- package/sa_std/ops.sa +1884 -0
- package/sa_std/ops.sal +68 -0
- package/sa_std/option.sa +2 -0
- package/sa_std/option.sal +1 -0
- package/sa_std/os/fd.sa +96 -0
- package/sa_std/os/fd.sai +7 -0
- package/sa_std/os/fd.sal +11 -0
- package/sa_std/os/prelude.sa +2 -0
- package/sa_std/os/prelude.sal +1 -0
- package/sa_std/os/unix_ffi.sa +271 -0
- package/sa_std/panic.sa +1 -0
- package/sa_std/panic.sal +1 -0
- package/sa_std/path.sa +3170 -0
- package/sa_std/path.sal +12 -0
- package/sa_std/phantom_data.sa +3 -0
- package/sa_std/phantom_data.sal +2 -0
- package/sa_std/pin.sa +79 -0
- package/sa_std/pin.sal +5 -0
- package/sa_std/plugin_async.sa +90 -0
- package/sa_std/plugin_async.sal +29 -0
- package/sa_std/plugin_async.sla +4 -0
- package/sa_std/plugin_http_async.sa +46 -0
- package/sa_std/plugin_http_server.sa +61 -0
- package/sa_std/plugin_http_server.sla +2 -0
- package/sa_std/plugin_sqlite.sa +106 -0
- package/sa_std/plugin_sqlite.sla +2 -0
- package/sa_std/prelude.sa +60 -0
- package/sa_std/prelude.sal +55 -0
- package/sa_std/process.sa +916 -0
- package/sa_std/process.sai +57 -0
- package/sa_std/process.sal +27 -0
- package/sa_std/ptr.sa +503 -0
- package/sa_std/ptr.sal +2 -0
- package/sa_std/result.sa +2 -0
- package/sa_std/result.sal +1 -0
- package/sa_std/rust_core.sa +51 -0
- package/sa_std/rust_core.sal +26 -0
- package/sa_std/sa.mod +7 -0
- package/sa_std/sort.sa +156 -0
- package/sa_std/str.sla +13 -0
- package/sa_std/string.sa +12240 -0
- package/sa_std/string.sai +25 -0
- package/sa_std/string.sal +17 -0
- package/sa_std/string_format.sa +269 -0
- package/sa_std/sync/atomic.sa +1500 -0
- package/sa_std/sync/atomic.sal +45 -0
- package/sa_std/sync/barrier.sa +105 -0
- package/sa_std/sync/barrier.sal +7 -0
- package/sa_std/sync/condvar.sa +240 -0
- package/sa_std/sync/condvar.sal +4 -0
- package/sa_std/sync/mpsc.sa +758 -0
- package/sa_std/sync/mpsc.sal +42 -0
- package/sa_std/sync/mpsc_list.sa +255 -0
- package/sa_std/sync/mpsc_list.sal +3 -0
- package/sa_std/sync/mutex.sa +182 -0
- package/sa_std/sync/mutex.sal +7 -0
- package/sa_std/sync/once.sa +371 -0
- package/sa_std/sync/once.sal +31 -0
- package/sa_std/sync/poison.sa +36 -0
- package/sa_std/sync/poison.sal +11 -0
- package/sa_std/sync/prelude.sa +8 -0
- package/sa_std/sync/prelude.sal +7 -0
- package/sa_std/sync/rwlock.sa +369 -0
- package/sa_std/sync/rwlock.sal +13 -0
- package/sa_std/task.sa +2 -0
- package/sa_std/task.sal +1 -0
- package/sa_std/term.sa +2 -0
- package/sa_std/term.sai +10 -0
- package/sa_std/term.sal +33 -0
- package/sa_std/testing/assert.sai +4 -0
- package/sa_std/testing/mock_io.sa +174 -0
- package/sa_std/testing/mock_io.sal +5 -0
- package/sa_std/testing/prelude.sa +2 -0
- package/sa_std/testing/prelude.sal +1 -0
- package/sa_std/text/prelude.sa +1 -0
- package/sa_std/text/prelude.sal +1 -0
- package/sa_std/text/regex.sa +2 -0
- package/sa_std/text/regex.sai +9 -0
- package/sa_std/text/regex.sal +33 -0
- package/sa_std/thread/join_handle.sa +3 -0
- package/sa_std/thread/join_handle.sal +1 -0
- package/sa_std/thread/prelude.sa +4 -0
- package/sa_std/thread/prelude.sal +3 -0
- package/sa_std/thread.sa +160 -0
- package/sa_std/thread.sai +11 -0
- package/sa_std/thread.sal +4 -0
- package/sa_std/thread_local.sa +45 -0
- package/sa_std/thread_local.sai +9 -0
- package/sa_std/time/duration.sa +3 -0
- package/sa_std/time/duration.sal +1 -0
- package/sa_std/time/instant.sa +3 -0
- package/sa_std/time/instant.sal +1 -0
- package/sa_std/time/prelude.sa +4 -0
- package/sa_std/time/prelude.sal +4 -0
- package/sa_std/time.sa +850 -0
- package/sa_std/time.sai +37 -0
- package/sa_std/time.sal +35 -0
- package/sa_std/time.sla +67 -0
- package/sa_std/tls_client.sai +39 -0
- package/sa_std/vec.sa +5754 -0
- package/sa_std/vec.sal +1 -0
- package/sa_std/vec_deque.sa +4925 -0
- package/sa_std/vec_deque.sal +8 -0
- package/sa_std/vec_runtime_macros.sa +11 -0
- package/sa_std/ws_client.sai +57 -0
|
@@ -0,0 +1,916 @@
|
|
|
1
|
+
@import "process.sal"
|
|
2
|
+
@import "process.sai"
|
|
3
|
+
@import "fs.sa"
|
|
4
|
+
@import "os/fd.sa"
|
|
5
|
+
@import "core/slice.sal"
|
|
6
|
+
|
|
7
|
+
[MACRO] PROCESS_STATUS_IS_OK %out_bool, %status
|
|
8
|
+
%out_bool = eq %status, SA_PROCESS_OK
|
|
9
|
+
[END_MACRO]
|
|
10
|
+
|
|
11
|
+
[MACRO] PROCESS_EXIT_SUCCESS %out_bool, %code
|
|
12
|
+
%out_bool = eq %code, 0
|
|
13
|
+
[END_MACRO]
|
|
14
|
+
|
|
15
|
+
[MACRO] PROCESS_EXIT_STATUS_NEW %exit_status, %code
|
|
16
|
+
store %exit_status+ProcessExitStatus_code, %code as u32
|
|
17
|
+
store %exit_status+ProcessExitStatus_raw, 0 as i32
|
|
18
|
+
[END_MACRO]
|
|
19
|
+
|
|
20
|
+
// Rust-style Default-like exit status: success code 0.
|
|
21
|
+
[MACRO] PROCESS_EXIT_STATUS_DEFAULT %exit_status
|
|
22
|
+
EXPAND PROCESS_EXIT_STATUS_NEW %exit_status, 0
|
|
23
|
+
[END_MACRO]
|
|
24
|
+
|
|
25
|
+
[MACRO] PROCESS_EXIT_STATUS_FROM_RAW %exit_status, %raw
|
|
26
|
+
__process_exit_status_code_%exit_status = call @sa_std_process_exit_status_code(%raw)
|
|
27
|
+
store %exit_status+ProcessExitStatus_code, __process_exit_status_code_%exit_status as u32
|
|
28
|
+
store %exit_status+ProcessExitStatus_raw, %raw as i32
|
|
29
|
+
!__process_exit_status_code_%exit_status
|
|
30
|
+
[END_MACRO]
|
|
31
|
+
|
|
32
|
+
[MACRO] PROCESS_EXIT_STATUS_CODE %out_code, %exit_status
|
|
33
|
+
%out_code = load %exit_status+ProcessExitStatus_code as u32
|
|
34
|
+
[END_MACRO]
|
|
35
|
+
|
|
36
|
+
// Rust-named alias for ExitStatus::code-style access.
|
|
37
|
+
[MACRO] PROCESS_EXIT_CODE %out_code, %exit_status
|
|
38
|
+
EXPAND PROCESS_EXIT_STATUS_CODE %out_code, %exit_status
|
|
39
|
+
[END_MACRO]
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
[MACRO] PROCESS_EXIT_STATUS_RAW %out_raw, %exit_status
|
|
43
|
+
%out_raw = load %exit_status+ProcessExitStatus_raw as i32
|
|
44
|
+
[END_MACRO]
|
|
45
|
+
|
|
46
|
+
[MACRO] PROCESS_EXIT_STATUS_SUCCESS %out_bool, %exit_status
|
|
47
|
+
EXPAND PROCESS_EXIT_STATUS_CODE __process_exit_status_code_%out_bool, %exit_status
|
|
48
|
+
EXPAND PROCESS_EXIT_SUCCESS %out_bool, __process_exit_status_code_%out_bool
|
|
49
|
+
!__process_exit_status_code_%out_bool
|
|
50
|
+
[END_MACRO]
|
|
51
|
+
|
|
52
|
+
// Rust-named alias for ExitStatus::success().
|
|
53
|
+
[MACRO] PROCESS_SUCCESS %out_bool, %exit_status
|
|
54
|
+
EXPAND PROCESS_EXIT_STATUS_SUCCESS %out_bool, %exit_status
|
|
55
|
+
[END_MACRO]
|
|
56
|
+
|
|
57
|
+
[MACRO] PROCESS_IS_SUCCESS %out_bool, %exit_status
|
|
58
|
+
EXPAND PROCESS_SUCCESS %out_bool, %exit_status
|
|
59
|
+
[END_MACRO]
|
|
60
|
+
|
|
61
|
+
[MACRO] PROCESS_CODE %out_code, %exit_status
|
|
62
|
+
EXPAND PROCESS_EXIT_CODE %out_code, %exit_status
|
|
63
|
+
[END_MACRO]
|
|
64
|
+
|
|
65
|
+
[MACRO] PROCESS_OUTPUT_STATUS %out_ptr, %output
|
|
66
|
+
EXPAND PROCESS_OUTPUT_STATUS_PTR %out_ptr, %output
|
|
67
|
+
[END_MACRO]
|
|
68
|
+
|
|
69
|
+
[MACRO] PROCESS_OUTPUT_SUCCESS %out_bool, %output
|
|
70
|
+
EXPAND PROCESS_OUTPUT_STATUS __process_output_success_status_%out_bool, %output
|
|
71
|
+
EXPAND PROCESS_IS_SUCCESS %out_bool, __process_output_success_status_%out_bool
|
|
72
|
+
!__process_output_success_status_%out_bool
|
|
73
|
+
[END_MACRO]
|
|
74
|
+
|
|
75
|
+
[MACRO] PROCESS_OUTPUT_CODE %out_code, %output
|
|
76
|
+
EXPAND PROCESS_OUTPUT_STATUS __process_output_code_status_%out_code, %output
|
|
77
|
+
EXPAND PROCESS_CODE %out_code, __process_output_code_status_%out_code
|
|
78
|
+
!__process_output_code_status_%out_code
|
|
79
|
+
[END_MACRO]
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
[MACRO] PROCESS_EXIT_STATUS_SIGNAL %out_signal, %exit_status
|
|
84
|
+
EXPAND PROCESS_EXIT_STATUS_RAW __process_exit_status_raw_%out_signal, %exit_status
|
|
85
|
+
%out_signal = call @sa_std_process_exit_status_signal(__process_exit_status_raw_%out_signal)
|
|
86
|
+
!__process_exit_status_raw_%out_signal
|
|
87
|
+
[END_MACRO]
|
|
88
|
+
|
|
89
|
+
[MACRO] PROCESS_EXIT_STATUS_COREDUMPED %out_flag, %exit_status
|
|
90
|
+
EXPAND PROCESS_EXIT_STATUS_RAW __process_exit_status_raw_%out_flag, %exit_status
|
|
91
|
+
%out_flag = call @sa_std_process_exit_status_core_dumped(__process_exit_status_raw_%out_flag)
|
|
92
|
+
!__process_exit_status_raw_%out_flag
|
|
93
|
+
[END_MACRO]
|
|
94
|
+
|
|
95
|
+
[MACRO] PROCESS_EXIT_STATUS_STOPPED_SIGNAL %out_signal, %exit_status
|
|
96
|
+
EXPAND PROCESS_EXIT_STATUS_RAW __process_exit_status_raw_%out_signal, %exit_status
|
|
97
|
+
%out_signal = call @sa_std_process_exit_status_stopped_signal(__process_exit_status_raw_%out_signal)
|
|
98
|
+
!__process_exit_status_raw_%out_signal
|
|
99
|
+
[END_MACRO]
|
|
100
|
+
|
|
101
|
+
[MACRO] PROCESS_EXIT_STATUS_CONTINUED %out_flag, %exit_status
|
|
102
|
+
EXPAND PROCESS_EXIT_STATUS_RAW __process_exit_status_raw_%out_flag, %exit_status
|
|
103
|
+
%out_flag = call @sa_std_process_exit_status_continued(__process_exit_status_raw_%out_flag)
|
|
104
|
+
!__process_exit_status_raw_%out_flag
|
|
105
|
+
[END_MACRO]
|
|
106
|
+
|
|
107
|
+
[MACRO] PROCESS_OUTPUT_NEW %output, %exit_status, %stdout_buffer, %stderr_buffer
|
|
108
|
+
store %output+ProcessOutput_status, %exit_status as ptr
|
|
109
|
+
store %output+ProcessOutput_stdout, %stdout_buffer as u64
|
|
110
|
+
store %output+ProcessOutput_stderr, %stderr_buffer as u64
|
|
111
|
+
[END_MACRO]
|
|
112
|
+
|
|
113
|
+
[MACRO] PROCESS_OUTPUT_STATUS_PTR %out_ptr, %output
|
|
114
|
+
%out_ptr = load %output+ProcessOutput_status as ptr
|
|
115
|
+
[END_MACRO]
|
|
116
|
+
|
|
117
|
+
[MACRO] PROCESS_OUTPUT_STDOUT_BUFFER %out_buffer, %output
|
|
118
|
+
%out_buffer = load %output+ProcessOutput_stdout as u64
|
|
119
|
+
[END_MACRO]
|
|
120
|
+
|
|
121
|
+
[MACRO] PROCESS_OUTPUT_STDERR_BUFFER %out_buffer, %output
|
|
122
|
+
%out_buffer = load %output+ProcessOutput_stderr as u64
|
|
123
|
+
[END_MACRO]
|
|
124
|
+
|
|
125
|
+
[MACRO] PROCESS_OUTPUT_STDOUT_DATA %out_ptr, %output
|
|
126
|
+
EXPAND PROCESS_OUTPUT_STDOUT_BUFFER __process_output_stdout_%out_ptr, %output
|
|
127
|
+
EXPAND FS_READ_BUFFER_DATA %out_ptr, __process_output_stdout_%out_ptr
|
|
128
|
+
!__process_output_stdout_%out_ptr
|
|
129
|
+
[END_MACRO]
|
|
130
|
+
|
|
131
|
+
[MACRO] PROCESS_OUTPUT_STDOUT_LEN %out_len, %output
|
|
132
|
+
EXPAND PROCESS_OUTPUT_STDOUT_BUFFER __process_output_stdout_%out_len, %output
|
|
133
|
+
EXPAND FS_READ_BUFFER_LEN %out_len, __process_output_stdout_%out_len
|
|
134
|
+
!__process_output_stdout_%out_len
|
|
135
|
+
[END_MACRO]
|
|
136
|
+
|
|
137
|
+
[MACRO] PROCESS_OUTPUT_STDERR_DATA %out_ptr, %output
|
|
138
|
+
EXPAND PROCESS_OUTPUT_STDERR_BUFFER __process_output_stderr_%out_ptr, %output
|
|
139
|
+
EXPAND FS_READ_BUFFER_DATA %out_ptr, __process_output_stderr_%out_ptr
|
|
140
|
+
!__process_output_stderr_%out_ptr
|
|
141
|
+
[END_MACRO]
|
|
142
|
+
|
|
143
|
+
[MACRO] PROCESS_OUTPUT_STDERR_LEN %out_len, %output
|
|
144
|
+
EXPAND PROCESS_OUTPUT_STDERR_BUFFER __process_output_stderr_%out_len, %output
|
|
145
|
+
EXPAND FS_READ_BUFFER_LEN %out_len, __process_output_stderr_%out_len
|
|
146
|
+
!__process_output_stderr_%out_len
|
|
147
|
+
[END_MACRO]
|
|
148
|
+
|
|
149
|
+
[MACRO] PROCESS_OUTPUT_FREE %out_status, %output
|
|
150
|
+
EXPAND PROCESS_OUTPUT_STDOUT_BUFFER __process_output_free_stdout_%out_status, %output
|
|
151
|
+
EXPAND PROCESS_OUTPUT_STDERR_BUFFER __process_output_free_stderr_%out_status, %output
|
|
152
|
+
EXPAND FS_READ_BUFFER_FREE __process_output_free_stdout_status_%out_status, __process_output_free_stdout_%out_status
|
|
153
|
+
EXPAND FS_READ_BUFFER_FREE __process_output_free_stderr_status_%out_status, __process_output_free_stderr_%out_status
|
|
154
|
+
__process_output_free_stdout_ok_%out_status = eq __process_output_free_stdout_status_%out_status, SA_PROCESS_OK
|
|
155
|
+
__process_output_free_stderr_ok_%out_status = eq __process_output_free_stderr_status_%out_status, SA_PROCESS_OK
|
|
156
|
+
__process_output_free_both_ok_%out_status = and __process_output_free_stdout_ok_%out_status, __process_output_free_stderr_ok_%out_status
|
|
157
|
+
br __process_output_free_both_ok_%out_status -> L_PROCESS_OUTPUT_FREE_OK_%out_status, L_PROCESS_OUTPUT_FREE_ERR_%out_status
|
|
158
|
+
|
|
159
|
+
L_PROCESS_OUTPUT_FREE_OK_%out_status:
|
|
160
|
+
%out_status = add 0, SA_PROCESS_OK
|
|
161
|
+
!__process_output_free_both_ok_%out_status
|
|
162
|
+
!__process_output_free_stderr_ok_%out_status
|
|
163
|
+
!__process_output_free_stdout_ok_%out_status
|
|
164
|
+
!__process_output_free_stderr_status_%out_status
|
|
165
|
+
!__process_output_free_stdout_status_%out_status
|
|
166
|
+
jmp L_PROCESS_OUTPUT_FREE_DONE_%out_status
|
|
167
|
+
|
|
168
|
+
L_PROCESS_OUTPUT_FREE_ERR_%out_status:
|
|
169
|
+
%out_status = add 0, SA_PROCESS_ERR_IO
|
|
170
|
+
!__process_output_free_both_ok_%out_status
|
|
171
|
+
!__process_output_free_stderr_ok_%out_status
|
|
172
|
+
!__process_output_free_stdout_ok_%out_status
|
|
173
|
+
!__process_output_free_stderr_status_%out_status
|
|
174
|
+
!__process_output_free_stdout_status_%out_status
|
|
175
|
+
|
|
176
|
+
L_PROCESS_OUTPUT_FREE_DONE_%out_status:
|
|
177
|
+
[END_MACRO]
|
|
178
|
+
|
|
179
|
+
[MACRO] PROCESS_STDIO_NEW %stdio, %kind
|
|
180
|
+
store %stdio+ProcessStdio_kind, %kind as u8
|
|
181
|
+
[END_MACRO]
|
|
182
|
+
|
|
183
|
+
[MACRO] PROCESS_STDIO_PIPED %stdio
|
|
184
|
+
EXPAND PROCESS_STDIO_NEW %stdio, PROCESS_STDIO_KIND_PIPED
|
|
185
|
+
[END_MACRO]
|
|
186
|
+
|
|
187
|
+
[MACRO] PROCESS_STDIO_INHERIT %stdio
|
|
188
|
+
EXPAND PROCESS_STDIO_NEW %stdio, PROCESS_STDIO_KIND_INHERIT
|
|
189
|
+
[END_MACRO]
|
|
190
|
+
|
|
191
|
+
[MACRO] PROCESS_STDIO_NULL %stdio
|
|
192
|
+
EXPAND PROCESS_STDIO_NEW %stdio, PROCESS_STDIO_KIND_NULL
|
|
193
|
+
[END_MACRO]
|
|
194
|
+
|
|
195
|
+
[MACRO] PROCESS_STDIO_KIND %out_kind, %stdio
|
|
196
|
+
%out_kind = load %stdio+ProcessStdio_kind as u8
|
|
197
|
+
[END_MACRO]
|
|
198
|
+
|
|
199
|
+
[MACRO] PROCESS_STDIO_MAKES_PIPE %out_bool, %stdio
|
|
200
|
+
EXPAND PROCESS_STDIO_KIND __process_stdio_kind_%out_bool, %stdio
|
|
201
|
+
%out_bool = eq __process_stdio_kind_%out_bool, PROCESS_STDIO_KIND_PIPED
|
|
202
|
+
!__process_stdio_kind_%out_bool
|
|
203
|
+
[END_MACRO]
|
|
204
|
+
|
|
205
|
+
[MACRO] PROCESS_ARGV_SLOT %out_ptr, %argv, %index
|
|
206
|
+
__process_argv_off_%out_ptr = mul %index, SaProcessArgv_SIZE
|
|
207
|
+
%out_ptr = ptr_add %argv, __process_argv_off_%out_ptr
|
|
208
|
+
!__process_argv_off_%out_ptr
|
|
209
|
+
[END_MACRO]
|
|
210
|
+
|
|
211
|
+
[MACRO] PROCESS_ARGV_SET_CONST %argv, %index, %const_label, %const_len
|
|
212
|
+
EXPAND PROCESS_ARGV_SLOT __process_argv_slot_%argv_%index, %argv, %index
|
|
213
|
+
store __process_argv_slot_%argv_%index+SaProcessArgv_data, &%const_label as ptr
|
|
214
|
+
store __process_argv_slot_%argv_%index+SaProcessArgv_len, %const_len as u64
|
|
215
|
+
!__process_argv_slot_%argv_%index
|
|
216
|
+
[END_MACRO]
|
|
217
|
+
|
|
218
|
+
[MACRO] PROCESS_ARGV_SET_PTR %argv, %index, %data_ptr, %data_len
|
|
219
|
+
EXPAND PROCESS_ARGV_SLOT __process_argv_slot_%argv_%index, %argv, %index
|
|
220
|
+
store __process_argv_slot_%argv_%index+SaProcessArgv_data, %data_ptr as ptr
|
|
221
|
+
store __process_argv_slot_%argv_%index+SaProcessArgv_len, %data_len as u64
|
|
222
|
+
!__process_argv_slot_%argv_%index
|
|
223
|
+
[END_MACRO]
|
|
224
|
+
|
|
225
|
+
[MACRO] PROCESS_ARGV_SET_SLICE %argv, %index, %slice_reg
|
|
226
|
+
__process_argv_slice_ptr_%argv_%index = load %slice_reg+Slice_ptr as ptr
|
|
227
|
+
__process_argv_slice_len_%argv_%index = load %slice_reg+Slice_len as u64
|
|
228
|
+
EXPAND PROCESS_ARGV_SET_PTR %argv, %index, __process_argv_slice_ptr_%argv_%index, __process_argv_slice_len_%argv_%index
|
|
229
|
+
!__process_argv_slice_len_%argv_%index
|
|
230
|
+
!__process_argv_slice_ptr_%argv_%index
|
|
231
|
+
[END_MACRO]
|
|
232
|
+
|
|
233
|
+
[MACRO] PROCESS_ARGV_DATA %out_ptr, %argv, %index
|
|
234
|
+
EXPAND PROCESS_ARGV_SLOT __process_argv_slot_%out_ptr, %argv, %index
|
|
235
|
+
%out_ptr = load __process_argv_slot_%out_ptr+SaProcessArgv_data as ptr
|
|
236
|
+
!__process_argv_slot_%out_ptr
|
|
237
|
+
[END_MACRO]
|
|
238
|
+
|
|
239
|
+
[MACRO] PROCESS_ARGV_LEN %out_len, %argv, %index
|
|
240
|
+
EXPAND PROCESS_ARGV_SLOT __process_argv_slot_%out_len, %argv, %index
|
|
241
|
+
%out_len = load __process_argv_slot_%out_len+SaProcessArgv_len as u64
|
|
242
|
+
!__process_argv_slot_%out_len
|
|
243
|
+
[END_MACRO]
|
|
244
|
+
|
|
245
|
+
[MACRO] PROCESS_RUN %out_status, %out_process, %argv, %argv_len
|
|
246
|
+
__process_run_slot_%out_process = stack_alloc 8
|
|
247
|
+
%out_status = call @sa_std_process_run(&%argv, %argv_len, &__process_run_slot_%out_process)
|
|
248
|
+
%out_process = load __process_run_slot_%out_process+0 as u64
|
|
249
|
+
[END_MACRO]
|
|
250
|
+
|
|
251
|
+
[MACRO] PROCESS_RUN_CWD %out_status, %out_process, %argv, %argv_len, %cwd, %cwd_len
|
|
252
|
+
__process_run_cwd_slot_%out_process = stack_alloc 8
|
|
253
|
+
%out_status = call @sa_std_process_run_cwd(&%argv, %argv_len, &%cwd, %cwd_len, &__process_run_cwd_slot_%out_process)
|
|
254
|
+
%out_process = load __process_run_cwd_slot_%out_process+0 as u64
|
|
255
|
+
[END_MACRO]
|
|
256
|
+
|
|
257
|
+
[MACRO] PROCESS_SPAWN %out_status, %out_process, %argv, %argv_len
|
|
258
|
+
__process_spawn_slot_%out_process = stack_alloc 8
|
|
259
|
+
%out_status = call @sa_std_process_spawn(&%argv, %argv_len, &__process_spawn_slot_%out_process)
|
|
260
|
+
%out_process = load __process_spawn_slot_%out_process+0 as u64
|
|
261
|
+
[END_MACRO]
|
|
262
|
+
|
|
263
|
+
[MACRO] PROCESS_SPAWN_CWD %out_status, %out_process, %argv, %argv_len, %cwd, %cwd_len
|
|
264
|
+
__process_spawn_cwd_slot_%out_process = stack_alloc 8
|
|
265
|
+
%out_status = call @sa_std_process_spawn_cwd(&%argv, %argv_len, &%cwd, %cwd_len, &__process_spawn_cwd_slot_%out_process)
|
|
266
|
+
%out_process = load __process_spawn_cwd_slot_%out_process+0 as u64
|
|
267
|
+
[END_MACRO]
|
|
268
|
+
|
|
269
|
+
[MACRO] PROCESS_SPAWN_STREAM %out_status, %out_process, %out_stdout, %out_stderr, %argv, %argv_len
|
|
270
|
+
__process_stream_proc_slot_%out_process = stack_alloc 8
|
|
271
|
+
__process_stream_stdout_slot_%out_stdout = stack_alloc 8
|
|
272
|
+
__process_stream_stderr_slot_%out_stderr = stack_alloc 8
|
|
273
|
+
%out_status = call @sa_std_process_spawn_stream(&%argv, %argv_len, &__process_stream_proc_slot_%out_process, &__process_stream_stdout_slot_%out_stdout, &__process_stream_stderr_slot_%out_stderr)
|
|
274
|
+
%out_process = load __process_stream_proc_slot_%out_process+0 as u64
|
|
275
|
+
%out_stdout = load __process_stream_stdout_slot_%out_stdout+0 as u64
|
|
276
|
+
%out_stderr = load __process_stream_stderr_slot_%out_stderr+0 as u64
|
|
277
|
+
[END_MACRO]
|
|
278
|
+
|
|
279
|
+
[MACRO] PROCESS_SPAWN_STREAM_CWD %out_status, %out_process, %out_stdout, %out_stderr, %argv, %argv_len, %cwd, %cwd_len
|
|
280
|
+
__process_stream_cwd_proc_slot_%out_process = stack_alloc 8
|
|
281
|
+
__process_stream_cwd_stdout_slot_%out_stdout = stack_alloc 8
|
|
282
|
+
__process_stream_cwd_stderr_slot_%out_stderr = stack_alloc 8
|
|
283
|
+
%out_status = call @sa_std_process_spawn_stream_cwd(&%argv, %argv_len, &%cwd, %cwd_len, &__process_stream_cwd_proc_slot_%out_process, &__process_stream_cwd_stdout_slot_%out_stdout, &__process_stream_cwd_stderr_slot_%out_stderr)
|
|
284
|
+
%out_process = load __process_stream_cwd_proc_slot_%out_process+0 as u64
|
|
285
|
+
%out_stdout = load __process_stream_cwd_stdout_slot_%out_stdout+0 as u64
|
|
286
|
+
%out_stderr = load __process_stream_cwd_stderr_slot_%out_stderr+0 as u64
|
|
287
|
+
[END_MACRO]
|
|
288
|
+
|
|
289
|
+
[MACRO] PROCESS_RUN_COMMAND_EXT %out_status, %out_process, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid
|
|
290
|
+
__process_run_ext_slot_%out_process = stack_alloc 8
|
|
291
|
+
%out_status = call @sa_std_process_run_command_ext(&%argv, %argv_len, &%cwd, %cwd_len, %has_cwd, &%arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, &__process_run_ext_slot_%out_process)
|
|
292
|
+
%out_process = load __process_run_ext_slot_%out_process+0 as u64
|
|
293
|
+
[END_MACRO]
|
|
294
|
+
|
|
295
|
+
[MACRO] PROCESS_RUN_COMMAND_EXT_PIDFD %out_status, %out_process, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, %create_pidfd
|
|
296
|
+
__process_run_ext_pidfd_slot_%out_process = stack_alloc 8
|
|
297
|
+
%out_status = call @sa_std_process_run_command_ext_pidfd(&%argv, %argv_len, &%cwd, %cwd_len, %has_cwd, &%arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, %create_pidfd, &__process_run_ext_pidfd_slot_%out_process)
|
|
298
|
+
%out_process = load __process_run_ext_pidfd_slot_%out_process+0 as u64
|
|
299
|
+
[END_MACRO]
|
|
300
|
+
|
|
301
|
+
[MACRO] PROCESS_RUN_COMMAND_EXT_UID_GID %out_status, %out_process, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, %uid, %has_uid, %gid, %has_gid
|
|
302
|
+
__process_run_ext_uid_gid_slot_%out_process = stack_alloc 8
|
|
303
|
+
%out_status = call @sa_std_process_run_command_ext_uid_gid(&%argv, %argv_len, &%cwd, %cwd_len, %has_cwd, &%arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, %uid, %has_uid, %gid, %has_gid, &__process_run_ext_uid_gid_slot_%out_process)
|
|
304
|
+
%out_process = load __process_run_ext_uid_gid_slot_%out_process+0 as u64
|
|
305
|
+
[END_MACRO]
|
|
306
|
+
|
|
307
|
+
[MACRO] PROCESS_RUN_COMMAND_EXT_GROUPS %out_status, %out_process, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, %groups, %groups_len, %has_groups
|
|
308
|
+
__process_run_ext_groups_slot_%out_process = stack_alloc 8
|
|
309
|
+
%out_status = call @sa_std_process_run_command_ext_groups(&%argv, %argv_len, &%cwd, %cwd_len, %has_cwd, &%arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, &%groups, %groups_len, %has_groups, &__process_run_ext_groups_slot_%out_process)
|
|
310
|
+
%out_process = load __process_run_ext_groups_slot_%out_process+0 as u64
|
|
311
|
+
[END_MACRO]
|
|
312
|
+
|
|
313
|
+
[MACRO] PROCESS_RUN_COMMAND_EXT_CHROOT %out_status, %out_process, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, %chroot, %chroot_len, %has_chroot
|
|
314
|
+
__process_run_ext_chroot_slot_%out_process = stack_alloc 8
|
|
315
|
+
%out_status = call @sa_std_process_run_command_ext_chroot(&%argv, %argv_len, &%cwd, %cwd_len, %has_cwd, &%arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, &%chroot, %chroot_len, %has_chroot, &__process_run_ext_chroot_slot_%out_process)
|
|
316
|
+
%out_process = load __process_run_ext_chroot_slot_%out_process+0 as u64
|
|
317
|
+
[END_MACRO]
|
|
318
|
+
|
|
319
|
+
[MACRO] PROCESS_SPAWN_COMMAND_EXT %out_status, %out_process, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid
|
|
320
|
+
__process_spawn_ext_slot_%out_process = stack_alloc 8
|
|
321
|
+
%out_status = call @sa_std_process_spawn_command_ext(&%argv, %argv_len, &%cwd, %cwd_len, %has_cwd, &%arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, &__process_spawn_ext_slot_%out_process)
|
|
322
|
+
%out_process = load __process_spawn_ext_slot_%out_process+0 as u64
|
|
323
|
+
[END_MACRO]
|
|
324
|
+
|
|
325
|
+
[MACRO] PROCESS_SPAWN_COMMAND_EXT_PIDFD %out_status, %out_process, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, %create_pidfd
|
|
326
|
+
__process_spawn_ext_pidfd_slot_%out_process = stack_alloc 8
|
|
327
|
+
%out_status = call @sa_std_process_spawn_command_ext_pidfd(&%argv, %argv_len, &%cwd, %cwd_len, %has_cwd, &%arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, %create_pidfd, &__process_spawn_ext_pidfd_slot_%out_process)
|
|
328
|
+
%out_process = load __process_spawn_ext_pidfd_slot_%out_process+0 as u64
|
|
329
|
+
[END_MACRO]
|
|
330
|
+
|
|
331
|
+
[MACRO] PROCESS_SPAWN_COMMAND_EXT_UID_GID %out_status, %out_process, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, %uid, %has_uid, %gid, %has_gid
|
|
332
|
+
__process_spawn_ext_uid_gid_slot_%out_process = stack_alloc 8
|
|
333
|
+
%out_status = call @sa_std_process_spawn_command_ext_uid_gid(&%argv, %argv_len, &%cwd, %cwd_len, %has_cwd, &%arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, %uid, %has_uid, %gid, %has_gid, &__process_spawn_ext_uid_gid_slot_%out_process)
|
|
334
|
+
%out_process = load __process_spawn_ext_uid_gid_slot_%out_process+0 as u64
|
|
335
|
+
[END_MACRO]
|
|
336
|
+
|
|
337
|
+
[MACRO] PROCESS_SPAWN_COMMAND_EXT_GROUPS %out_status, %out_process, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, %groups, %groups_len, %has_groups
|
|
338
|
+
__process_spawn_ext_groups_slot_%out_process = stack_alloc 8
|
|
339
|
+
%out_status = call @sa_std_process_spawn_command_ext_groups(&%argv, %argv_len, &%cwd, %cwd_len, %has_cwd, &%arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, &%groups, %groups_len, %has_groups, &__process_spawn_ext_groups_slot_%out_process)
|
|
340
|
+
%out_process = load __process_spawn_ext_groups_slot_%out_process+0 as u64
|
|
341
|
+
[END_MACRO]
|
|
342
|
+
|
|
343
|
+
[MACRO] PROCESS_SPAWN_COMMAND_EXT_CHROOT %out_status, %out_process, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, %chroot, %chroot_len, %has_chroot
|
|
344
|
+
__process_spawn_ext_chroot_slot_%out_process = stack_alloc 8
|
|
345
|
+
%out_status = call @sa_std_process_spawn_command_ext_chroot(&%argv, %argv_len, &%cwd, %cwd_len, %has_cwd, &%arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, &%chroot, %chroot_len, %has_chroot, &__process_spawn_ext_chroot_slot_%out_process)
|
|
346
|
+
%out_process = load __process_spawn_ext_chroot_slot_%out_process+0 as u64
|
|
347
|
+
[END_MACRO]
|
|
348
|
+
|
|
349
|
+
[MACRO] PROCESS_SPAWN_STREAM_COMMAND_EXT %out_status, %out_process, %out_stdout, %out_stderr, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid
|
|
350
|
+
__process_stream_ext_proc_slot_%out_process = stack_alloc 8
|
|
351
|
+
__process_stream_ext_stdout_slot_%out_stdout = stack_alloc 8
|
|
352
|
+
__process_stream_ext_stderr_slot_%out_stderr = stack_alloc 8
|
|
353
|
+
%out_status = call @sa_std_process_spawn_stream_command_ext(&%argv, %argv_len, &%cwd, %cwd_len, %has_cwd, &%arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, &__process_stream_ext_proc_slot_%out_process, &__process_stream_ext_stdout_slot_%out_stdout, &__process_stream_ext_stderr_slot_%out_stderr)
|
|
354
|
+
%out_process = load __process_stream_ext_proc_slot_%out_process+0 as u64
|
|
355
|
+
%out_stdout = load __process_stream_ext_stdout_slot_%out_stdout+0 as u64
|
|
356
|
+
%out_stderr = load __process_stream_ext_stderr_slot_%out_stderr+0 as u64
|
|
357
|
+
[END_MACRO]
|
|
358
|
+
|
|
359
|
+
[MACRO] PROCESS_SPAWN_STREAM_COMMAND_EXT_PIDFD %out_status, %out_process, %out_stdout, %out_stderr, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, %create_pidfd
|
|
360
|
+
__process_stream_ext_pidfd_proc_slot_%out_process = stack_alloc 8
|
|
361
|
+
__process_stream_ext_pidfd_stdout_slot_%out_stdout = stack_alloc 8
|
|
362
|
+
__process_stream_ext_pidfd_stderr_slot_%out_stderr = stack_alloc 8
|
|
363
|
+
%out_status = call @sa_std_process_spawn_stream_command_ext_pidfd(&%argv, %argv_len, &%cwd, %cwd_len, %has_cwd, &%arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, %create_pidfd, &__process_stream_ext_pidfd_proc_slot_%out_process, &__process_stream_ext_pidfd_stdout_slot_%out_stdout, &__process_stream_ext_pidfd_stderr_slot_%out_stderr)
|
|
364
|
+
%out_process = load __process_stream_ext_pidfd_proc_slot_%out_process+0 as u64
|
|
365
|
+
%out_stdout = load __process_stream_ext_pidfd_stdout_slot_%out_stdout+0 as u64
|
|
366
|
+
%out_stderr = load __process_stream_ext_pidfd_stderr_slot_%out_stderr+0 as u64
|
|
367
|
+
[END_MACRO]
|
|
368
|
+
|
|
369
|
+
[MACRO] PROCESS_SPAWN_STREAM_COMMAND_EXT_UID_GID %out_status, %out_process, %out_stdout, %out_stderr, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, %uid, %has_uid, %gid, %has_gid
|
|
370
|
+
__process_stream_ext_uid_gid_proc_slot_%out_process = stack_alloc 8
|
|
371
|
+
__process_stream_ext_uid_gid_stdout_slot_%out_stdout = stack_alloc 8
|
|
372
|
+
__process_stream_ext_uid_gid_stderr_slot_%out_stderr = stack_alloc 8
|
|
373
|
+
%out_status = call @sa_std_process_spawn_stream_command_ext_uid_gid(&%argv, %argv_len, &%cwd, %cwd_len, %has_cwd, &%arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, %uid, %has_uid, %gid, %has_gid, &__process_stream_ext_uid_gid_proc_slot_%out_process, &__process_stream_ext_uid_gid_stdout_slot_%out_stdout, &__process_stream_ext_uid_gid_stderr_slot_%out_stderr)
|
|
374
|
+
%out_process = load __process_stream_ext_uid_gid_proc_slot_%out_process+0 as u64
|
|
375
|
+
%out_stdout = load __process_stream_ext_uid_gid_stdout_slot_%out_stdout+0 as u64
|
|
376
|
+
%out_stderr = load __process_stream_ext_uid_gid_stderr_slot_%out_stderr+0 as u64
|
|
377
|
+
[END_MACRO]
|
|
378
|
+
|
|
379
|
+
[MACRO] PROCESS_SPAWN_STREAM_COMMAND_EXT_GROUPS %out_status, %out_process, %out_stdout, %out_stderr, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, %groups, %groups_len, %has_groups
|
|
380
|
+
__process_stream_ext_groups_proc_slot_%out_process = stack_alloc 8
|
|
381
|
+
__process_stream_ext_groups_stdout_slot_%out_stdout = stack_alloc 8
|
|
382
|
+
__process_stream_ext_groups_stderr_slot_%out_stderr = stack_alloc 8
|
|
383
|
+
%out_status = call @sa_std_process_spawn_stream_command_ext_groups(&%argv, %argv_len, &%cwd, %cwd_len, %has_cwd, &%arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, &%groups, %groups_len, %has_groups, &__process_stream_ext_groups_proc_slot_%out_process, &__process_stream_ext_groups_stdout_slot_%out_stdout, &__process_stream_ext_groups_stderr_slot_%out_stderr)
|
|
384
|
+
%out_process = load __process_stream_ext_groups_proc_slot_%out_process+0 as u64
|
|
385
|
+
%out_stdout = load __process_stream_ext_groups_stdout_slot_%out_stdout+0 as u64
|
|
386
|
+
%out_stderr = load __process_stream_ext_groups_stderr_slot_%out_stderr+0 as u64
|
|
387
|
+
[END_MACRO]
|
|
388
|
+
|
|
389
|
+
[MACRO] PROCESS_SPAWN_STREAM_COMMAND_EXT_CHROOT %out_status, %out_process, %out_stdout, %out_stderr, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, %chroot, %chroot_len, %has_chroot
|
|
390
|
+
__process_stream_ext_chroot_proc_slot_%out_process = stack_alloc 8
|
|
391
|
+
__process_stream_ext_chroot_stdout_slot_%out_stdout = stack_alloc 8
|
|
392
|
+
__process_stream_ext_chroot_stderr_slot_%out_stderr = stack_alloc 8
|
|
393
|
+
%out_status = call @sa_std_process_spawn_stream_command_ext_chroot(&%argv, %argv_len, &%cwd, %cwd_len, %has_cwd, &%arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, &%chroot, %chroot_len, %has_chroot, &__process_stream_ext_chroot_proc_slot_%out_process, &__process_stream_ext_chroot_stdout_slot_%out_stdout, &__process_stream_ext_chroot_stderr_slot_%out_stderr)
|
|
394
|
+
%out_process = load __process_stream_ext_chroot_proc_slot_%out_process+0 as u64
|
|
395
|
+
%out_stdout = load __process_stream_ext_chroot_stdout_slot_%out_stdout+0 as u64
|
|
396
|
+
%out_stderr = load __process_stream_ext_chroot_stderr_slot_%out_stderr+0 as u64
|
|
397
|
+
[END_MACRO]
|
|
398
|
+
|
|
399
|
+
[MACRO] PROCESS_EXEC_COMMAND_EXT %out_status, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, %uid, %has_uid, %gid, %has_gid, %groups, %groups_len, %has_groups, %chroot, %chroot_len, %has_chroot
|
|
400
|
+
%out_status = call @sa_std_process_exec_command_ext(&%argv, %argv_len, &%cwd, %cwd_len, %has_cwd, &%arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, %uid, %has_uid, %gid, %has_gid, &%groups, %groups_len, %has_groups, &%chroot, %chroot_len, %has_chroot)
|
|
401
|
+
[END_MACRO]
|
|
402
|
+
|
|
403
|
+
[MACRO] PROCESS_RUN_ARG0 %out_status, %out_process, %argv, %argv_len, %arg0, %arg0_len
|
|
404
|
+
__process_run_arg0_dummy_%out_process = stack_alloc 1
|
|
405
|
+
EXPAND PROCESS_RUN_COMMAND_EXT %out_status, %out_process, %argv, %argv_len, __process_run_arg0_dummy_%out_process, 0, 0, %arg0, %arg0_len, 1, 0, 0, 0
|
|
406
|
+
[END_MACRO]
|
|
407
|
+
|
|
408
|
+
[MACRO] PROCESS_RUN_PROCESS_GROUP %out_status, %out_process, %argv, %argv_len, %process_group
|
|
409
|
+
__process_run_pgroup_dummy_%out_process = stack_alloc 1
|
|
410
|
+
EXPAND PROCESS_RUN_COMMAND_EXT %out_status, %out_process, %argv, %argv_len, __process_run_pgroup_dummy_%out_process, 0, 0, __process_run_pgroup_dummy_%out_process, 0, 0, %process_group, 1, 0
|
|
411
|
+
[END_MACRO]
|
|
412
|
+
|
|
413
|
+
[MACRO] PROCESS_RUN_SETSID %out_status, %out_process, %argv, %argv_len
|
|
414
|
+
__process_run_setsid_dummy_%out_process = stack_alloc 1
|
|
415
|
+
EXPAND PROCESS_RUN_COMMAND_EXT %out_status, %out_process, %argv, %argv_len, __process_run_setsid_dummy_%out_process, 0, 0, __process_run_setsid_dummy_%out_process, 0, 0, 0, 0, 1
|
|
416
|
+
[END_MACRO]
|
|
417
|
+
|
|
418
|
+
[MACRO] PROCESS_ID %out_pid
|
|
419
|
+
%out_pid = call @sa_std_process_id()
|
|
420
|
+
[END_MACRO]
|
|
421
|
+
|
|
422
|
+
[MACRO] PROCESS_PARENT_ID %out_pid
|
|
423
|
+
%out_pid = call @sa_std_process_parent_id()
|
|
424
|
+
[END_MACRO]
|
|
425
|
+
|
|
426
|
+
// Rust-named aliases for current process identity helpers.
|
|
427
|
+
|
|
428
|
+
[MACRO] PROCESS_PID %out_pid
|
|
429
|
+
EXPAND PROCESS_ID %out_pid
|
|
430
|
+
[END_MACRO]
|
|
431
|
+
|
|
432
|
+
[MACRO] PROCESS_PPID %out_pid
|
|
433
|
+
EXPAND PROCESS_PARENT_ID %out_pid
|
|
434
|
+
[END_MACRO]
|
|
435
|
+
|
|
436
|
+
[MACRO] PROCESS_USER_ID %out_uid
|
|
437
|
+
%out_uid = call @sa_std_process_user_id()
|
|
438
|
+
[END_MACRO]
|
|
439
|
+
|
|
440
|
+
[MACRO] PROCESS_GROUP_ID %out_gid
|
|
441
|
+
%out_gid = call @sa_std_process_group_id()
|
|
442
|
+
[END_MACRO]
|
|
443
|
+
|
|
444
|
+
// Rust-named aliases for current credentials helpers.
|
|
445
|
+
|
|
446
|
+
[MACRO] PROCESS_UID %out_uid
|
|
447
|
+
EXPAND PROCESS_USER_ID %out_uid
|
|
448
|
+
[END_MACRO]
|
|
449
|
+
|
|
450
|
+
[MACRO] PROCESS_GID %out_gid
|
|
451
|
+
EXPAND PROCESS_GROUP_ID %out_gid
|
|
452
|
+
[END_MACRO]
|
|
453
|
+
|
|
454
|
+
[MACRO] PROCESS_ABORT
|
|
455
|
+
call @sa_std_process_abort()
|
|
456
|
+
[END_MACRO]
|
|
457
|
+
|
|
458
|
+
[MACRO] PROCESS_CHILD_ID %out_status, %out_pid, %process
|
|
459
|
+
__process_child_id_slot_%out_pid = stack_alloc 4
|
|
460
|
+
%out_status = call @sa_std_process_child_id(%process, &__process_child_id_slot_%out_pid)
|
|
461
|
+
%out_pid = load __process_child_id_slot_%out_pid+0 as u32
|
|
462
|
+
[END_MACRO]
|
|
463
|
+
|
|
464
|
+
[MACRO] PROCESS_PIDFD %out_status, %out_pidfd, %process
|
|
465
|
+
__process_pidfd_slot_%out_pidfd = stack_alloc 8
|
|
466
|
+
%out_status = call @sa_std_process_pidfd(%process, &__process_pidfd_slot_%out_pidfd)
|
|
467
|
+
%out_pidfd = load __process_pidfd_slot_%out_pidfd+0 as u64
|
|
468
|
+
[END_MACRO]
|
|
469
|
+
|
|
470
|
+
[MACRO] PROCESS_INTO_PIDFD %out_status, %out_pidfd, %process
|
|
471
|
+
__process_into_pidfd_slot_%out_pidfd = stack_alloc 8
|
|
472
|
+
%out_status = call @sa_std_process_into_pidfd(%process, &__process_into_pidfd_slot_%out_pidfd)
|
|
473
|
+
%out_pidfd = load __process_into_pidfd_slot_%out_pidfd+0 as u64
|
|
474
|
+
[END_MACRO]
|
|
475
|
+
|
|
476
|
+
[MACRO] PROCESS_WAIT %out_status, %out_code, %process
|
|
477
|
+
__process_wait_code_slot_%out_code = stack_alloc 4
|
|
478
|
+
%out_status = call @sa_std_process_wait(%process, &__process_wait_code_slot_%out_code)
|
|
479
|
+
%out_code = load __process_wait_code_slot_%out_code+0 as u32
|
|
480
|
+
[END_MACRO]
|
|
481
|
+
|
|
482
|
+
[MACRO] PROCESS_WAIT_RAW %out_status, %out_raw, %process
|
|
483
|
+
__process_wait_raw_slot_%out_raw = stack_alloc 4
|
|
484
|
+
%out_status = call @sa_std_process_wait_raw(%process, &__process_wait_raw_slot_%out_raw)
|
|
485
|
+
%out_raw = load __process_wait_raw_slot_%out_raw+0 as i32
|
|
486
|
+
[END_MACRO]
|
|
487
|
+
|
|
488
|
+
[MACRO] PROCESS_TRY_WAIT %out_status, %out_ready, %out_code, %process
|
|
489
|
+
__process_try_wait_ready_slot_%out_ready = stack_alloc 4
|
|
490
|
+
__process_try_wait_code_slot_%out_code = stack_alloc 4
|
|
491
|
+
%out_status = call @sa_std_process_try_wait(%process, &__process_try_wait_ready_slot_%out_ready, &__process_try_wait_code_slot_%out_code)
|
|
492
|
+
%out_ready = load __process_try_wait_ready_slot_%out_ready+0 as i32
|
|
493
|
+
%out_code = load __process_try_wait_code_slot_%out_code+0 as u32
|
|
494
|
+
[END_MACRO]
|
|
495
|
+
|
|
496
|
+
[MACRO] PROCESS_TRY_WAIT_RAW %out_status, %out_ready, %out_raw, %process
|
|
497
|
+
__process_try_wait_raw_ready_slot_%out_ready = stack_alloc 4
|
|
498
|
+
__process_try_wait_raw_slot_%out_raw = stack_alloc 4
|
|
499
|
+
%out_status = call @sa_std_process_try_wait_raw(%process, &__process_try_wait_raw_ready_slot_%out_ready, &__process_try_wait_raw_slot_%out_raw)
|
|
500
|
+
%out_ready = load __process_try_wait_raw_ready_slot_%out_ready+0 as i32
|
|
501
|
+
%out_raw = load __process_try_wait_raw_slot_%out_raw+0 as i32
|
|
502
|
+
[END_MACRO]
|
|
503
|
+
|
|
504
|
+
[MACRO] PROCESS_WAIT_EXIT_STATUS %out_status, %exit_status, %process
|
|
505
|
+
__process_wait_exit_raw_%out_status = stack_alloc 4
|
|
506
|
+
%out_status = call @sa_std_process_wait_raw(%process, &__process_wait_exit_raw_%out_status)
|
|
507
|
+
__process_wait_exit_value_%out_status = load __process_wait_exit_raw_%out_status+0 as i32
|
|
508
|
+
EXPAND PROCESS_EXIT_STATUS_FROM_RAW %exit_status, __process_wait_exit_value_%out_status
|
|
509
|
+
!__process_wait_exit_value_%out_status
|
|
510
|
+
[END_MACRO]
|
|
511
|
+
|
|
512
|
+
[MACRO] PROCESS_TRY_WAIT_EXIT_STATUS %out_status, %out_ready, %exit_status, %process
|
|
513
|
+
__process_try_wait_exit_ready_slot_%out_ready = stack_alloc 4
|
|
514
|
+
__process_try_wait_exit_code_%out_status = stack_alloc 4
|
|
515
|
+
%out_status = call @sa_std_process_try_wait_raw(%process, &__process_try_wait_exit_ready_slot_%out_ready, &__process_try_wait_exit_code_%out_status)
|
|
516
|
+
%out_ready = load __process_try_wait_exit_ready_slot_%out_ready+0 as i32
|
|
517
|
+
__process_try_wait_exit_value_%out_status = load __process_try_wait_exit_code_%out_status+0 as i32
|
|
518
|
+
EXPAND PROCESS_EXIT_STATUS_FROM_RAW %exit_status, __process_try_wait_exit_value_%out_status
|
|
519
|
+
!__process_try_wait_exit_value_%out_status
|
|
520
|
+
[END_MACRO]
|
|
521
|
+
|
|
522
|
+
[MACRO] PROCESS_KILL %out_status, %process
|
|
523
|
+
%out_status = call @sa_std_process_kill(%process)
|
|
524
|
+
[END_MACRO]
|
|
525
|
+
|
|
526
|
+
[MACRO] PROCESS_SEND_SIGNAL %out_status, %process, %signal
|
|
527
|
+
%out_status = call @sa_std_process_send_signal(%process, %signal)
|
|
528
|
+
[END_MACRO]
|
|
529
|
+
|
|
530
|
+
[MACRO] PROCESS_SEND_PROCESS_GROUP_SIGNAL %out_status, %process, %signal
|
|
531
|
+
%out_status = call @sa_std_process_send_process_group_signal(%process, %signal)
|
|
532
|
+
[END_MACRO]
|
|
533
|
+
|
|
534
|
+
[MACRO] PROCESS_KILL_PROCESS_GROUP %out_status, %process
|
|
535
|
+
%out_status = call @sa_std_process_kill_process_group(%process)
|
|
536
|
+
[END_MACRO]
|
|
537
|
+
|
|
538
|
+
[MACRO] PIDFD_KILL %out_status, %pidfd
|
|
539
|
+
%out_status = call @sa_std_pidfd_kill(%pidfd)
|
|
540
|
+
[END_MACRO]
|
|
541
|
+
|
|
542
|
+
[MACRO] PIDFD_SEND_SIGNAL %out_status, %pidfd, %signal
|
|
543
|
+
%out_status = call @sa_std_pidfd_send_signal(%pidfd, %signal)
|
|
544
|
+
[END_MACRO]
|
|
545
|
+
|
|
546
|
+
[MACRO] PIDFD_WAIT %out_status, %out_code, %pidfd
|
|
547
|
+
__pidfd_wait_code_slot_%out_code = stack_alloc 4
|
|
548
|
+
%out_status = call @sa_std_pidfd_wait(%pidfd, &__pidfd_wait_code_slot_%out_code)
|
|
549
|
+
%out_code = load __pidfd_wait_code_slot_%out_code+0 as u32
|
|
550
|
+
[END_MACRO]
|
|
551
|
+
|
|
552
|
+
[MACRO] PIDFD_WAIT_RAW %out_status, %out_raw, %pidfd
|
|
553
|
+
__pidfd_wait_raw_slot_%out_raw = stack_alloc 4
|
|
554
|
+
%out_status = call @sa_std_pidfd_wait_raw(%pidfd, &__pidfd_wait_raw_slot_%out_raw)
|
|
555
|
+
%out_raw = load __pidfd_wait_raw_slot_%out_raw+0 as i32
|
|
556
|
+
[END_MACRO]
|
|
557
|
+
|
|
558
|
+
[MACRO] PIDFD_TRY_WAIT %out_status, %out_ready, %out_code, %pidfd
|
|
559
|
+
__pidfd_try_wait_ready_slot_%out_ready = stack_alloc 4
|
|
560
|
+
__pidfd_try_wait_code_slot_%out_code = stack_alloc 4
|
|
561
|
+
%out_status = call @sa_std_pidfd_try_wait(%pidfd, &__pidfd_try_wait_ready_slot_%out_ready, &__pidfd_try_wait_code_slot_%out_code)
|
|
562
|
+
%out_ready = load __pidfd_try_wait_ready_slot_%out_ready+0 as i32
|
|
563
|
+
%out_code = load __pidfd_try_wait_code_slot_%out_code+0 as u32
|
|
564
|
+
[END_MACRO]
|
|
565
|
+
|
|
566
|
+
[MACRO] PIDFD_TRY_WAIT_RAW %out_status, %out_ready, %out_raw, %pidfd
|
|
567
|
+
__pidfd_try_wait_raw_ready_slot_%out_ready = stack_alloc 4
|
|
568
|
+
__pidfd_try_wait_raw_slot_%out_raw = stack_alloc 4
|
|
569
|
+
%out_status = call @sa_std_pidfd_try_wait_raw(%pidfd, &__pidfd_try_wait_raw_ready_slot_%out_ready, &__pidfd_try_wait_raw_slot_%out_raw)
|
|
570
|
+
%out_ready = load __pidfd_try_wait_raw_ready_slot_%out_ready+0 as i32
|
|
571
|
+
%out_raw = load __pidfd_try_wait_raw_slot_%out_raw+0 as i32
|
|
572
|
+
[END_MACRO]
|
|
573
|
+
|
|
574
|
+
[MACRO] PIDFD_AS_RAW_FD %out_status, %out_fd, %pidfd
|
|
575
|
+
EXPAND FD_AS_RAW %out_status, %out_fd, %pidfd
|
|
576
|
+
[END_MACRO]
|
|
577
|
+
|
|
578
|
+
[MACRO] PIDFD_AS_FD %out_status, %out_fd, %pidfd
|
|
579
|
+
EXPAND FD_AS_RAW %out_status, %out_fd, %pidfd
|
|
580
|
+
[END_MACRO]
|
|
581
|
+
|
|
582
|
+
[MACRO] PIDFD_INTO_RAW_FD %out_status, %out_fd, %pidfd
|
|
583
|
+
EXPAND FD_INTO_RAW %out_status, %out_fd, %pidfd
|
|
584
|
+
[END_MACRO]
|
|
585
|
+
|
|
586
|
+
[MACRO] PIDFD_FROM_RAW_FD %out_status, %out_pidfd, %fd
|
|
587
|
+
EXPAND FD_FROM_RAW %out_status, %out_pidfd, %fd
|
|
588
|
+
[END_MACRO]
|
|
589
|
+
|
|
590
|
+
[MACRO] PIDFD_CLOSE_RAW_FD %out_status, %fd
|
|
591
|
+
EXPAND FD_CLOSE_RAW %out_status, %fd
|
|
592
|
+
[END_MACRO]
|
|
593
|
+
|
|
594
|
+
[MACRO] PIDFD_INTO_OWNED_FD %out_status, %out_fd_handle, %pidfd
|
|
595
|
+
EXPAND PIDFD_INTO_RAW_FD %out_status, __pidfd_owned_raw_%out_status, %pidfd
|
|
596
|
+
!%out_status
|
|
597
|
+
EXPAND FD_FROM_RAW %out_status, %out_fd_handle, __pidfd_owned_raw_%out_status
|
|
598
|
+
!__pidfd_owned_raw_%out_status
|
|
599
|
+
[END_MACRO]
|
|
600
|
+
|
|
601
|
+
[MACRO] PIDFD_FROM_OWNED_FD %out_status, %out_pidfd, %fd_handle
|
|
602
|
+
EXPAND FD_INTO_RAW %out_status, __pidfd_from_owned_raw_%out_status, %fd_handle
|
|
603
|
+
!%out_status
|
|
604
|
+
EXPAND PIDFD_FROM_RAW_FD %out_status, %out_pidfd, __pidfd_from_owned_raw_%out_status
|
|
605
|
+
!__pidfd_from_owned_raw_%out_status
|
|
606
|
+
[END_MACRO]
|
|
607
|
+
|
|
608
|
+
[MACRO] PROCESS_CHILD_STDOUT_AS_RAW_FD %out_status, %out_fd, %stdout
|
|
609
|
+
EXPAND FD_AS_RAW %out_status, %out_fd, %stdout
|
|
610
|
+
[END_MACRO]
|
|
611
|
+
|
|
612
|
+
[MACRO] PROCESS_CHILD_STDOUT_AS_FD %out_status, %out_fd, %stdout
|
|
613
|
+
EXPAND PROCESS_CHILD_STDOUT_AS_RAW_FD %out_status, %out_fd, %stdout
|
|
614
|
+
[END_MACRO]
|
|
615
|
+
|
|
616
|
+
[MACRO] PROCESS_CHILD_STDOUT_INTO_RAW_FD %out_status, %out_fd, %stdout
|
|
617
|
+
EXPAND FD_INTO_RAW %out_status, %out_fd, %stdout
|
|
618
|
+
[END_MACRO]
|
|
619
|
+
|
|
620
|
+
[MACRO] PROCESS_CHILD_STDOUT_FROM_RAW_FD %out_status, %out_stdout, %fd
|
|
621
|
+
EXPAND FD_FROM_RAW %out_status, %out_stdout, %fd
|
|
622
|
+
[END_MACRO]
|
|
623
|
+
|
|
624
|
+
[MACRO] PROCESS_CHILD_STDOUT_INTO_OWNED_FD %out_status, %out_fd_handle, %stdout
|
|
625
|
+
EXPAND PROCESS_CHILD_STDOUT_INTO_RAW_FD %out_status, __process_child_stdout_owned_raw_%out_status, %stdout
|
|
626
|
+
!%out_status
|
|
627
|
+
EXPAND FD_FROM_RAW %out_status, %out_fd_handle, __process_child_stdout_owned_raw_%out_status
|
|
628
|
+
!__process_child_stdout_owned_raw_%out_status
|
|
629
|
+
[END_MACRO]
|
|
630
|
+
|
|
631
|
+
[MACRO] PROCESS_CHILD_STDOUT_FROM_OWNED_FD %out_status, %out_stdout, %fd_handle
|
|
632
|
+
EXPAND FD_INTO_RAW %out_status, __process_child_stdout_from_owned_raw_%out_status, %fd_handle
|
|
633
|
+
!%out_status
|
|
634
|
+
EXPAND PROCESS_CHILD_STDOUT_FROM_RAW_FD %out_status, %out_stdout, __process_child_stdout_from_owned_raw_%out_status
|
|
635
|
+
!__process_child_stdout_from_owned_raw_%out_status
|
|
636
|
+
[END_MACRO]
|
|
637
|
+
|
|
638
|
+
[MACRO] PROCESS_CHILD_STDERR_AS_RAW_FD %out_status, %out_fd, %stderr
|
|
639
|
+
EXPAND FD_AS_RAW %out_status, %out_fd, %stderr
|
|
640
|
+
[END_MACRO]
|
|
641
|
+
|
|
642
|
+
[MACRO] PROCESS_CHILD_STDERR_AS_FD %out_status, %out_fd, %stderr
|
|
643
|
+
EXPAND PROCESS_CHILD_STDERR_AS_RAW_FD %out_status, %out_fd, %stderr
|
|
644
|
+
[END_MACRO]
|
|
645
|
+
|
|
646
|
+
[MACRO] PROCESS_CHILD_STDERR_INTO_RAW_FD %out_status, %out_fd, %stderr
|
|
647
|
+
EXPAND FD_INTO_RAW %out_status, %out_fd, %stderr
|
|
648
|
+
[END_MACRO]
|
|
649
|
+
|
|
650
|
+
[MACRO] PROCESS_CHILD_STDERR_FROM_RAW_FD %out_status, %out_stderr, %fd
|
|
651
|
+
EXPAND FD_FROM_RAW %out_status, %out_stderr, %fd
|
|
652
|
+
[END_MACRO]
|
|
653
|
+
|
|
654
|
+
[MACRO] PROCESS_CHILD_STDERR_INTO_OWNED_FD %out_status, %out_fd_handle, %stderr
|
|
655
|
+
EXPAND PROCESS_CHILD_STDERR_INTO_RAW_FD %out_status, __process_child_stderr_owned_raw_%out_status, %stderr
|
|
656
|
+
!%out_status
|
|
657
|
+
EXPAND FD_FROM_RAW %out_status, %out_fd_handle, __process_child_stderr_owned_raw_%out_status
|
|
658
|
+
!__process_child_stderr_owned_raw_%out_status
|
|
659
|
+
[END_MACRO]
|
|
660
|
+
|
|
661
|
+
[MACRO] PROCESS_CHILD_STDERR_FROM_OWNED_FD %out_status, %out_stderr, %fd_handle
|
|
662
|
+
EXPAND FD_INTO_RAW %out_status, __process_child_stderr_from_owned_raw_%out_status, %fd_handle
|
|
663
|
+
!%out_status
|
|
664
|
+
EXPAND PROCESS_CHILD_STDERR_FROM_RAW_FD %out_status, %out_stderr, __process_child_stderr_from_owned_raw_%out_status
|
|
665
|
+
!__process_child_stderr_from_owned_raw_%out_status
|
|
666
|
+
[END_MACRO]
|
|
667
|
+
|
|
668
|
+
[MACRO] PROCESS_READ_STDOUT %out_status, %out_len, %process, %buf, %cap
|
|
669
|
+
__process_stdout_len_slot_%out_len = stack_alloc 8
|
|
670
|
+
%out_status = call @sa_std_process_read_stdout(%process, &%buf, %cap, &__process_stdout_len_slot_%out_len)
|
|
671
|
+
%out_len = load __process_stdout_len_slot_%out_len+0 as u64
|
|
672
|
+
[END_MACRO]
|
|
673
|
+
|
|
674
|
+
[MACRO] PROCESS_READ_STDERR %out_status, %out_len, %process, %buf, %cap
|
|
675
|
+
__process_stderr_len_slot_%out_len = stack_alloc 8
|
|
676
|
+
%out_status = call @sa_std_process_read_stderr(%process, &%buf, %cap, &__process_stderr_len_slot_%out_len)
|
|
677
|
+
%out_len = load __process_stderr_len_slot_%out_len+0 as u64
|
|
678
|
+
[END_MACRO]
|
|
679
|
+
|
|
680
|
+
[MACRO] PROCESS_EXEC_CAPTURE %out_status, %out_code, %out_stdout, %out_stderr, %argv, %argv_len
|
|
681
|
+
__process_capture_code_slot_%out_code = stack_alloc 4
|
|
682
|
+
__process_capture_stdout_slot_%out_stdout = stack_alloc 8
|
|
683
|
+
__process_capture_stderr_slot_%out_stderr = stack_alloc 8
|
|
684
|
+
%out_status = call @sa_std_process_exec_capture(&%argv, %argv_len, &__process_capture_code_slot_%out_code, &__process_capture_stdout_slot_%out_stdout, &__process_capture_stderr_slot_%out_stderr)
|
|
685
|
+
%out_code = load __process_capture_code_slot_%out_code+0 as u32
|
|
686
|
+
%out_stdout = load __process_capture_stdout_slot_%out_stdout+0 as u64
|
|
687
|
+
%out_stderr = load __process_capture_stderr_slot_%out_stderr+0 as u64
|
|
688
|
+
[END_MACRO]
|
|
689
|
+
|
|
690
|
+
[MACRO] PROCESS_EXEC_CAPTURE_OUTPUT %out_status, %output, %argv, %argv_len
|
|
691
|
+
__process_capture_output_status_%output = stack_alloc ProcessExitStatus_SIZE
|
|
692
|
+
EXPAND PROCESS_EXEC_CAPTURE %out_status, __process_capture_output_code_%output, __process_capture_output_stdout_handle_%output, __process_capture_output_stderr_handle_%output, %argv, %argv_len
|
|
693
|
+
EXPAND PROCESS_EXIT_STATUS_NEW __process_capture_output_status_%output, __process_capture_output_code_%output
|
|
694
|
+
EXPAND PROCESS_OUTPUT_NEW %output, __process_capture_output_status_%output, __process_capture_output_stdout_handle_%output, __process_capture_output_stderr_handle_%output
|
|
695
|
+
!__process_capture_output_stderr_handle_%output
|
|
696
|
+
!__process_capture_output_stdout_handle_%output
|
|
697
|
+
!__process_capture_output_code_%output
|
|
698
|
+
[END_MACRO]
|
|
699
|
+
|
|
700
|
+
[MACRO] PROCESS_EXEC_CAPTURE_CWD %out_status, %out_code, %out_stdout, %out_stderr, %argv, %argv_len, %cwd, %cwd_len
|
|
701
|
+
__process_capture_cwd_code_slot_%out_code = stack_alloc 4
|
|
702
|
+
__process_capture_cwd_stdout_slot_%out_stdout = stack_alloc 8
|
|
703
|
+
__process_capture_cwd_stderr_slot_%out_stderr = stack_alloc 8
|
|
704
|
+
%out_status = call @sa_std_process_exec_capture_cwd(&%argv, %argv_len, &%cwd, %cwd_len, &__process_capture_cwd_code_slot_%out_code, &__process_capture_cwd_stdout_slot_%out_stdout, &__process_capture_cwd_stderr_slot_%out_stderr)
|
|
705
|
+
%out_code = load __process_capture_cwd_code_slot_%out_code+0 as u32
|
|
706
|
+
%out_stdout = load __process_capture_cwd_stdout_slot_%out_stdout+0 as u64
|
|
707
|
+
%out_stderr = load __process_capture_cwd_stderr_slot_%out_stderr+0 as u64
|
|
708
|
+
[END_MACRO]
|
|
709
|
+
|
|
710
|
+
[MACRO] PROCESS_EXEC_CAPTURE_OUTPUT_CWD %out_status, %output, %argv, %argv_len, %cwd, %cwd_len
|
|
711
|
+
__process_capture_cwd_output_status_%output = stack_alloc ProcessExitStatus_SIZE
|
|
712
|
+
EXPAND PROCESS_EXEC_CAPTURE_CWD %out_status, __process_capture_cwd_output_code_%output, __process_capture_cwd_output_stdout_handle_%output, __process_capture_cwd_output_stderr_handle_%output, %argv, %argv_len, %cwd, %cwd_len
|
|
713
|
+
EXPAND PROCESS_EXIT_STATUS_NEW __process_capture_cwd_output_status_%output, __process_capture_cwd_output_code_%output
|
|
714
|
+
EXPAND PROCESS_OUTPUT_NEW %output, __process_capture_cwd_output_status_%output, __process_capture_cwd_output_stdout_handle_%output, __process_capture_cwd_output_stderr_handle_%output
|
|
715
|
+
!__process_capture_cwd_output_stderr_handle_%output
|
|
716
|
+
!__process_capture_cwd_output_stdout_handle_%output
|
|
717
|
+
!__process_capture_cwd_output_code_%output
|
|
718
|
+
[END_MACRO]
|
|
719
|
+
|
|
720
|
+
[MACRO] PROCESS_CLOSE %out_status, %process
|
|
721
|
+
%out_status = call @sa_std_process_close(%process)
|
|
722
|
+
[END_MACRO]
|
|
723
|
+
|
|
724
|
+
// Concrete Command-style SSA config builder over PROCESS_*_COMMAND_EXT.
|
|
725
|
+
// Builder state is propagating scalar flags only. Callers still pass addressable
|
|
726
|
+
// cwd/arg0 buffers into STATUS/SPAWN (use stack_alloc dummies when unused).
|
|
727
|
+
// This does not model env maps, pipe Stdio objects, or a heap Command value.
|
|
728
|
+
|
|
729
|
+
[MACRO] PROCESS_COMMAND_BUILDER_NEW %out_cwd_len, %out_has_cwd, %out_arg0_len, %out_has_arg0, %out_process_group, %out_has_process_group, %out_setsid
|
|
730
|
+
%out_cwd_len = add 0, 0
|
|
731
|
+
%out_has_cwd = add 0, 0
|
|
732
|
+
%out_arg0_len = add 0, 0
|
|
733
|
+
%out_has_arg0 = add 0, 0
|
|
734
|
+
%out_process_group = add 0, 0
|
|
735
|
+
%out_has_process_group = add 0, 0
|
|
736
|
+
%out_setsid = add 0, 0
|
|
737
|
+
[END_MACRO]
|
|
738
|
+
|
|
739
|
+
[MACRO] PROCESS_COMMAND_BUILDER_WITH_CURRENT_DIR %out_cwd_len, %out_has_cwd, %out_arg0_len, %out_has_arg0, %out_process_group, %out_has_process_group, %out_setsid, %in_cwd_len, %in_has_cwd, %in_arg0_len, %in_has_arg0, %in_process_group, %in_has_process_group, %in_setsid, %cwd_len
|
|
740
|
+
%out_cwd_len = add 0, %cwd_len
|
|
741
|
+
%out_has_cwd = add 0, 1
|
|
742
|
+
%out_arg0_len = add 0, %in_arg0_len
|
|
743
|
+
%out_has_arg0 = add 0, %in_has_arg0
|
|
744
|
+
%out_process_group = add 0, %in_process_group
|
|
745
|
+
%out_has_process_group = add 0, %in_has_process_group
|
|
746
|
+
%out_setsid = add 0, %in_setsid
|
|
747
|
+
!%in_cwd_len
|
|
748
|
+
!%in_has_cwd
|
|
749
|
+
[END_MACRO]
|
|
750
|
+
|
|
751
|
+
[MACRO] PROCESS_COMMAND_BUILDER_WITH_ARG0 %out_cwd_len, %out_has_cwd, %out_arg0_len, %out_has_arg0, %out_process_group, %out_has_process_group, %out_setsid, %in_cwd_len, %in_has_cwd, %in_arg0_len, %in_has_arg0, %in_process_group, %in_has_process_group, %in_setsid, %arg0_len
|
|
752
|
+
%out_cwd_len = add 0, %in_cwd_len
|
|
753
|
+
%out_has_cwd = add 0, %in_has_cwd
|
|
754
|
+
%out_arg0_len = add 0, %arg0_len
|
|
755
|
+
%out_has_arg0 = add 0, 1
|
|
756
|
+
%out_process_group = add 0, %in_process_group
|
|
757
|
+
%out_has_process_group = add 0, %in_has_process_group
|
|
758
|
+
%out_setsid = add 0, %in_setsid
|
|
759
|
+
!%in_arg0_len
|
|
760
|
+
!%in_has_arg0
|
|
761
|
+
[END_MACRO]
|
|
762
|
+
|
|
763
|
+
[MACRO] PROCESS_COMMAND_BUILDER_WITH_PROCESS_GROUP %out_cwd_len, %out_has_cwd, %out_arg0_len, %out_has_arg0, %out_process_group, %out_has_process_group, %out_setsid, %in_cwd_len, %in_has_cwd, %in_arg0_len, %in_has_arg0, %in_process_group, %in_has_process_group, %in_setsid, %process_group
|
|
764
|
+
%out_cwd_len = add 0, %in_cwd_len
|
|
765
|
+
%out_has_cwd = add 0, %in_has_cwd
|
|
766
|
+
%out_arg0_len = add 0, %in_arg0_len
|
|
767
|
+
%out_has_arg0 = add 0, %in_has_arg0
|
|
768
|
+
%out_process_group = add 0, %process_group
|
|
769
|
+
%out_has_process_group = add 0, 1
|
|
770
|
+
%out_setsid = add 0, %in_setsid
|
|
771
|
+
!%in_process_group
|
|
772
|
+
!%in_has_process_group
|
|
773
|
+
[END_MACRO]
|
|
774
|
+
|
|
775
|
+
[MACRO] PROCESS_COMMAND_BUILDER_WITH_SETSID %out_cwd_len, %out_has_cwd, %out_arg0_len, %out_has_arg0, %out_process_group, %out_has_process_group, %out_setsid, %in_cwd_len, %in_has_cwd, %in_arg0_len, %in_has_arg0, %in_process_group, %in_has_process_group, %in_setsid, %flag
|
|
776
|
+
__process_cmd_setsid_zero_%out_setsid = eq %flag, 0
|
|
777
|
+
br __process_cmd_setsid_zero_%out_setsid -> L_PROCESS_CMD_SETSID_OFF_%out_setsid, L_PROCESS_CMD_SETSID_ON_%out_setsid
|
|
778
|
+
L_PROCESS_CMD_SETSID_OFF_%out_setsid:
|
|
779
|
+
%out_cwd_len = add 0, %in_cwd_len
|
|
780
|
+
%out_has_cwd = add 0, %in_has_cwd
|
|
781
|
+
%out_arg0_len = add 0, %in_arg0_len
|
|
782
|
+
%out_has_arg0 = add 0, %in_has_arg0
|
|
783
|
+
%out_process_group = add 0, %in_process_group
|
|
784
|
+
%out_has_process_group = add 0, %in_has_process_group
|
|
785
|
+
%out_setsid = add 0, 0
|
|
786
|
+
!__process_cmd_setsid_zero_%out_setsid
|
|
787
|
+
jmp L_PROCESS_CMD_SETSID_END_%out_setsid
|
|
788
|
+
L_PROCESS_CMD_SETSID_ON_%out_setsid:
|
|
789
|
+
%out_cwd_len = add 0, %in_cwd_len
|
|
790
|
+
%out_has_cwd = add 0, %in_has_cwd
|
|
791
|
+
%out_arg0_len = add 0, %in_arg0_len
|
|
792
|
+
%out_has_arg0 = add 0, %in_has_arg0
|
|
793
|
+
%out_process_group = add 0, %in_process_group
|
|
794
|
+
%out_has_process_group = add 0, %in_has_process_group
|
|
795
|
+
%out_setsid = add 0, 1
|
|
796
|
+
!__process_cmd_setsid_zero_%out_setsid
|
|
797
|
+
jmp L_PROCESS_CMD_SETSID_END_%out_setsid
|
|
798
|
+
L_PROCESS_CMD_SETSID_END_%out_setsid:
|
|
799
|
+
!%in_setsid
|
|
800
|
+
[END_MACRO]
|
|
801
|
+
|
|
802
|
+
[MACRO] PROCESS_COMMAND_BUILDER_STATUS %out_status, %out_process, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid
|
|
803
|
+
EXPAND PROCESS_RUN_COMMAND_EXT %out_status, %out_process, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid
|
|
804
|
+
[END_MACRO]
|
|
805
|
+
|
|
806
|
+
[MACRO] PROCESS_COMMAND_BUILDER_SPAWN %out_status, %out_process, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid
|
|
807
|
+
EXPAND PROCESS_SPAWN_COMMAND_EXT %out_status, %out_process, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid
|
|
808
|
+
[END_MACRO]
|
|
809
|
+
|
|
810
|
+
[MACRO] PROCESS_COMMAND_BUILDER_STATUS_PIDFD %out_status, %out_process, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, %create_pidfd
|
|
811
|
+
EXPAND PROCESS_RUN_COMMAND_EXT_PIDFD %out_status, %out_process, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, %create_pidfd
|
|
812
|
+
[END_MACRO]
|
|
813
|
+
|
|
814
|
+
[MACRO] PROCESS_COMMAND_BUILDER_SPAWN_PIDFD %out_status, %out_process, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, %create_pidfd
|
|
815
|
+
EXPAND PROCESS_SPAWN_COMMAND_EXT_PIDFD %out_status, %out_process, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, %create_pidfd
|
|
816
|
+
[END_MACRO]
|
|
817
|
+
|
|
818
|
+
[MACRO] PROCESS_COMMAND_BUILDER_STATUS_UID_GID %out_status, %out_process, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, %uid, %has_uid, %gid, %has_gid
|
|
819
|
+
EXPAND PROCESS_RUN_COMMAND_EXT_UID_GID %out_status, %out_process, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, %uid, %has_uid, %gid, %has_gid
|
|
820
|
+
[END_MACRO]
|
|
821
|
+
|
|
822
|
+
[MACRO] PROCESS_COMMAND_BUILDER_SPAWN_UID_GID %out_status, %out_process, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, %uid, %has_uid, %gid, %has_gid
|
|
823
|
+
EXPAND PROCESS_SPAWN_COMMAND_EXT_UID_GID %out_status, %out_process, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, %uid, %has_uid, %gid, %has_gid
|
|
824
|
+
[END_MACRO]
|
|
825
|
+
|
|
826
|
+
[MACRO] PROCESS_COMMAND_BUILDER_STATUS_GROUPS %out_status, %out_process, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, %groups, %groups_len, %has_groups
|
|
827
|
+
EXPAND PROCESS_RUN_COMMAND_EXT_GROUPS %out_status, %out_process, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, %groups, %groups_len, %has_groups
|
|
828
|
+
[END_MACRO]
|
|
829
|
+
|
|
830
|
+
[MACRO] PROCESS_COMMAND_BUILDER_SPAWN_GROUPS %out_status, %out_process, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, %groups, %groups_len, %has_groups
|
|
831
|
+
EXPAND PROCESS_SPAWN_COMMAND_EXT_GROUPS %out_status, %out_process, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, %groups, %groups_len, %has_groups
|
|
832
|
+
[END_MACRO]
|
|
833
|
+
|
|
834
|
+
[MACRO] PROCESS_COMMAND_BUILDER_STATUS_CHROOT %out_status, %out_process, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, %chroot, %chroot_len, %has_chroot
|
|
835
|
+
EXPAND PROCESS_RUN_COMMAND_EXT_CHROOT %out_status, %out_process, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, %chroot, %chroot_len, %has_chroot
|
|
836
|
+
[END_MACRO]
|
|
837
|
+
|
|
838
|
+
[MACRO] PROCESS_COMMAND_BUILDER_SPAWN_CHROOT %out_status, %out_process, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, %chroot, %chroot_len, %has_chroot
|
|
839
|
+
EXPAND PROCESS_SPAWN_COMMAND_EXT_CHROOT %out_status, %out_process, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, %chroot, %chroot_len, %has_chroot
|
|
840
|
+
[END_MACRO]
|
|
841
|
+
|
|
842
|
+
[MACRO] PROCESS_COMMAND_BUILDER_EXEC %out_status, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, %uid, %has_uid, %gid, %has_gid, %groups, %groups_len, %has_groups, %chroot, %chroot_len, %has_chroot
|
|
843
|
+
EXPAND PROCESS_EXEC_COMMAND_EXT %out_status, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, %uid, %has_uid, %gid, %has_gid, %groups, %groups_len, %has_groups, %chroot, %chroot_len, %has_chroot
|
|
844
|
+
[END_MACRO]
|
|
845
|
+
|
|
846
|
+
[MACRO] PROCESS_COMMAND_BUILDER_SPAWN_STREAM %out_status, %out_process, %out_stdout, %out_stderr, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid
|
|
847
|
+
EXPAND PROCESS_SPAWN_STREAM_COMMAND_EXT %out_status, %out_process, %out_stdout, %out_stderr, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid
|
|
848
|
+
[END_MACRO]
|
|
849
|
+
|
|
850
|
+
[MACRO] PROCESS_COMMAND_BUILDER_SPAWN_STREAM_PIDFD %out_status, %out_process, %out_stdout, %out_stderr, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, %create_pidfd
|
|
851
|
+
EXPAND PROCESS_SPAWN_STREAM_COMMAND_EXT_PIDFD %out_status, %out_process, %out_stdout, %out_stderr, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, %create_pidfd
|
|
852
|
+
[END_MACRO]
|
|
853
|
+
|
|
854
|
+
[MACRO] PROCESS_COMMAND_BUILDER_SPAWN_STREAM_UID_GID %out_status, %out_process, %out_stdout, %out_stderr, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, %uid, %has_uid, %gid, %has_gid
|
|
855
|
+
EXPAND PROCESS_SPAWN_STREAM_COMMAND_EXT_UID_GID %out_status, %out_process, %out_stdout, %out_stderr, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, %uid, %has_uid, %gid, %has_gid
|
|
856
|
+
[END_MACRO]
|
|
857
|
+
|
|
858
|
+
[MACRO] PROCESS_COMMAND_BUILDER_SPAWN_STREAM_GROUPS %out_status, %out_process, %out_stdout, %out_stderr, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, %groups, %groups_len, %has_groups
|
|
859
|
+
EXPAND PROCESS_SPAWN_STREAM_COMMAND_EXT_GROUPS %out_status, %out_process, %out_stdout, %out_stderr, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, %groups, %groups_len, %has_groups
|
|
860
|
+
[END_MACRO]
|
|
861
|
+
|
|
862
|
+
[MACRO] PROCESS_COMMAND_BUILDER_SPAWN_STREAM_CHROOT %out_status, %out_process, %out_stdout, %out_stderr, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, %chroot, %chroot_len, %has_chroot
|
|
863
|
+
EXPAND PROCESS_SPAWN_STREAM_COMMAND_EXT_CHROOT %out_status, %out_process, %out_stdout, %out_stderr, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid, %chroot, %chroot_len, %has_chroot
|
|
864
|
+
[END_MACRO]
|
|
865
|
+
|
|
866
|
+
// Command.output()-style capture over the existing exec_capture ABI.
|
|
867
|
+
// Honors has_cwd/cwd only; arg0/process_group/setsid are not applied because
|
|
868
|
+
// capture runtime paths do not currently expose those CommandExt fields.
|
|
869
|
+
|
|
870
|
+
[MACRO] PROCESS_COMMAND_BUILDER_EXEC_CAPTURE %out_status, %out_code, %out_stdout, %out_stderr, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid
|
|
871
|
+
__process_cmd_cap_has_cwd_%out_status = ne %has_cwd, 0
|
|
872
|
+
br __process_cmd_cap_has_cwd_%out_status -> L_PROCESS_CMD_CAP_CWD_%out_status, L_PROCESS_CMD_CAP_PLAIN_%out_status
|
|
873
|
+
|
|
874
|
+
L_PROCESS_CMD_CAP_CWD_%out_status:
|
|
875
|
+
EXPAND PROCESS_EXEC_CAPTURE_CWD %out_status, %out_code, %out_stdout, %out_stderr, %argv, %argv_len, %cwd, %cwd_len
|
|
876
|
+
!__process_cmd_cap_has_cwd_%out_status
|
|
877
|
+
jmp L_PROCESS_CMD_CAP_END_%out_status
|
|
878
|
+
|
|
879
|
+
L_PROCESS_CMD_CAP_PLAIN_%out_status:
|
|
880
|
+
EXPAND PROCESS_EXEC_CAPTURE %out_status, %out_code, %out_stdout, %out_stderr, %argv, %argv_len
|
|
881
|
+
!__process_cmd_cap_has_cwd_%out_status
|
|
882
|
+
|
|
883
|
+
L_PROCESS_CMD_CAP_END_%out_status:
|
|
884
|
+
[END_MACRO]
|
|
885
|
+
|
|
886
|
+
[MACRO] PROCESS_COMMAND_BUILDER_OUTPUT %out_status, %output, %argv, %argv_len, %cwd, %cwd_len, %has_cwd, %arg0, %arg0_len, %has_arg0, %process_group, %has_process_group, %setsid
|
|
887
|
+
__process_cmd_out_has_cwd_%output = ne %has_cwd, 0
|
|
888
|
+
br __process_cmd_out_has_cwd_%output -> L_PROCESS_CMD_OUT_CWD_%output, L_PROCESS_CMD_OUT_PLAIN_%output
|
|
889
|
+
|
|
890
|
+
L_PROCESS_CMD_OUT_CWD_%output:
|
|
891
|
+
EXPAND PROCESS_EXEC_CAPTURE_OUTPUT_CWD %out_status, %output, %argv, %argv_len, %cwd, %cwd_len
|
|
892
|
+
!__process_cmd_out_has_cwd_%output
|
|
893
|
+
jmp L_PROCESS_CMD_OUT_END_%output
|
|
894
|
+
|
|
895
|
+
L_PROCESS_CMD_OUT_PLAIN_%output:
|
|
896
|
+
EXPAND PROCESS_EXEC_CAPTURE_OUTPUT %out_status, %output, %argv, %argv_len
|
|
897
|
+
!__process_cmd_out_has_cwd_%output
|
|
898
|
+
|
|
899
|
+
L_PROCESS_CMD_OUT_END_%output:
|
|
900
|
+
[END_MACRO]
|
|
901
|
+
|
|
902
|
+
[MACRO] PROCESS_OUTPUT_STDOUT_BYTES %out_ptr, %output
|
|
903
|
+
EXPAND PROCESS_OUTPUT_STDOUT_DATA %out_ptr, %output
|
|
904
|
+
[END_MACRO]
|
|
905
|
+
|
|
906
|
+
[MACRO] PROCESS_OUTPUT_STDERR_BYTES %out_ptr, %output
|
|
907
|
+
EXPAND PROCESS_OUTPUT_STDERR_DATA %out_ptr, %output
|
|
908
|
+
[END_MACRO]
|
|
909
|
+
|
|
910
|
+
[MACRO] PROCESS_OUTPUT_STDOUT_BYTE_LEN %out_len, %output
|
|
911
|
+
EXPAND PROCESS_OUTPUT_STDOUT_LEN %out_len, %output
|
|
912
|
+
[END_MACRO]
|
|
913
|
+
|
|
914
|
+
[MACRO] PROCESS_OUTPUT_STDERR_BYTE_LEN %out_len, %output
|
|
915
|
+
EXPAND PROCESS_OUTPUT_STDERR_LEN %out_len, %output
|
|
916
|
+
[END_MACRO]
|