Fun
0.41.5
The programming language that makes You have fun
Main Page
Data Structures
Files
File List
Globals
Loading...
Searching...
No Matches
src
vm
os
serial_close.c
Go to the documentation of this file.
1
/*
2
* This file is part of the Fun programming language.
3
* https://fun-lang.xyz/
4
*
5
* Copyright 2025 Johannes Findeisen <you@hanez.org>
6
* Licensed under the terms of the Apache-2.0 license.
7
* https://opensource.org/license/apache-2-0
8
*/
9
21
22
#ifdef __unix__
23
#include <unistd.h>
24
#endif
25
26
case
OP_SERIAL_CLOSE
: {
27
/* Pops fd (int); returns 1/0 */
28
Value
fdv
= pop_value(vm);
29
int
ok
= 0;
30
#ifdef __unix__
31
if
(
fdv
.type !=
VAL_INT
) {
32
fprintf
(stderr,
"Runtime type error: serial_close expects (int fd)\n"
);
33
}
else
{
34
int
fd
= (int)
fdv
.i;
35
if
(close(
fd
) == 0)
ok
= 1;
36
}
37
#endif
38
free_value
(
fdv
);
39
push_value
(vm,
make_int
(
ok
));
40
break
;
41
}
OP_SERIAL_CLOSE
@ OP_SERIAL_CLOSE
Definition
bytecode.h:245
ok
int ok
Definition
contains.c:38
fdv
Value fdv
Definition
fd_poll_read.c:25
free_value
free_value(fdv)
push_value
push_value(vm, make_int(ok))
fd
int fd
Definition
serial_open.c:92
Value
Tagged union representing a Fun value.
Definition
value.h:68
make_int
Value make_int(int64_t v)
Construct a Value representing a 64-bit integer.
Definition
value.c:51
VAL_INT
@ VAL_INT
Definition
value.h:51
fprintf
#define fprintf
Definition
vm.c:200
Generated on
for Fun by
1.16.1