1
<?xml version="1.0" encoding="ISO8859-1"?>
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
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.
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.
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.
26
<short>Linux-specific operating system calls.</short>
29
The <file>linux</file> unit contains linux specific operating system calls.
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.
38
The X86-specific parts have been moved to the <link id="#rtl.x86">X86</link>
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
48
<!-- record type Visibility: default -->
49
<element name="TSysinfo">
50
<short>Record with system information, used by the <link id="SysInfo"/> call.</short>
53
<!-- variable Visibility: default -->
54
<element name="TSysinfo.uptime">
55
<short>Number of seconds since boot.</short>
58
<!-- variable Visibility: default -->
59
<element name="TSysinfo.loads">
60
<short>1, 5 and 15 minute load averages.</short>
63
<!-- variable Visibility: default -->
64
<element name="TSysinfo.totalram">
65
<short>total amount of main memory.</short>
68
<!-- variable Visibility: default -->
69
<element name="TSysinfo.freeram">
70
<short>amount of free memory.</short>
73
<!-- variable Visibility: default -->
74
<element name="TSysinfo.sharedram">
75
<short>amount of shared memory.</short>
78
<!-- variable Visibility: default -->
79
<element name="TSysinfo.bufferram">
80
<short>amount of memory used by buffers.</short>
83
<!-- variable Visibility: default -->
84
<element name="TSysinfo.totalswap">
85
<short>total amount of swapspace.</short>
88
<!-- variable Visibility: default -->
89
<element name="TSysinfo.freeswap">
90
<short>amount of free swapspace.</short>
93
<!-- variable Visibility: default -->
94
<element name="TSysinfo.procs">
95
<short>number of current processes.</short>
98
<!-- variable Visibility: default -->
99
<element name="TSysinfo.s">
103
<!-- pointer type Visibility: default -->
104
<element name="PSysInfo">
105
<short>Pointer to <link id="TSysInfo"/> record.</short>
108
<!-- function Visibility: default -->
109
<element name="Sysinfo">
110
<short>Return kernel system information</short>
113
<var>SysInfo</var> returns system information in <var>Info</var>. Returned information
114
in <var>Info</var> includes:
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>
132
<link id="#rtl.baseunix.fpUname"/>
134
<example file="linuxex/ex64"/>
137
<!-- constant Visibility: default -->
138
<element name="CSIGNAL">
139
<short><link id="Clone"/> option: Signal mask to be sent at exit</short>
142
<!-- constant Visibility: default -->
143
<element name="CLONE_VM">
144
<short><link id="Clone"/> option: VM shared between processes</short>
147
<!-- constant Visibility: default -->
148
<element name="CLONE_FS">
149
<short><link id="Clone"/> option: fs info shared between processes</short>
152
<!-- constant Visibility: default -->
153
<element name="CLONE_FILES">
154
<short><link id="Clone"/> option: open files shared between processes</short>
157
<!-- constant Visibility: default -->
158
<element name="CLONE_SIGHAND">
159
<short><link id="Clone"/> option: signal handlers shared between processes</short>
162
<!-- constant Visibility: default -->
163
<element name="CLONE_PID">
164
<short><link id="Clone"/> option: PID shared between processes</short>
167
<!-- function type Visibility: default -->
168
<element name="TCloneFunc">
169
<short>Clone function prototype.</short>
172
<!-- function Visibility: default -->
173
<element name="Clone">
174
<short>Clone current process (create new thread)</short>
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.
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
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
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:
203
<dd> Parent and child share the same memory space, including
204
memory (un)mapped with subsequent <var>mmap</var> calls.</dd>
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>
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>
214
<dd> PArent and child have the same process ID.</dd>
217
Clone returns the process ID in the parent process, and -1 if an error
223
On error, -1 is returned to the parent, and no child is created.
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>
231
<link id="#rtl.baseunix.FpFork"/>
233
<example file="linuxex/ex71"/>
236
<!-- unresolved type reference Visibility: default -->
237
<element name="ctypes">
238
<short>Support for some basic C types</short>
241
<!-- constant Visibility: default -->
242
<element name="EPOLLIN">
243
<short>Poll input file descriptor ready event</short>
246
<!-- constant Visibility: default -->
247
<element name="EPOLLOUT">
248
<short>Poll output file descriptor ready event</short>
251
<!-- constant Visibility: default -->
252
<element name="EPOLLPRI">
253
<short>Priority data available on input file descriptor</short>
256
<!-- constant Visibility: default -->
257
<element name="EPOLLERR">
258
<short>Poll error condition</short>
261
<!-- constant Visibility: default -->
262
<element name="EPOLLHUP">
263
<short>Poll hung up</short>
266
<!-- constant Visibility: default -->
267
<element name="EPOLLET">
268
<short>Undocumented</short>
271
<!-- constant Visibility: default -->
272
<element name="EPOLL_CTL_ADD">
273
<short>Add filedescriptor to list of events</short>
276
<!-- constant Visibility: default -->
277
<element name="EPOLL_CTL_MOD">
278
<short>Modify event for filedescriptor</short>
281
<!-- constant Visibility: default -->
282
<element name="EPOLL_CTL_DEL">
283
<short>Delete event for filedescriptor</short>
286
<!-- constant Visibility: default -->
287
<element name="GIO_FONT">
288
<short>IOCTL: Get font in expanded form.</short>
291
<!-- constant Visibility: default -->
292
<element name="PIO_FONT">
293
<short>IOCTL: Use font in expanded form.</short>
296
<!-- constant Visibility: default -->
297
<element name="GIO_FONTX">
298
<short>IOCTL: Get font in <var>consolefontdesc</var> record.</short>
301
<!-- constant Visibility: default -->
302
<element name="PIO_FONTX">
303
<short>IOCTL: Set font in <var>consolefontdesc</var> record.</short>
306
<!-- constant Visibility: default -->
307
<element name="PIO_FONTRESET">
308
<short>IOCTL: Reset to default font</short>
311
<!-- constant Visibility: default -->
312
<element name="GIO_CMAP">
313
<short>IOCTL: Get colour palette on VGA+</short>
316
<!-- constant Visibility: default -->
317
<element name="PIO_CMAP">
318
<short>IOCTL: Set colour palette on VGA+</short>
321
<!-- constant Visibility: default -->
322
<element name="KIOCSOUND">
323
<short>IOCTL: start/stop sound generation (0 for off)</short>
326
<!-- constant Visibility: default -->
327
<element name="KDMKTONE">
328
<short>IOCTL: generate tone</short>
331
<!-- constant Visibility: default -->
332
<element name="KDGETLED">
333
<short>IOCTL: return current led state</short>
336
<!-- constant Visibility: default -->
337
<element name="KDSETLED">
338
<short>IOCTL: set led state</short>
341
<!-- constant Visibility: default -->
342
<element name="KDGKBTYPE">
343
<short>IOCTL: get keyboard type</short>
346
<!-- constant Visibility: default -->
347
<element name="KDADDIO">
348
<short>IOCTL: add i/o port as valid</short>
351
<!-- constant Visibility: default -->
352
<element name="KDDELIO">
353
<short>IOCTL: delete i/o port as valid</short>
356
<!-- constant Visibility: default -->
357
<element name="KDENABIO">
358
<short>IOCTL: enable i/o to video board</short>
361
<!-- constant Visibility: default -->
362
<element name="KDDISABIO">
363
<short>IOCTL: disable i/o to video board</short>
366
<!-- constant Visibility: default -->
367
<element name="KDSETMODE">
368
<short>IOCTL: set text/graphics mode</short>
371
<!-- constant Visibility: default -->
372
<element name="KDGETMODE">
373
<short>IOCTL: get current mode</short>
376
<!-- constant Visibility: default -->
377
<element name="KDMAPDISP">
378
<short>IOCTL: map display into address space</short>
381
<!-- constant Visibility: default -->
382
<element name="KDUNMAPDISP">
383
<short>IOCTL: unmap display from address space</short>
386
<!-- constant Visibility: default -->
387
<element name="GIO_SCRNMAP">
388
<short>IOCTL: get screen mapping from kernel</short>
391
<!-- constant Visibility: default -->
392
<element name="PIO_SCRNMAP">
393
<short>IOCTL: put screen mapping table in kernel</short>
396
<!-- constant Visibility: default -->
397
<element name="GIO_UNISCRNMAP">
398
<short>IOCTL: get full Unicode screen mapping</short>
401
<!-- constant Visibility: default -->
402
<element name="PIO_UNISCRNMAP">
403
<short>IOCTL: set full Unicode screen mapping</short>
406
<!-- constant Visibility: default -->
407
<element name="GIO_UNIMAP">
408
<short>IOCTL: get unicode-to-font mapping from kernel</short>
411
<!-- constant Visibility: default -->
412
<element name="PIO_UNIMAP">
413
<short>IOCTL: put unicode-to-font mapping in kernel</short>
416
<!-- constant Visibility: default -->
417
<element name="PIO_UNIMAPCLR">
418
<short>IOCTL: clear table, possibly advise hash algorithm</short>
421
<!-- constant Visibility: default -->
422
<element name="KDGKBDIACR">
423
<short>IOCTL: read kernel accent table</short>
426
<!-- constant Visibility: default -->
427
<element name="KDSKBDIACR">
428
<short>IOCTL: write kernel accent table</short>
431
<!-- constant Visibility: default -->
432
<element name="KDGETKEYCODE">
433
<short>IOCTL: read kernel keycode table entry</short>
436
<!-- constant Visibility: default -->
437
<element name="KDSETKEYCODE">
438
<short>IOCTL: write kernel keycode table entry</short>
441
<!-- constant Visibility: default -->
442
<element name="KDSIGACCEPT">
443
<short>IOCTL: accept kbd generated signals</short>
446
<!-- constant Visibility: default -->
447
<element name="KDFONTOP">
448
<short>IOCTL: font operations</short>
451
<!-- constant Visibility: default -->
452
<element name="KB_84">
453
<short>IOCTL: Keyboard types: 84 keys</short>
456
<!-- constant Visibility: default -->
457
<element name="KB_101">
458
<short>IOCTL: Keyboard types: 101 keys</short>
461
<!-- constant Visibility: default -->
462
<element name="KB_OTHER">
463
<short>IOCTL: Keyboard types: other type</short>
466
<!-- constant Visibility: default -->
467
<element name="LED_SCR">
468
<short>IOCTL: LED_SCR : scroll lock led</short>
471
<!-- constant Visibility: default -->
472
<element name="LED_NUM">
473
<short>IOCTL: LED_SCR : Num lock led</short>
476
<!-- constant Visibility: default -->
477
<element name="LED_CAP">
478
<short>IOCTL: LED_CAP : caps lock led</short>
481
<!-- constant Visibility: default -->
482
<element name="KD_TEXT">
483
<short>IOCTL: Tty modes: Text mode</short>
486
<!-- constant Visibility: default -->
487
<element name="KD_GRAPHICS">
488
<short>IOCTL: Tty modes: graphics mode </short>
491
<!-- constant Visibility: default -->
492
<element name="KD_TEXT0">
493
<short>IOCTL: Tty modes: Text mode (obsolete)</short>
496
<!-- constant Visibility: default -->
497
<element name="KD_TEXT1">
498
<short>IOCTL: Tty modes: Text mode (obsolete)</short>
501
<!-- record type Visibility: default -->
502
<element name="EPoll_Data">
503
<short>Epoll data call structure</short>
505
Data structure used in EPOLL IOCTL call.
509
<!-- variable Visibility: default -->
510
<element name="EPoll_Data.ptr">
511
<short>Pointer to data</short>
514
<!-- variable Visibility: default -->
515
<element name="EPoll_Data.fd">
516
<short>File descriptor</short>
519
<!-- variable Visibility: default -->
520
<element name="EPoll_Data.u32">
521
<short>Unsigned 32-bit integer</short>
524
<!-- variable Visibility: default -->
525
<element name="EPoll_Data.u64">
526
<short>Unsigned 64-bit integer</short>
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>
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>
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>
544
<!-- variable Visibility: default -->
545
<element name="EPoll_Event.Events">
546
<short>Events to monitor</short>
549
<!-- variable Visibility: default -->
550
<element name="EPoll_Event.Data">
551
<short>User data </short>
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>
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>
564
<!-- function Visibility: default -->
565
<element name="epoll_create">
566
<short>Create new epoll file descriptor</short>
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.
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.
580
On error, -1 is returned, and <link id="#rtl.baseunix.errno">errno</link> is set.
583
<link id="epoll_ctl"/>
584
<link id="epoll_wait"/>
585
<link id="#rtl.baseunix.fpClose">fpClose</link>
589
<!-- function Visibility: default -->
590
<element name="epoll_ctl">
591
<short>Modify an epoll file descriptor</short>
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>.
599
<var>op</var> can be one of the following values:
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>
607
The <var>events</var> field in <var>event_data</var> is a bitmask of one or more of the following values:</p>
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>
619
On error -1 is returned, and errno is set accordingly.
622
<link id="epoll_create"/>
623
<link id="epoll_wait"/>
624
<link id="#rtl.baseunix.fpClose">fpClose</link>
628
<element name="epoll_wait">
629
<short>Wait for an event on an epoll file descriptor.</short>
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.
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>
638
On error -1 is returned, and errno is set accordingly.
641
<link id="epoll_create"/>
642
<link id="epoll_ctl"/>
643
<link id="#rtl.baseunix.fpClose">fpClose</link>
647
<!-- constant Visibility: default -->
648
<element name="CLONE_PTRACE">
649
<short>Clone options: if parent is traced, trace child also</short>
652
<!-- constant Visibility: default -->
653
<element name="CLONE_VFORK">
654
<short>Clone options: suspend parent till child execs</short>
657
<!-- constant Visibility: default -->
658
<element name="CLONE_PARENT">
659
<short>Clone options: Set child parent to parent of calling process.</short>
662
<!-- constant Visibility: default -->
663
<element name="CLONE_THREAD">
664
<short>Clone options: Set child in thread group of calling process. </short>
667
<!-- constant Visibility: default -->
668
<element name="CLONE_NEWNS">
669
<short>Clone options: Start child in new (filesystem) namespace.</short>
672
<!-- constant Visibility: default -->
673
<element name="CLONE_SYSVSEM">
674
<short>Clone option: Caller and child share the same semaphore undo values</short>
677
<!-- constant Visibility: default -->
678
<element name="CLONE_SETTLS">
679
<short>Clone option: The newtls parameter is the TLS descriptor of the child</short>
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>
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>
692
<!-- constant Visibility: default -->
693
<element name="CLONE_DETACHED">
694
<short>Clone option: Start clone detached.</short>
697
<!-- constant Visibility: default -->
698
<element name="CLONE_UNTRACED">
699
<short>Clone option: Do not allow a ptrace call on this clone.</short>
702
<!-- constant Visibility: default -->
703
<element name="CLONE_CHILD_SETTID">
704
<short>Clone option: Store child thread ID in child memory.</short>
707
<!-- constant Visibility: default -->
708
<element name="CLONE_STOPPED">
709
<short>Clone option: Start child in stopped state.</short>
716
<!-- constant Visibility: default -->
717
<element name="FUTEX_WAIT">
718
<short>Futex option: Wait on futex till wake call arrives.</short>
721
<!-- constant Visibility: default -->
722
<element name="FUTEX_WAKE">
723
<short>Futex option: wakes any waiting processes on this futex</short>
726
<!-- constant Visibility: default -->
727
<element name="FUTEX_FD">
728
<short>Futex option: Associate file descriptor with futex.</short>
731
<!-- constant Visibility: default -->
732
<element name="FUTEX_REQUEUE">
733
<short>Futex option: requeue waiting processes on other futex. </short>
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>
741
<!-- constant Visibility: default -->
742
<element name="FUTEX_WAKE_OP">
743
<short>Futex option: Undocumented</short>
746
<!-- constant Visibility: default -->
747
<element name="FUTEX_LOCK_PI">
748
<short>Futex option: Undocumented</short>
751
<!-- constant Visibility: default -->
752
<element name="FUTEX_UNLOCK_PI">
753
<short>Futex option: Undocumented</short>
756
<!-- constant Visibility: default -->
757
<element name="FUTEX_TRYLOCK_PI">
758
<short>Futex option: Undocumented</short>
761
<!-- constant Visibility: default -->
762
<element name="FUTEX_OP_SET">
763
<short>Futex operation: Undocumented</short>
766
<!-- constant Visibility: default -->
767
<element name="FUTEX_OP_ADD">
768
<short>Futex operation: Undocumented</short>
771
<!-- constant Visibility: default -->
772
<element name="FUTEX_OP_OR">
773
<short>Futex operation: Undocumented</short>
776
<!-- constant Visibility: default -->
777
<element name="FUTEX_OP_ANDN">
778
<short>Futex operation: Undocumented</short>
781
<!-- constant Visibility: default -->
782
<element name="FUTEX_OP_XOR">
783
<short>Futex operation: Undocumented</short>
786
<!-- constant Visibility: default -->
787
<element name="FUTEX_OP_OPARG_SHIFT">
788
<short>Futex operation: Undocumented</short>
791
<!-- constant Visibility: default -->
792
<element name="FUTEX_OP_CMP_EQ">
793
<short>Futex operation: Undocumented</short>
796
<!-- constant Visibility: default -->
797
<element name="FUTEX_OP_CMP_NE">
798
<short>Futex operation: Undocumented</short>
801
<!-- constant Visibility: default -->
802
<element name="FUTEX_OP_CMP_LT">
803
<short>Futex operation: Undocumented</short>
806
<!-- constant Visibility: default -->
807
<element name="FUTEX_OP_CMP_LE">
808
<short>Futex operation: Undocumented</short>
811
<!-- constant Visibility: default -->
812
<element name="FUTEX_OP_CMP_GT">
813
<short>Futex operation: Undocumented</short>
816
<!-- constant Visibility: default -->
817
<element name="FUTEX_OP_CMP_GE">
818
<short>Futex operation: Undocumented</short>
821
<!-- function Visibility: default -->
822
<element name="FUTEX_OP">
823
<short>Futex operation:</short>
826
<var>FUTEX_OP</var> Performs an operation on a futex:
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);
837
<!-- constant Visibility: default -->
838
<element name="MODIFY_LDT_CONTENTS_DATA">
839
<short>Modify_ldt option: Undocumented</short>
842
<!-- constant Visibility: default -->
843
<element name="MODIFY_LDT_CONTENTS_STACK">
844
<short>Modify_ldt option: Undocumented</short>
847
<!-- constant Visibility: default -->
848
<element name="MODIFY_LDT_CONTENTS_CODE">
849
<short>Modify_ldt option: Undocumented</short>
852
<!-- constant Visibility: default -->
853
<element name="UD_SEG_32BIT">
854
<short>TLS segment descriptor : Undocumented</short>
857
<!-- constant Visibility: default -->
858
<element name="UD_CONTENTS_DATA">
859
<short>TLS segment descriptor: Undocumented</short>
862
<!-- constant Visibility: default -->
863
<element name="UD_CONTENTS_STACK">
864
<short>TLS segment descriptor: Undocumented</short>
867
<!-- constant Visibility: default -->
868
<element name="UD_CONTENTS_CODE">
869
<short>TLS segment descriptor: Undocumented</short>
872
<!-- constant Visibility: default -->
873
<element name="UD_READ_EXEC_ONLY">
874
<short>TLS segment descriptor: Undocumented</short>
877
<!-- constant Visibility: default -->
878
<element name="UD_LIMIT_IN_PAGES">
879
<short>TLS segment descriptor: Undocumented</short>
882
<!-- constant Visibility: default -->
883
<element name="UD_SEG_NOT_PRESENT">
884
<short>TLS segment descriptor: Undocumented</short>
887
<!-- constant Visibility: default -->
888
<element name="UD_USEABLE">
889
<short>TLS segment descriptor: Undocumented</short>
892
<!-- constant Visibility: default -->
893
<element name="UD_LM">
894
<short>TLS segment descriptor: Undocumented</short>
897
<!-- record type Visibility: default -->
898
<element name="user_desc">
899
<short>TLS segment descriptor</short>
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.
907
<!-- variable Visibility: default -->
908
<element name="user_desc.entry_number">
909
<short>TLS segment descriptor: Undocumented</short>
912
<!-- variable Visibility: default -->
913
<element name="user_desc.base_addr">
914
<short>TLS segment descriptor: Undocumented</short>
917
<!-- variable Visibility: default -->
918
<element name="user_desc.limit">
919
<short>TLS segment descriptor: Undocumented</short>
922
<!-- variable Visibility: default -->
923
<element name="user_desc.flags">
924
<short>TLS segment descriptor: Undocumented</short>
927
<!-- alias type Visibility: default -->
928
<element name="TUser_Desc">
929
<short>Alias for <var>user_desc</var> record</short>
931
<var>TUser_Desc</var> is an alias for the <link id="user_desc"/> type.
935
<!-- pointer type Visibility: default -->
936
<element name="PUser_Desc">
937
<short>Pointer to <var>User_Desc</var> record</short>
939
<var>PUser_Desc</var> is a pointer to the <link id="user_desc"/> type.
944
</module> <!-- Linux -->
946
</fpdoc-descriptions>