* make disabling/enabling a timer on windows reset it like on linux
[lcore.git] / unixstuff.inc
1 {$ifdef UNIX}\r
2   {$macro on}\r
3   {$ifdef VER1_0}\r
4     {$define tv_sec := sec}\r
5     {$define tv_usec := usec}\r
6     function dup(const original:integer):integer;inline;\r
7     begin\r
8       linux.dup(original,result);\r
9     end;\r
10     {$define gettimeofdaysec := gettimeofday}\r
11   {$else}\r
12     \r
13     {$define sigprocmask := fpsigprocmask}\r
14     {$define sigaction   := fpsigaction}\r
15     {$define fdclose     := fpclose}\r
16     {$define fcntl       := fpfcntl}\r
17     {$define fdwrite     := fpwrite}\r
18     {$define fdread      := fpread}\r
19     {$define fdopen      := fpopen}\r
20     {$define select      := fpselect}\r
21     {$define linuxerror  := fpgeterrno}\r
22     {$define fork        := fpfork}\r
23     {$define getpid      := fpgetpid}\r
24     {$define getenv      := fpgetenv}\r
25     {$define chmod       := fpchmod}\r
26     {$define dup2        := fpdup2}\r
27     {$ifndef ver1_9_2}\r
28       {$define flock     := fpflock}\r
29       {$ifndef ver1_9_4}\r
30         procedure Execl(Todo:string);inline;\r
31         var\r
32           p : ppchar;\r
33         begin\r
34           p := unixutil.StringToPPChar(Todo,1);\r
35           if (p=nil) or (p^=nil) then exit;\r
36           fpexecv(p^,p);\r
37         end;\r
38       {$endif}\r
39     {$endif}\r
40     procedure gettimeofday(var tv:ttimeval);inline;\r
41     begin\r
42       fpgettimeofday(@tv,nil);    \r
43     end;\r
44     function gettimeofdaysec : longint;\r
45     var\r
46       tv:ttimeval;\r
47     begin\r
48       gettimeofday(tv);\r
49       result := tv.tv_sec;\r
50     end;\r
51 \r
52     //a function is used here rather than a define to prevent issues with tlasio.dup\r
53     function dup(const original:integer):integer;inline;\r
54     begin\r
55       result := fpdup(original);\r
56     end;\r
57     function octal(invalue:longint):longint;\r
58     var\r
59       a : integer;\r
60       i : integer;\r
61     begin\r
62       i := 0;\r
63       result := 0;\r
64       while invalue <> 0 do begin\r
65         a := invalue mod 10;\r
66         result := result + (a shl (i*3));\r
67 \r
68         invalue := invalue div 10;\r
69         inc(i);\r
70       end;\r
71     end;\r
72     const\r
73       sys_eintr=esyseintr;\r
74 \r
75   {$endif}\r
76 {$endif}\r