Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
I386_GET_LDT(2)		    BSD	System Calls Manual	       I386_GET_LDT(2)

NAME
     i386_get_ldt, i386_set_ldt	-- manage i386 per-process Local Descriptor
     Table entries

LIBRARY
     Standard C	Library	(libc, -lc)

SYNOPSIS
     #include <machine/segments.h>
     #include <machine/sysarch.h>

     int
     i386_get_ldt(int start_sel, union descriptor *descs, int num_sels);

     int
     i386_set_ldt(int start_sel, union descriptor *descs, int num_sels);

DESCRIPTION
     The i386_get_ldt()	system call will return	the list of i386 descriptors
     that the process has in its LDT.  The i386_set_ldt() system call will set
     a list of i386 descriptors	for the	current	process	in its LDT.  Both rou-
     tines accept a starting selector number start_sel,	an array of memory
     that will contain the descriptors to be set or returned descs, and	the
     number of entries to set or return	num_sels.

     The argument descs	can be either segment_descriptor or gate_descriptor
     and are defined in	<i386/segments.h>.  These structures are defined by
     the architecture as disjoint bit-fields, so care must be taken in con-
     structing them.

     If	start_sel is LDT_AUTO_ALLOC, num_sels is 1 and the descriptor pointed
     to	by descs is legal, then	i386_set_ldt() will allocate a descriptor and
     return its	selector number.

     If	num_descs is 1,	start_sels is valid, and descs is NULL,	then
     i386_set_ldt() will free that descriptor (making it available to be re-
     allocated again later).

     If	num_descs is 0,	start_sels is 0	and descs is NULL then,	as a special
     case, i386_set_ldt() will free all	descriptors.

RETURN VALUES
     Upon successful completion, i386_get_ldt()	returns	the number of descrip-
     tors currently in the LDT.	 The i386_set_ldt() system call	returns	the
     first selector set.  In the case when a descriptor	is allocated by	the
     kernel, its number	will be	returned.  Otherwise, a	value of -1 is re-
     turned and	the global variable errno is set to indicate the error.

ERRORS
     The i386_get_ldt()	and i386_set_ldt() system calls	will fail if:

     [EINVAL]		An inappropriate value was used	for start_sel or
			num_sels.

     [EACCES]		The caller attempted to	use a descriptor that would
			circumvent protection or cause a failure.

SEE ALSO
     i386 Microprocessor Programmer's Reference	Manual,	Intel

WARNING
     You can really hose your process using this.

BSD			      September	20, 1993			   BSD

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | SEE ALSO | WARNING

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=i386_get_ldt&sektion=2&manpath=FreeBSD+6.0-RELEASE>

home | help