~ubuntu-branches/debian/lenny/fpc/lenny

« back to all changes in this revision

Viewing changes to fpcdocs/linux.xml

  • Committer: Bazaar Package Importer
  • Author(s): Mazen Neifer, Torsten Werner, Mazen Neifer
  • Date: 2008-05-17 17:12:11 UTC
  • mfrom: (3.1.9 intrepid)
  • Revision ID: james.westby@ubuntu.com-20080517171211-9qi33xhd9evfa0kg
Tags: 2.2.0-dfsg1-9
[ Torsten Werner ]
* Add Mazen Neifer to Uploaders field.

[ Mazen Neifer ]
* Moved FPC sources into a version dependent directory from /usr/share/fpcsrc
  to /usr/share/fpcsrc/${FPCVERSION}. This allow installing more than on FPC
  release.
* Fixed far call issue in compiler preventing building huge binearies.
  (closes: #477743)
* Updated building dependencies, recomennded and suggested packages.
* Moved fppkg to fp-utils as it is just a helper tool and is not required by
  compiler.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?xml version="1.0" encoding="ISO8859-1"?>
 
2
<!--  
 
3
 
 
4
   $Id: linux.xml,v 1.1 2004/10/22 20:45:36 michael Exp $ 
 
5
   This file is part of the FPC documentation. 
 
6
   Copyright (C) 1997, by Michael Van Canneyt 
 
7
 
 
8
   The FPC documentation is free text; you can redistribute it and/or 
 
9
   modify it under the terms of the GNU Library General Public License as 
 
10
   published by the Free Software Foundation; either version 2 of the 
 
11
   License, or (at your option) any later version. 
 
12
 
 
13
   The FPC Documentation is distributed in the hope that it will be useful, 
 
14
   but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
15
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
 
16
   Library General Public License for more details. 
 
17
 
 
18
   You should have received a copy of the GNU Library General Public 
 
19
   License along with the FPC documentation; see the file COPYING.LIB.  If not, 
 
20
   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 
 
21
   Boston, MA 02111-1307, USA. 
 
22
 -->
 
23
<fpdoc-descriptions>
 
24
<package name="rtl">
 
25
<module name="Linux">
 
26
<short>Linux-specific operating system calls.</short>
 
27
<descr>
 
28
<p>
 
29
The <file>linux</file> unit contains linux specific operating system calls.
 
30
</p>
 
31
<p>
 
32
The platform independent functionality of the FPC 1.0.X version of the 
 
33
<file>linux</file> unit has been split out over the 
 
34
<link id="#rtl.unix">unix</link>, <link id="#rtl.baseunix">baseunix</link> and
 
35
<link id="#rtl.unixutil">unixutil</link> units.
 
36
</p>
 
37
<p>
 
38
The X86-specific parts have been moved to the <link id="#rtl.x86">X86</link>
 
39
unit.
 
40
</p>
 
41
<p>
 
42
People wanting to use the old version (FPC 1.0.X and before) of the
 
43
<file>linux</file> can use the <link id="#rtl.oldlinux">oldlinux</link> unit
 
44
instead.
 
45
</p>
 
46
</descr>
 
47
 
 
48
<!-- record type Visibility: default -->
 
49
<element name="TSysinfo">
 
50
<short>Record with system information, used by the <link id="SysInfo"/> call.</short>
 
51
</element>
 
52
 
 
53
<!-- variable Visibility: default -->
 
54
<element name="TSysinfo.uptime">
 
55
<short>Number of seconds since boot.</short>
 
56
</element>
 
57
 
 
58
<!-- variable Visibility: default -->
 
59
<element name="TSysinfo.loads">
 
60
<short>1, 5 and 15 minute load averages.</short>
 
61
</element>
 
62
 
 
63
<!-- variable Visibility: default -->
 
64
<element name="TSysinfo.totalram">
 
65
<short>total amount of main memory.</short>
 
66
</element>
 
67
 
 
68
<!-- variable Visibility: default -->
 
69
<element name="TSysinfo.freeram">
 
70
<short>amount of free memory.</short>
 
71
</element>
 
72
 
 
73
<!-- variable Visibility: default -->
 
74
<element name="TSysinfo.sharedram">
 
75
<short>amount of shared memory.</short>
 
76
</element>
 
77
 
 
78
<!-- variable Visibility: default -->
 
79
<element name="TSysinfo.bufferram">
 
80
<short>amount of memory used by buffers.</short>
 
81
</element>
 
82
 
 
83
<!-- variable Visibility: default -->
 
84
<element name="TSysinfo.totalswap">
 
85
<short>total amount of swapspace.</short>
 
86
</element>
 
87
 
 
88
<!-- variable Visibility: default -->
 
89
<element name="TSysinfo.freeswap">
 
90
<short>amount of free swapspace.</short>
 
91
</element>
 
92
 
 
93
<!-- variable Visibility: default -->
 
94
<element name="TSysinfo.procs">
 
95
<short>number of current processes.</short>
 
96
</element>
 
97
 
 
98
<!-- variable Visibility: default -->
 
99
<element name="TSysinfo.s">
 
100
<short>?</short>
 
101
</element>
 
102
 
 
103
<!-- pointer type Visibility: default -->
 
104
<element name="PSysInfo">
 
105
<short>Pointer to <link id="TSysInfo"/> record.</short>
 
106
</element>
 
107
 
 
108
<!-- function Visibility: default -->
 
109
<element name="Sysinfo">
 
110
<short>Return kernel system information</short>
 
111
<descr>
 
112
<p>
 
113
<var>SysInfo</var> returns system information in <var>Info</var>. Returned information
 
114
in <var>Info</var> includes:
 
115
</p>
 
116
<dl>
 
117
<dt>uptime</dt><dd>Number of seconds since boot.</dd>
 
118
<dt>loads</dt><dd>1, 5 and 15 minute load averages.</dd>
 
119
<dt>totalram</dt><dd>total amount of main memory.</dd>
 
120
<dt>freeram</dt><dd>amount of free memory.</dd>
 
121
<dt>sharedram</dt><dd>amount of shared memory.</dd>
 
122
<dt>bufferram</dt><dd>amount of memory used by buffers.</dd>
 
123
<dt>totalswap</dt><dd>total amount of swapspace.</dd>
 
124
<dt>freeswap</dt><dd>amount of free swapspace.</dd>
 
125
<dt>procs</dt><dd>number of current processes.</dd>
 
126
</dl>
 
127
</descr>
 
128
<errors>
 
129
None.
 
130
</errors>
 
131
<seealso>
 
132
<link id="#rtl.baseunix.fpUname"/>
 
133
</seealso>
 
134
<example file="linuxex/ex64"/>
 
135
</element>
 
136
 
 
137
<!-- constant Visibility: default -->
 
138
<element name="CSIGNAL">
 
139
<short><link id="Clone"/> option: Signal mask to be sent at exit</short>
 
140
</element>
 
141
 
 
142
<!-- constant Visibility: default -->
 
143
<element name="CLONE_VM">
 
144
<short><link id="Clone"/> option: VM shared between processes</short>
 
145
</element>
 
146
 
 
147
<!-- constant Visibility: default -->
 
148
<element name="CLONE_FS">
 
149
<short><link id="Clone"/> option: fs info shared between processes</short>
 
150
</element>
 
151
 
 
152
<!-- constant Visibility: default -->
 
153
<element name="CLONE_FILES">
 
154
<short><link id="Clone"/> option: open files shared between processes</short>
 
155
</element>
 
156
 
 
157
<!-- constant Visibility: default -->
 
158
<element name="CLONE_SIGHAND">
 
159
<short><link id="Clone"/> option: signal handlers shared between processes</short>
 
160
</element>
 
161
 
 
162
<!-- constant Visibility: default -->
 
163
<element name="CLONE_PID">
 
164
<short><link id="Clone"/> option: PID shared between processes</short>
 
165
</element>
 
166
 
 
167
<!-- function type Visibility: default -->
 
168
<element name="TCloneFunc">
 
169
<short>Clone function prototype.</short>
 
170
</element>
 
171
 
 
172
<!-- function Visibility: default -->
 
173
<element name="Clone">
 
174
<short>Clone current process (create new thread)</short>
 
175
<descr>
 
176
<p>
 
177
<var>Clone</var>
 
178
creates a child process which is a copy of the parent process, just
 
179
like <link id="#rtl.baseunix.FpFork">FpFork</link> does. In difference with <var>Fork</var>, however, the child
 
180
process shares some parts of it's execution context with its parent, so it
 
181
is suitable for the implementation of threads: many instances of a program
 
182
that share the same memory.
 
183
</p>
 
184
<p>
 
185
When the child process is created, it starts executing the function
 
186
<var>Func</var>, and passes it <var>Args</var>. The return value of <var>Func</var> is 
 
187
either the explicit return value of the function, or the exit code of
 
188
the child process.
 
189
</p>
 
190
<p>
 
191
The <var>sp</var> pointer points to the memory reserved as stack space for the
 
192
child process. This address should be the top of the memory block to be used
 
193
as stack.
 
194
</p>
 
195
<p>
 
196
The <var>Flags</var> determine the behaviour of the <var>Clone</var> call. The low
 
197
byte of the Flags contains the number of the signal that will be  sent to 
 
198
the parent when  the child dies. 
 
199
This may be bitwise OR'ed with the following constants:
 
200
</p>
 
201
<dl>
 
202
<dt>CLONE_VM</dt>
 
203
<dd> Parent and child share the same memory space, including
 
204
memory (un)mapped with subsequent <var>mmap</var> calls.</dd>
 
205
<dt>CLONE_FS</dt>
 
206
<dd> Parent and child have the same view of the filesystem;
 
207
the <var>chroot</var>, <var>chdir</var> and <var>umask</var> calls affect both processes.</dd>
 
208
<dt>CLONE_FILES</dt>
 
209
<dd> the file descriptor table of parent and child is shared.</dd>
 
210
<dt>CLONE_SIGHAND</dt>
 
211
<dd> the parent and child share the same table of signal
 
212
handlers. The signal masks are different, though.</dd>
 
213
<dt>CLONE_PID</dt>
 
214
<dd> PArent and child have the same process ID.</dd>
 
215
</dl>
 
216
<p>
 
217
Clone returns the process ID in the parent process, and -1 if an error
 
218
occurred.
 
219
</p>
 
220
</descr>
 
221
<errors>
 
222
<p>
 
223
On error, -1 is returned to the parent, and no child is created.
 
224
</p>
 
225
<dl>
 
226
<dt>sys_eagain</dt><dd>Too many processes are running.</dd>
 
227
<dt>sys_enomem</dt><dd>Not enough memory to create child process.</dd>
 
228
</dl>
 
229
</errors>
 
230
<seealso>
 
231
<link id="#rtl.baseunix.FpFork"/>
 
232
</seealso>
 
233
<example file="linuxex/ex71"/>
 
234
</element>
 
235
 
 
236
<!-- unresolved type reference Visibility: default -->
 
237
<element name="ctypes">
 
238
<short>Support for some basic C types</short>
 
239
</element>
 
240
 
 
241
<!-- constant Visibility: default -->
 
242
<element name="EPOLLIN">
 
243
<short>Poll input file descriptor ready event</short>
 
244
</element>
 
245
 
 
246
<!-- constant Visibility: default -->
 
247
<element name="EPOLLOUT">
 
248
<short>Poll output file descriptor ready event</short>
 
249
</element>
 
250
 
 
251
<!-- constant Visibility: default -->
 
252
<element name="EPOLLPRI">
 
253
<short>Priority data available on input file descriptor</short>
 
254
</element>
 
255
 
 
256
<!-- constant Visibility: default -->
 
257
<element name="EPOLLERR">
 
258
<short>Poll error condition</short>
 
259
</element>
 
260
 
 
261
<!-- constant Visibility: default -->
 
262
<element name="EPOLLHUP">
 
263
<short>Poll hung up</short>
 
264
</element>
 
265
 
 
266
<!-- constant Visibility: default -->
 
267
<element name="EPOLLET">
 
268
<short>Undocumented</short>
 
269
</element>
 
270
 
 
271
<!-- constant Visibility: default -->
 
272
<element name="EPOLL_CTL_ADD">
 
273
<short>Add filedescriptor to list of events</short>
 
274
</element>
 
275
 
 
276
<!-- constant Visibility: default -->
 
277
<element name="EPOLL_CTL_MOD">
 
278
<short>Modify event for filedescriptor</short>
 
279
</element>
 
280
 
 
281
<!-- constant Visibility: default -->
 
282
<element name="EPOLL_CTL_DEL">
 
283
<short>Delete event for filedescriptor</short>
 
284
</element>
 
285
 
 
286
<!-- constant Visibility: default -->
 
287
<element name="GIO_FONT">
 
288
<short>IOCTL: Get font in expanded form.</short>
 
289
</element>
 
290
 
 
291
<!-- constant Visibility: default -->
 
292
<element name="PIO_FONT">
 
293
<short>IOCTL: Use font in expanded form.</short>
 
294
</element>
 
295
 
 
296
<!-- constant Visibility: default -->
 
297
<element name="GIO_FONTX">
 
298
<short>IOCTL: Get font in <var>consolefontdesc</var> record.</short>
 
299
</element>
 
300
 
 
301
<!-- constant Visibility: default -->
 
302
<element name="PIO_FONTX">
 
303
<short>IOCTL: Set font in <var>consolefontdesc</var> record.</short>
 
304
</element>
 
305
 
 
306
<!-- constant Visibility: default -->
 
307
<element name="PIO_FONTRESET">
 
308
<short>IOCTL: Reset to default font</short>
 
309
</element>
 
310
 
 
311
<!-- constant Visibility: default -->
 
312
<element name="GIO_CMAP">
 
313
<short>IOCTL: Get colour palette on VGA+</short>
 
314
</element>
 
315
 
 
316
<!-- constant Visibility: default -->
 
317
<element name="PIO_CMAP">
 
318
<short>IOCTL: Set colour palette on VGA+</short>
 
319
</element>
 
320
 
 
321
<!-- constant Visibility: default -->
 
322
<element name="KIOCSOUND">
 
323
<short>IOCTL: start/stop sound generation (0 for off)</short>
 
324
</element>
 
325
 
 
326
<!-- constant Visibility: default -->
 
327
<element name="KDMKTONE">
 
328
<short>IOCTL: generate tone</short>
 
329
</element>
 
330
 
 
331
<!-- constant Visibility: default -->
 
332
<element name="KDGETLED">
 
333
<short>IOCTL: return current led state</short>
 
334
</element>
 
335
 
 
336
<!-- constant Visibility: default -->
 
337
<element name="KDSETLED">
 
338
<short>IOCTL: set led state</short>
 
339
</element>
 
340
 
 
341
<!-- constant Visibility: default -->
 
342
<element name="KDGKBTYPE">
 
343
<short>IOCTL: get keyboard type</short>
 
344
</element>
 
345
 
 
346
<!-- constant Visibility: default -->
 
347
<element name="KDADDIO">
 
348
<short>IOCTL: add i/o port as valid</short>
 
349
</element>
 
350
 
 
351
<!-- constant Visibility: default -->
 
352
<element name="KDDELIO">
 
353
<short>IOCTL: delete i/o port as valid</short>
 
354
</element>
 
355
 
 
356
<!-- constant Visibility: default -->
 
357
<element name="KDENABIO">
 
358
<short>IOCTL: enable i/o to video board</short>
 
359
</element>
 
360
 
 
361
<!-- constant Visibility: default -->
 
362
<element name="KDDISABIO">
 
363
<short>IOCTL: disable i/o to video board</short>
 
364
</element>
 
365
 
 
366
<!-- constant Visibility: default -->
 
367
<element name="KDSETMODE">
 
368
<short>IOCTL: set text/graphics mode</short>
 
369
</element>
 
370
 
 
371
<!-- constant Visibility: default -->
 
372
<element name="KDGETMODE">
 
373
<short>IOCTL: get current mode</short>
 
374
</element>
 
375
 
 
376
<!-- constant Visibility: default -->
 
377
<element name="KDMAPDISP">
 
378
<short>IOCTL: map display into address space</short>
 
379
</element>
 
380
 
 
381
<!-- constant Visibility: default -->
 
382
<element name="KDUNMAPDISP">
 
383
<short>IOCTL: unmap display from address space</short>
 
384
</element>
 
385
 
 
386
<!-- constant Visibility: default -->
 
387
<element name="GIO_SCRNMAP">
 
388
<short>IOCTL: get screen mapping from kernel</short>
 
389
</element>
 
390
 
 
391
<!-- constant Visibility: default -->
 
392
<element name="PIO_SCRNMAP">
 
393
<short>IOCTL: put screen mapping table in kernel</short>
 
394
</element>
 
395
 
 
396
<!-- constant Visibility: default -->
 
397
<element name="GIO_UNISCRNMAP">
 
398
<short>IOCTL: get full Unicode screen mapping</short>
 
399
</element>
 
400
 
 
401
<!-- constant Visibility: default -->
 
402
<element name="PIO_UNISCRNMAP">
 
403
<short>IOCTL: set full Unicode screen mapping</short>
 
404
</element>
 
405
 
 
406
<!-- constant Visibility: default -->
 
407
<element name="GIO_UNIMAP">
 
408
<short>IOCTL: get unicode-to-font mapping from kernel</short>
 
409
</element>
 
410
 
 
411
<!-- constant Visibility: default -->
 
412
<element name="PIO_UNIMAP">
 
413
<short>IOCTL: put unicode-to-font mapping in kernel</short>
 
414
</element>
 
415
 
 
416
<!-- constant Visibility: default -->
 
417
<element name="PIO_UNIMAPCLR">
 
418
<short>IOCTL: clear table, possibly advise hash algorithm</short>
 
419
</element>
 
420
 
 
421
<!-- constant Visibility: default -->
 
422
<element name="KDGKBDIACR">
 
423
<short>IOCTL: read kernel accent table</short>
 
424
</element>
 
425
 
 
426
<!-- constant Visibility: default -->
 
427
<element name="KDSKBDIACR">
 
428
<short>IOCTL: write kernel accent table</short>
 
429
</element>
 
430
 
 
431
<!-- constant Visibility: default -->
 
432
<element name="KDGETKEYCODE">
 
433
<short>IOCTL: read kernel keycode table entry</short>
 
434
</element>
 
435
 
 
436
<!-- constant Visibility: default -->
 
437
<element name="KDSETKEYCODE">
 
438
<short>IOCTL: write kernel keycode table entry</short>
 
439
</element>
 
440
 
 
441
<!-- constant Visibility: default -->
 
442
<element name="KDSIGACCEPT">
 
443
<short>IOCTL: accept kbd generated signals</short>
 
444
</element>
 
445
 
 
446
<!-- constant Visibility: default -->
 
447
<element name="KDFONTOP">
 
448
<short>IOCTL: font operations</short>
 
449
</element>
 
450
 
 
451
<!-- constant Visibility: default -->
 
452
<element name="KB_84">
 
453
<short>IOCTL: Keyboard types: 84 keys</short>
 
454
</element>
 
455
 
 
456
<!-- constant Visibility: default -->
 
457
<element name="KB_101">
 
458
<short>IOCTL: Keyboard types: 101 keys</short>
 
459
</element>
 
460
 
 
461
<!-- constant Visibility: default -->
 
462
<element name="KB_OTHER">
 
463
<short>IOCTL: Keyboard types: other type</short>
 
464
</element>
 
465
 
 
466
<!-- constant Visibility: default -->
 
467
<element name="LED_SCR">
 
468
<short>IOCTL: LED_SCR : scroll lock led</short>
 
469
</element>
 
470
 
 
471
<!-- constant Visibility: default -->
 
472
<element name="LED_NUM">
 
473
<short>IOCTL: LED_SCR : Num lock led</short>
 
474
</element>
 
475
 
 
476
<!-- constant Visibility: default -->
 
477
<element name="LED_CAP">
 
478
<short>IOCTL: LED_CAP : caps lock led</short>
 
479
</element>
 
480
 
 
481
<!-- constant Visibility: default -->
 
482
<element name="KD_TEXT">
 
483
<short>IOCTL: Tty modes: Text mode</short>
 
484
</element>
 
485
 
 
486
<!-- constant Visibility: default -->
 
487
<element name="KD_GRAPHICS">
 
488
<short>IOCTL: Tty modes: graphics mode </short>
 
489
</element>
 
490
 
 
491
<!-- constant Visibility: default -->
 
492
<element name="KD_TEXT0">
 
493
<short>IOCTL: Tty modes: Text mode (obsolete)</short>
 
494
</element>
 
495
 
 
496
<!-- constant Visibility: default -->
 
497
<element name="KD_TEXT1">
 
498
<short>IOCTL: Tty modes: Text mode (obsolete)</short>
 
499
</element>
 
500
 
 
501
<!-- record type Visibility: default -->
 
502
<element name="EPoll_Data">
 
503
<short>Epoll data call structure</short>
 
504
<descr>
 
505
Data structure used in EPOLL IOCTL call.
 
506
</descr>
 
507
</element>
 
508
 
 
509
<!-- variable Visibility: default -->
 
510
<element name="EPoll_Data.ptr">
 
511
<short>Pointer to data</short>
 
512
</element>
 
513
 
 
514
<!-- variable Visibility: default -->
 
515
<element name="EPoll_Data.fd">
 
516
<short>File descriptor</short>
 
517
</element>
 
518
 
 
519
<!-- variable Visibility: default -->
 
520
<element name="EPoll_Data.u32">
 
521
<short>Unsigned 32-bit integer</short>
 
522
</element>
 
523
 
 
524
<!-- variable Visibility: default -->
 
525
<element name="EPoll_Data.u64">
 
526
<short>Unsigned 64-bit integer</short>
 
527
</element>
 
528
 
 
529
<!-- alias type Visibility: default -->
 
530
<element name="TEPoll_Data">
 
531
<short>Alias for <link id="#rtl.linux.EPoll_Data">EPoll_Data</link> type</short>
 
532
</element>
 
533
 
 
534
<!-- pointer type Visibility: default -->
 
535
<element name="PEPoll_Data">
 
536
<short>Pointer to <link id="#rtl.linux.EPoll_Data">EPoll_Data</link> record</short>
 
537
</element>
 
538
 
 
539
<!-- record type Visibility: default -->
 
540
<element name="EPoll_Event">
 
541
<short>Structure used in <link id="#rtl.linux.epoll_ctl">epoll_ctl</link> call.</short>
 
542
</element>
 
543
 
 
544
<!-- variable Visibility: default -->
 
545
<element name="EPoll_Event.Events">
 
546
<short>Events to monitor</short>
 
547
</element>
 
548
 
 
549
<!-- variable Visibility: default -->
 
550
<element name="EPoll_Event.Data">
 
551
<short>User data </short>
 
552
</element>
 
553
 
 
554
<!-- alias type Visibility: default -->
 
555
<element name="TEPoll_Event">
 
556
<short>Alias for <link id="#rtl.linux.EPoll_Event">EPoll_Event</link> type</short>
 
557
</element>
 
558
 
 
559
<!-- pointer type Visibility: default -->
 
560
<element name="PEpoll_Event">
 
561
<short>Pointer to <link id="#rtl.linux.EPoll_Event">EPoll_Event</link> type</short>
 
562
</element>
 
563
 
 
564
<!-- function Visibility: default -->
 
565
<element name="epoll_create">
 
566
<short>Create new epoll file descriptor</short>
 
567
<descr>
 
568
<p>
 
569
<var>epoll_create</var> creates a new epoll file descriptor. The <var>size</var>
 
570
argument indicates to the kernel approximately how many structures should be allocated,
 
571
but is by no means an upper limit.
 
572
</p>
 
573
<p>
 
574
On success, a file descriptor is returned that can be used in subsequent 
 
575
<link id="epoll_ctl"/> or <link id="epoll_wait"/> calls, and should be closed
 
576
using the <link id="#rtl.baseunix.fpClose">fpClose</link> call. 
 
577
</p>
 
578
</descr>
 
579
<errors>
 
580
On error, -1 is returned, and <link id="#rtl.baseunix.errno">errno</link> is set. 
 
581
</errors>
 
582
<seealso>
 
583
<link id="epoll_ctl"/>
 
584
<link id="epoll_wait"/>
 
585
<link id="#rtl.baseunix.fpClose">fpClose</link>
 
586
</seealso>
 
587
</element>
 
588
 
 
589
<!-- function Visibility: default -->
 
590
<element name="epoll_ctl">
 
591
<short>Modify an epoll file descriptor</short>
 
592
<descr>
 
593
<p>
 
594
<var>epoll_ctl</var> performs the <var>op</var> operation on epoll file descriptor
 
595
<var>epfd</var>. The operation will be monitored on file descriptor <var>fd</var>, and is
 
596
optionally controlled by <var>event</var>.
 
597
</p>
 
598
<p>
 
599
<var>op</var> can be one of the following values:
 
600
</p>
 
601
<dl>
 
602
<dt>EPOLL_CTL_ADD</dt><dd><printshort id="EPOLL_CTL_ADD"/></dd>
 
603
<dt>EPOLL_CTL_MOD</dt><dd><printshort id="EPOLL_CTL_MOD"/></dd>
 
604
<dt>EPOLL_CTL_DEL</dt><dd><printshort id="EPOLL_CTL_DEL"/></dd>
 
605
</dl>
 
606
<p>
 
607
The <var>events</var> field in  <var>event_data</var> is a bitmask of one or more of the following values:</p>
 
608
<dl>
 
609
<dt>EPOLLIN</dt><dd>The file is ready for read operations</dd>
 
610
<dt>EPOLLOUT</dt><dd>The file is ready for write operations.</dd>
 
611
<dt>EPOLLPRI</dt><dd>Urgent data is available for read operations.</dd>
 
612
<dt>EPOLLERR</dt><dd>An error condition is signaled on the file descriptor.</dd>
 
613
<dt>EPOLLHUP</dt><dd>A Hang up happened on the file descriptor.</dd>
 
614
<dt>EPOLLET</dt><dd>Set the Edge Triggered behaviour for the file descriptor.</dd>
 
615
<dt>EPOLLONESHOT</dt><dd>Set One-Shot behaviour for the file descriptor. The event will be triggered only once.</dd>
 
616
</dl>
 
617
</descr>
 
618
<errors>
 
619
On error -1 is returned, and errno is set accordingly.
 
620
</errors>
 
621
<seealso>
 
622
<link id="epoll_create"/>
 
623
<link id="epoll_wait"/>
 
624
<link id="#rtl.baseunix.fpClose">fpClose</link>
 
625
</seealso>
 
626
</element>
 
627
 
 
628
<element name="epoll_wait">
 
629
<short>Wait for an event on an epoll file descriptor.</short>
 
630
<descr>
 
631
<p>
 
632
<var>epoll_wait</var> waits for <var>timeout</var> milliseconds for an event to occur on epoll file descriptor <var>epfd</var>. If <var>timeout</var> is -1, it waits indefinitely, if <var>timeour</var> is zero, it does not wait, but returns immediatly, even if no events were detected.
 
633
</p>
 
634
<p>On return, data for at most <var>maxevents</var> will be returned in the memory pointed to by <var>events</var>. The function returns the number of file descriptors for which
 
635
events were reported. This can be zero if the timeout was reached.</p>
 
636
</descr>
 
637
<errors>
 
638
On error -1 is returned, and errno is set accordingly.
 
639
</errors>
 
640
<seealso>
 
641
<link id="epoll_create"/>
 
642
<link id="epoll_ctl"/>
 
643
<link id="#rtl.baseunix.fpClose">fpClose</link>
 
644
</seealso>
 
645
</element>
 
646
 
 
647
<!-- constant Visibility: default -->
 
648
<element name="CLONE_PTRACE">
 
649
<short>Clone options: if parent is traced, trace child also</short>
 
650
</element>
 
651
 
 
652
<!-- constant Visibility: default -->
 
653
<element name="CLONE_VFORK">
 
654
<short>Clone options: suspend parent till child execs</short>
 
655
</element>
 
656
 
 
657
<!-- constant Visibility: default -->
 
658
<element name="CLONE_PARENT">
 
659
<short>Clone options: Set child parent to parent of calling process.</short>
 
660
</element>
 
661
 
 
662
<!-- constant Visibility: default -->
 
663
<element name="CLONE_THREAD">
 
664
<short>Clone options: Set child in thread group of calling process. </short>
 
665
</element>
 
666
 
 
667
<!-- constant Visibility: default -->
 
668
<element name="CLONE_NEWNS">
 
669
<short>Clone options: Start child in new (filesystem) namespace.</short>
 
670
</element>
 
671
 
 
672
<!-- constant Visibility: default -->
 
673
<element name="CLONE_SYSVSEM">
 
674
<short>Clone option: Caller and child share the same semaphore undo values</short>
 
675
</element>
 
676
 
 
677
<!-- constant Visibility: default -->
 
678
<element name="CLONE_SETTLS">
 
679
<short>Clone option: The newtls parameter is the TLS descriptor of the child</short>
 
680
</element>
 
681
 
 
682
<!-- constant Visibility: default -->
 
683
<element name="CLONE_PARENT_SETTID">
 
684
<short>Clone option: Store child thread ID in memory in both parent and child.</short>
 
685
</element>
 
686
 
 
687
<!-- constant Visibility: default -->
 
688
<element name="CLONE_CHILD_CLEARTID">
 
689
<short>Clone option: Erase child thread ID in child memory space when child exits. </short>
 
690
</element>
 
691
 
 
692
<!-- constant Visibility: default -->
 
693
<element name="CLONE_DETACHED">
 
694
<short>Clone option: Start clone detached.</short>
 
695
</element>
 
696
 
 
697
<!-- constant Visibility: default -->
 
698
<element name="CLONE_UNTRACED">
 
699
<short>Clone option: Do not allow a ptrace call on this clone.</short>
 
700
</element>
 
701
 
 
702
<!-- constant Visibility: default -->
 
703
<element name="CLONE_CHILD_SETTID">
 
704
<short>Clone option: Store child thread ID in child memory.</short>
 
705
</element>
 
706
 
 
707
<!-- constant Visibility: default -->
 
708
<element name="CLONE_STOPPED">
 
709
<short>Clone option: Start child in stopped state.</short>
 
710
<descr>
 
711
</descr>
 
712
<seealso>
 
713
</seealso>
 
714
</element>
 
715
 
 
716
<!-- constant Visibility: default -->
 
717
<element name="FUTEX_WAIT">
 
718
<short>Futex option: Wait on futex till wake call arrives.</short>
 
719
</element>
 
720
 
 
721
<!-- constant Visibility: default -->
 
722
<element name="FUTEX_WAKE">
 
723
<short>Futex option: wakes any waiting processes on this futex</short>
 
724
</element>
 
725
 
 
726
<!-- constant Visibility: default -->
 
727
<element name="FUTEX_FD">
 
728
<short>Futex option: Associate file descriptor with futex.</short>
 
729
</element>
 
730
 
 
731
<!-- constant Visibility: default -->
 
732
<element name="FUTEX_REQUEUE">
 
733
<short>Futex option: requeue waiting processes on other futex. </short>
 
734
</element>
 
735
 
 
736
<!-- constant Visibility: default -->
 
737
<element name="FUTEX_CMP_REQUEUE">
 
738
<short>Futex option: requeue waiting processes on other futex, but check it's value first</short>
 
739
</element>
 
740
 
 
741
<!-- constant Visibility: default -->
 
742
<element name="FUTEX_WAKE_OP">
 
743
<short>Futex option: Undocumented</short>
 
744
</element>
 
745
 
 
746
<!-- constant Visibility: default -->
 
747
<element name="FUTEX_LOCK_PI">
 
748
<short>Futex option: Undocumented</short>
 
749
</element>
 
750
 
 
751
<!-- constant Visibility: default -->
 
752
<element name="FUTEX_UNLOCK_PI">
 
753
<short>Futex option: Undocumented</short>
 
754
</element>
 
755
 
 
756
<!-- constant Visibility: default -->
 
757
<element name="FUTEX_TRYLOCK_PI">
 
758
<short>Futex option: Undocumented</short>
 
759
</element>
 
760
 
 
761
<!-- constant Visibility: default -->
 
762
<element name="FUTEX_OP_SET">
 
763
<short>Futex operation: Undocumented</short>
 
764
</element>
 
765
 
 
766
<!-- constant Visibility: default -->
 
767
<element name="FUTEX_OP_ADD">
 
768
<short>Futex operation: Undocumented</short>
 
769
</element>
 
770
 
 
771
<!-- constant Visibility: default -->
 
772
<element name="FUTEX_OP_OR">
 
773
<short>Futex operation: Undocumented</short>
 
774
</element>
 
775
 
 
776
<!-- constant Visibility: default -->
 
777
<element name="FUTEX_OP_ANDN">
 
778
<short>Futex operation: Undocumented</short>
 
779
</element>
 
780
 
 
781
<!-- constant Visibility: default -->
 
782
<element name="FUTEX_OP_XOR">
 
783
<short>Futex operation: Undocumented</short>
 
784
</element>
 
785
 
 
786
<!-- constant Visibility: default -->
 
787
<element name="FUTEX_OP_OPARG_SHIFT">
 
788
<short>Futex operation: Undocumented</short>
 
789
</element>
 
790
 
 
791
<!-- constant Visibility: default -->
 
792
<element name="FUTEX_OP_CMP_EQ">
 
793
<short>Futex operation: Undocumented</short>
 
794
</element>
 
795
 
 
796
<!-- constant Visibility: default -->
 
797
<element name="FUTEX_OP_CMP_NE">
 
798
<short>Futex operation: Undocumented</short>
 
799
</element>
 
800
 
 
801
<!-- constant Visibility: default -->
 
802
<element name="FUTEX_OP_CMP_LT">
 
803
<short>Futex operation: Undocumented</short>
 
804
</element>
 
805
 
 
806
<!-- constant Visibility: default -->
 
807
<element name="FUTEX_OP_CMP_LE">
 
808
<short>Futex operation: Undocumented</short>
 
809
</element>
 
810
 
 
811
<!-- constant Visibility: default -->
 
812
<element name="FUTEX_OP_CMP_GT">
 
813
<short>Futex operation: Undocumented</short>
 
814
</element>
 
815
 
 
816
<!-- constant Visibility: default -->
 
817
<element name="FUTEX_OP_CMP_GE">
 
818
<short>Futex operation: Undocumented</short>
 
819
</element>
 
820
 
 
821
<!-- function Visibility: default -->
 
822
<element name="FUTEX_OP">
 
823
<short>Futex operation:</short>
 
824
<descr>
 
825
<p>
 
826
<var>FUTEX_OP</var> Performs an operation on a futex:
 
827
</p>
 
828
<pre>
 
829
FUTEX_OP := ((op and $F) shl 28) or  
 
830
            ((cmp and $F) shl 24) or 
 
831
            ((oparg and $FFF) shl 12) 
 
832
            or (cmparg and $FFF);
 
833
</pre>
 
834
</descr>
 
835
</element>
 
836
 
 
837
<!-- constant Visibility: default -->
 
838
<element name="MODIFY_LDT_CONTENTS_DATA">
 
839
<short>Modify_ldt option: Undocumented</short>
 
840
</element>
 
841
 
 
842
<!-- constant Visibility: default -->
 
843
<element name="MODIFY_LDT_CONTENTS_STACK">
 
844
<short>Modify_ldt option: Undocumented</short>
 
845
</element>
 
846
 
 
847
<!-- constant Visibility: default -->
 
848
<element name="MODIFY_LDT_CONTENTS_CODE">
 
849
<short>Modify_ldt option: Undocumented</short>
 
850
</element>
 
851
 
 
852
<!-- constant Visibility: default -->
 
853
<element name="UD_SEG_32BIT">
 
854
<short>TLS segment descriptor : Undocumented</short>
 
855
</element>
 
856
 
 
857
<!-- constant Visibility: default -->
 
858
<element name="UD_CONTENTS_DATA">
 
859
<short>TLS segment descriptor: Undocumented</short>
 
860
</element>
 
861
 
 
862
<!-- constant Visibility: default -->
 
863
<element name="UD_CONTENTS_STACK">
 
864
<short>TLS segment descriptor: Undocumented</short>
 
865
</element>
 
866
 
 
867
<!-- constant Visibility: default -->
 
868
<element name="UD_CONTENTS_CODE">
 
869
<short>TLS segment descriptor: Undocumented</short>
 
870
</element>
 
871
 
 
872
<!-- constant Visibility: default -->
 
873
<element name="UD_READ_EXEC_ONLY">
 
874
<short>TLS segment descriptor: Undocumented</short>
 
875
</element>
 
876
 
 
877
<!-- constant Visibility: default -->
 
878
<element name="UD_LIMIT_IN_PAGES">
 
879
<short>TLS segment descriptor: Undocumented</short>
 
880
</element>
 
881
 
 
882
<!-- constant Visibility: default -->
 
883
<element name="UD_SEG_NOT_PRESENT">
 
884
<short>TLS segment descriptor: Undocumented</short>
 
885
</element>
 
886
 
 
887
<!-- constant Visibility: default -->
 
888
<element name="UD_USEABLE">
 
889
<short>TLS segment descriptor: Undocumented</short>
 
890
</element>
 
891
 
 
892
<!-- constant Visibility: default -->
 
893
<element name="UD_LM">
 
894
<short>TLS segment descriptor: Undocumented</short>
 
895
</element>
 
896
 
 
897
<!-- record type Visibility: default -->
 
898
<element name="user_desc">
 
899
<short>TLS segment descriptor</short>
 
900
<descr>
 
901
<var>user_desc</var> is the TLS (Thread Local Storage) segment descriptor
 
902
used in the <var>Clone</var> call. It should not be used, as it contains
 
903
highly kernel-specific data.
 
904
</descr>
 
905
</element>
 
906
 
 
907
<!-- variable Visibility: default -->
 
908
<element name="user_desc.entry_number">
 
909
<short>TLS segment descriptor: Undocumented</short>
 
910
</element>
 
911
 
 
912
<!-- variable Visibility: default -->
 
913
<element name="user_desc.base_addr">
 
914
<short>TLS segment descriptor: Undocumented</short>
 
915
</element>
 
916
 
 
917
<!-- variable Visibility: default -->
 
918
<element name="user_desc.limit">
 
919
<short>TLS segment descriptor: Undocumented</short>
 
920
</element>
 
921
 
 
922
<!-- variable Visibility: default -->
 
923
<element name="user_desc.flags">
 
924
<short>TLS segment descriptor: Undocumented</short>
 
925
</element>
 
926
 
 
927
<!-- alias type Visibility: default -->
 
928
<element name="TUser_Desc">
 
929
<short>Alias for <var>user_desc</var> record</short>
 
930
<descr>
 
931
<var>TUser_Desc</var> is an alias for the <link id="user_desc"/> type.
 
932
</descr>
 
933
</element>
 
934
 
 
935
<!-- pointer type Visibility: default -->
 
936
<element name="PUser_Desc">
 
937
<short>Pointer to <var>User_Desc</var> record</short>
 
938
<descr>
 
939
<var>PUser_Desc</var> is a pointer to the <link id="user_desc"/> type.
 
940
</descr>
 
941
</element>
 
942
 
 
943
 
 
944
</module> <!-- Linux -->
 
945
</package>
 
946
</fpdoc-descriptions>