aboutsummaryrefslogtreecommitdiff
path: root/interpreter/ElymasSys.pm
diff options
context:
space:
mode:
authorDrahflow <drahflow@gmx.de>2015-07-01 12:13:53 +0200
committerDrahflow <drahflow@gmx.de>2015-07-01 12:13:53 +0200
commitb875e47f6540fa5ca8f9e0fa1a870014ab5c3953 (patch)
tree3df89cc81c37aca950d55b97cc4ac27d228d2a90 /interpreter/ElymasSys.pm
parent247f385388c312c1b9b4947f3689b1094ec94ff5 (diff)
FreeBSD support in master
Diffstat (limited to 'interpreter/ElymasSys.pm')
-rw-r--r--interpreter/ElymasSys.pm14
1 files changed, 14 insertions, 0 deletions
diff --git a/interpreter/ElymasSys.pm b/interpreter/ElymasSys.pm
index ad79b02..a5219c6 100644
--- a/interpreter/ElymasSys.pm
+++ b/interpreter/ElymasSys.pm
@@ -9,6 +9,19 @@ use POSIX;
my $rwmask = &POSIX::O_RDONLY | &POSIX::O_WRONLY | &POSIX::O_RDWR;
+sub osType {
+ my $uname = qx(uname);
+ chomp $uname;
+
+ if($uname eq 'Linux') {
+ return 'linux';
+ } elsif($uname eq 'FreeBSD') {
+ return 'freebsd';
+ } else {
+ die "Unknown uname output '$uname', cannot decide what ABI to use.";
+ }
+}
+
our $sys = {
'file' => [sub {
my ($data, $scope) = @_;
@@ -21,6 +34,7 @@ our $sys = {
'err' => [createFile(2, &POSIX::O_WRONLY), ['struct'], 'passive'],
'argv' => [[map { [$_, 'string'] } @ARGV[1 .. $#ARGV]], ['array', 'sys .argv', ['range', 0, $#ARGV - 1], ['string']], 'passive'],
'asm' => [$ElymasAsm::asm, ['struct'], 'passive'],
+ osType() => [{ }, ['struct'], 'passive'],
};
sub createFile {