Date: Wed, 7 May 1997 14:47:58 +0930 (CST) From: Michael Smith <msmith@atrad.adelaide.edu.au> To: emulation@freebsd.org Subject: Linux-emul LDT support (implementation question(s)) Message-ID: <199705070517.OAA18353@genesis.atrad.adelaide.edu.au>
next in thread | raw e-mail | index | archive | help
Hokay, following through on the question raised the other day about
emulating the Linux i386_modify_ldt() function, I'm prodding at it
currently and have the odd question or two...
Firstly, the BSD functions i386_get_ldt() and i386_set_ldt() use
copyin/copyout on their parameters. Is this going to be a problem
if the parameters are alreay in the kernel (I expect not, as otherwise
it would be a horrific problem for many other functions).
Secondly, Linux has :
#define MODIFY_LDT_CONTENTS_DATA 0
#define MODIFY_LDT_CONTENTS_STACK 1
#define MODIFY_LDT_CONTENTS_CODE 2
Where we have :
/* memory segment types */
#define SDT_MEMRO 16 /* memory read only */
#define SDT_MEMROA 17 /* memory read only accessed */
#define SDT_MEMRW 18 /* memory read write */
#define SDT_MEMRWA 19 /* memory read write accessed */
#define SDT_MEMROD 20 /* memory read only expand dwn limit */
#define SDT_MEMRODA 21 /* memory read only expand dwn limit accessed */
#define SDT_MEMRWD 22 /* memory read write expand dwn limit */
#define SDT_MEMRWDA 23 /* memory read write expand dwn limit accessed *
/
#define SDT_MEME 24 /* memory execute only */
#define SDT_MEMEA 25 /* memory execute only accessed */
#define SDT_MEMER 26 /* memory execute read */
#define SDT_MEMERA 27 /* memory execute read accessed */
#define SDT_MEMEC 28 /* memory execute only conforming */
#define SDT_MEMEAC 29 /* memory execute only accessed conforming */
#define SDT_MEMERC 30 /* memory execute read conforming */
#define SDT_MEMERAC 31 /* memory execute read accessed conforming */
Govelling in i386/i386/machdep.c suggests that data should be MEMRWA
and code should be MEMERA. How about the stack? Is it the same as
the data segment?
There's also a 'read_exec_only' flag; anyone with the Linux kernel source
care to shed some light on how this is translated to a "real" LDT?
--
]] Mike Smith, Software Engineer msmith@gsoft.com.au [[
]] Genesis Software genesis@gsoft.com.au [[
]] High-speed data acquisition and (GSM mobile) 0411-222-496 [[
]] realtime instrument control. (ph) +61-8-8267-3493 [[
]] Unix hardware collector. "Where are your PEZ?" The Tick [[
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199705070517.OAA18353>
