Date: Thu, 1 Mar 2007 22:39:06 GMT From: Jung-uk Kim <jkim@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 115222 for review Message-ID: <200703012239.l21Md69H014494@repoman.freebsd.org>
index | next in thread | raw e-mail
http://perforce.freebsd.org/chv.cgi?CH=115222 Change 115222 by jkim@jkim_hammer on 2007/03/01 22:38:25 Prefix Linuxulator macros with LINUX_ to prevent future collision. Affected files ... .. //depot/projects/linuxolator/src/sys/amd64/linux32/linux.h#23 edit .. //depot/projects/linuxolator/src/sys/amd64/linux32/linux32_machdep.c#45 edit .. //depot/projects/linuxolator/src/sys/compat/linux/linux_emul.c#40 edit .. //depot/projects/linuxolator/src/sys/i386/linux/linux.h#19 edit .. //depot/projects/linuxolator/src/sys/i386/linux/linux_machdep.c#36 edit Differences ... ==== //depot/projects/linuxolator/src/sys/amd64/linux32/linux.h#23 (text+ko) ==== @@ -30,8 +30,8 @@ * $FreeBSD: src/sys/amd64/linux32/linux.h,v 1.13 2007/02/24 16:49:24 netchild Exp $ */ -#ifndef _AMD64_LINUX_LINUX_H_ -#define _AMD64_LINUX_LINUX_H_ +#ifndef _AMD64_LINUX_H_ +#define _AMD64_LINUX_H_ #include <amd64/linux32/linux32_syscall.h> @@ -782,30 +782,30 @@ * Macros which does the same thing as those in Linux include/asm-um/ldt-i386.h. * These convert Linux user space descriptor to machine one. */ -#define LDT_entry_a(info) \ +#define LINUX_LDT_entry_a(info) \ ((((info)->base_addr & LINUX_LOWERWORD) << 16) | \ ((info)->limit & LINUX_LOWERWORD)) -#define ENTRY_B_READ_EXEC_ONLY 9 -#define ENTRY_B_CONTENTS 10 -#define ENTRY_B_SEG_NOT_PRESENT 15 -#define ENTRY_B_BASE_ADDR 16 -#define ENTRY_B_USEABLE 20 -#define ENTRY_B_SEG32BIT 22 -#define ENTRY_B_LIMIT 23 +#define LINUX_ENTRY_B_READ_EXEC_ONLY 9 +#define LINUX_ENTRY_B_CONTENTS 10 +#define LINUX_ENTRY_B_SEG_NOT_PRESENT 15 +#define LINUX_ENTRY_B_BASE_ADDR 16 +#define LINUX_ENTRY_B_USEABLE 20 +#define LINUX_ENTRY_B_SEG32BIT 22 +#define LINUX_ENTRY_B_LIMIT 23 -#define LDT_entry_b(info) \ - (((info)->base_addr & 0xff000000) | \ - ((info)->limit & 0xf0000) | \ - ((info)->contents << ENTRY_B_CONTENTS) | \ - (((info)->seg_not_present == 0) << ENTRY_B_SEG_NOT_PRESENT) | \ - (((info)->base_addr & 0x00ff0000) >> ENTRY_B_BASE_ADDR) | \ - (((info)->read_exec_only == 0) << ENTRY_B_READ_EXEC_ONLY) | \ - ((info)->seg_32bit << ENTRY_B_SEG32BIT) | \ - ((info)->useable << ENTRY_B_USEABLE) | \ - ((info)->limit_in_pages << ENTRY_B_LIMIT) | 0x7000) +#define LINUX_LDT_entry_b(info) \ + (((info)->base_addr & 0xff000000) | \ + ((info)->limit & 0xf0000) | \ + ((info)->contents << LINUX_ENTRY_B_CONTENTS) | \ + (((info)->seg_not_present == 0) << LINUX_ENTRY_B_SEG_NOT_PRESENT) | \ + (((info)->base_addr & 0x00ff0000) >> LINUX_ENTRY_B_BASE_ADDR) | \ + (((info)->read_exec_only == 0) << LINUX_ENTRY_B_READ_EXEC_ONLY) | \ + ((info)->seg_32bit << LINUX_ENTRY_B_SEG32BIT) | \ + ((info)->useable << LINUX_ENTRY_B_USEABLE) | \ + ((info)->limit_in_pages << LINUX_ENTRY_B_LIMIT) | 0x7000) -#define LDT_empty(info) \ +#define LINUX_LDT_empty(info) \ ((info)->base_addr == 0 && \ (info)->limit == 0 && \ (info)->contents == 0 && \ @@ -819,21 +819,27 @@ * Macros for converting segments. * They do the same as those in arch/i386/kernel/process.c in Linux. */ -#define GET_BASE(desc) \ +#define LINUX_GET_BASE(desc) \ ((((desc)->a >> 16) & LINUX_LOWERWORD) | \ (((desc)->b << 16) & 0x00ff0000) | \ ((desc)->b & 0xff000000)) -#define GET_LIMIT(desc) \ +#define LINUX_GET_LIMIT(desc) \ (((desc)->a & LINUX_LOWERWORD) | \ ((desc)->b & 0xf0000)) -#define GET_32BIT(desc) (((desc)->b >> ENTRY_B_SEG32BIT) & 1) -#define GET_CONTENTS(desc) (((desc)->b >> ENTRY_B_CONTENTS) & 3) -#define GET_WRITABLE(desc) (((desc)->b >> ENTRY_B_READ_EXEC_ONLY) & 1) -#define GET_LIMIT_PAGES(desc) (((desc)->b >> ENTRY_B_LIMIT) & 1) -#define GET_PRESENT(desc) (((desc)->b >> ENTRY_B_SEG_NOT_PRESENT) & 1) -#define GET_USEABLE(desc) (((desc)->b >> ENTRY_B_USEABLE) & 1) +#define LINUX_GET_32BIT(desc) \ + (((desc)->b >> LINUX_ENTRY_B_SEG32BIT) & 1) +#define LINUX_GET_CONTENTS(desc) \ + (((desc)->b >> LINUX_ENTRY_B_CONTENTS) & 3) +#define LINUX_GET_WRITABLE(desc) \ + (((desc)->b >> LINUX_ENTRY_B_READ_EXEC_ONLY) & 1) +#define LINUX_GET_LIMIT_PAGES(desc) \ + (((desc)->b >> LINUX_ENTRY_B_LIMIT) & 1) +#define LINUX_GET_PRESENT(desc) \ + (((desc)->b >> LINUX_ENTRY_B_SEG_NOT_PRESENT) & 1) +#define LINUX_GET_USEABLE(desc) \ + (((desc)->b >> LINUX_ENTRY_B_USEABLE) & 1) #define LINUX_CLOCK_REALTIME 0 #define LINUX_CLOCK_MONOTONIC 1 @@ -845,22 +851,23 @@ typedef int l_timer_t; typedef int l_mqd_t; -#define CLONE_VM 0x00000100 -#define CLONE_FS 0x00000200 -#define CLONE_FILES 0x00000400 -#define CLONE_SIGHAND 0x00000800 -#define CLONE_PID 0x00001000 /* No longer exist in Linux */ -#define CLONE_VFORK 0x00004000 -#define CLONE_PARENT 0x00008000 -#define CLONE_THREAD 0x00010000 -#define CLONE_SETTLS 0x00080000 -#define CLONE_PARENT_SETTID 0x00100000 -#define CLONE_CHILD_CLEARTID 0x00200000 -#define CLONE_CHILD_SETTID 0x01000000 +#define LINUX_CLONE_VM 0x00000100 +#define LINUX_CLONE_FS 0x00000200 +#define LINUX_CLONE_FILES 0x00000400 +#define LINUX_CLONE_SIGHAND 0x00000800 +#define LINUX_CLONE_PID 0x00001000 /* No longer exist in Linux */ +#define LINUX_CLONE_VFORK 0x00004000 +#define LINUX_CLONE_PARENT 0x00008000 +#define LINUX_CLONE_THREAD 0x00010000 +#define LINUX_CLONE_SETTLS 0x00080000 +#define LINUX_CLONE_PARENT_SETTID 0x00100000 +#define LINUX_CLONE_CHILD_CLEARTID 0x00200000 +#define LINUX_CLONE_CHILD_SETTID 0x01000000 -#define THREADING_FLAGS \ - (CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_THREAD) +#define LINUX_THREADING_FLAGS \ + (LINUX_CLONE_VM | LINUX_CLONE_FS | LINUX_CLONE_FILES | \ + LINUX_CLONE_SIGHAND | LINUX_CLONE_THREAD) #include <compat/linux/linux_aio.h> -#endif /* !_AMD64_LINUX_LINUX_H_ */ +#endif /* !_AMD64_LINUX_H_ */ ==== //depot/projects/linuxolator/src/sys/amd64/linux32/linux32_machdep.c#45 (text+ko) ==== @@ -565,9 +565,9 @@ if (exit_signal <= LINUX_SIGTBLSZ) exit_signal = linux_to_bsd_signal[_SIG_IDX(exit_signal)]; - if (args->flags & CLONE_VM) + if (args->flags & LINUX_CLONE_VM) ff |= RFMEM; - if (args->flags & CLONE_SIGHAND) + if (args->flags & LINUX_CLONE_SIGHAND) ff |= RFSIGSHARE; /* * XXX: In Linux, sharing of fs info (chroot/cwd/umask) @@ -575,7 +575,7 @@ * structure but in reality it does not make any problems * because both of these flags are set at once usually. */ - if (!(args->flags & (CLONE_FILES | CLONE_FS))) + if (!(args->flags & (LINUX_CLONE_FILES | LINUX_CLONE_FS))) ff |= RFFDG; /* @@ -591,10 +591,10 @@ * that special treatment is necessary for signal delivery * between those processes and fd locking. */ - if ((args->flags & 0xffffff00) == THREADING_FLAGS) + if ((args->flags & 0xffffff00) == LINUX_THREADING_FLAGS) ff |= RFTHREAD; - if (args->flags & CLONE_PARENT_SETTID) + if (args->flags & LINUX_CLONE_PARENT_SETTID) if (args->parent_tidptr == NULL) return (EINVAL); @@ -602,7 +602,7 @@ if (error) return (error); - if (args->flags & (CLONE_PARENT|CLONE_THREAD)) { + if (args->flags & (LINUX_CLONE_PARENT|LINUX_CLONE_THREAD)) { sx_xlock(&proctree_lock); PROC_LOCK(p2); proc_reparent(p2, td->td_proc->p_pptr); @@ -617,7 +617,7 @@ KASSERT(em != NULL, ("clone: emuldata not found.\n")); /* and adjust it */ - if (args->flags & CLONE_THREAD) { + if (args->flags & LINUX_CLONE_THREAD) { #ifdef notyet PROC_LOCK(p2); p2->p_pgrp = td->td_proc->p_pgrp; @@ -626,19 +626,19 @@ exit_signal = 0; } - if (args->flags & CLONE_CHILD_SETTID) + if (args->flags & LINUX_CLONE_CHILD_SETTID) em->child_set_tid = args->child_tidptr; else em->child_set_tid = NULL; - if (args->flags & CLONE_CHILD_CLEARTID) + if (args->flags & LINUX_CLONE_CHILD_CLEARTID) em->child_clear_tid = args->child_tidptr; else em->child_clear_tid = NULL; EMUL_UNLOCK(&emul_lock); - if (args->flags & CLONE_PARENT_SETTID) { + if (args->flags & LINUX_CLONE_PARENT_SETTID) { error = copyout(&p2->p_pid, args->parent_tidptr, sizeof(p2->p_pid)); if (error) @@ -657,7 +657,7 @@ if (args->stack) td2->td_frame->tf_rsp = PTROUT(args->stack); - if (args->flags & CLONE_SETTLS) { + if (args->flags & LINUX_CLONE_SETTLS) { struct user_segment_descriptor sd; struct l_user_desc info; int a[2]; @@ -674,8 +674,8 @@ if (error) printf(LMSG("copyout failed!")); - a[0] = LDT_entry_a(&info); - a[1] = LDT_entry_b(&info); + a[0] = LINUX_LDT_entry_a(&info); + a[1] = LINUX_LDT_entry_b(&info); memcpy(&sd, &a, sizeof(a)); #ifdef DEBUG @@ -703,7 +703,7 @@ "stack %p sig = %d"), (int)p2->p_pid, args->stack, exit_signal); #endif - if (args->flags & CLONE_VFORK) { + if (args->flags & LINUX_CLONE_VFORK) { PROC_LOCK(p2); p2->p_flag |= P_PPWAIT; PROC_UNLOCK(p2); @@ -720,7 +720,7 @@ td->td_retval[0] = p2->p_pid; td->td_retval[1] = 0; - if (args->flags & CLONE_VFORK) { + if (args->flags & LINUX_CLONE_VFORK) { /* wait for the children to exit, ie. emulate vfork */ PROC_LOCK(p2); while (p2->p_flag & P_PPWAIT) @@ -1291,12 +1291,12 @@ if (error) return (error); - if (LDT_empty(&info)) { + if (LINUX_LDT_empty(&info)) { a[0] = 0; a[1] = 0; } else { - a[0] = LDT_entry_a(&info); - a[1] = LDT_entry_b(&info); + a[0] = LINUX_LDT_entry_a(&info); + a[1] = LINUX_LDT_entry_b(&info); } memcpy(&sd, &a, sizeof(a)); ==== //depot/projects/linuxolator/src/sys/compat/linux/linux_emul.c#40 (text+ko) ==== @@ -86,7 +86,7 @@ em = malloc(sizeof *em, M_LINUX, M_WAITOK | M_ZERO); em->pid = child; em->pdeath_signal = 0; - if (flags & CLONE_THREAD) { + if (flags & LINUX_CLONE_THREAD) { /* handled later in the code */ } else { struct linux_emuldata_shared *s; @@ -113,7 +113,7 @@ * proc */ if (child != 0) { - if (flags & CLONE_THREAD) { + if (flags & LINUX_CLONE_THREAD) { /* lookup the parent */ /* * we dont have to lock the p_em because ==== //depot/projects/linuxolator/src/sys/i386/linux/linux.h#19 (text+ko) ==== @@ -28,8 +28,8 @@ * $FreeBSD: src/sys/i386/linux/linux.h,v 1.75 2007/02/24 16:49:24 netchild Exp $ */ -#ifndef _I386_LINUX_LINUX_H_ -#define _I386_LINUX_LINUX_H_ +#ifndef _I386_LINUX_H_ +#define _I386_LINUX_H_ #include <sys/signal.h> /* for sigval union */ @@ -747,30 +747,30 @@ * Macros which does the same thing as those in Linux include/asm-um/ldt-i386.h. * These convert Linux user space descriptor to machine one. */ -#define LDT_entry_a(info) \ +#define LINUX_LDT_entry_a(info) \ ((((info)->base_addr & LINUX_LOWERWORD) << 16) | \ ((info)->limit & LINUX_LOWERWORD)) -#define ENTRY_B_READ_EXEC_ONLY 9 -#define ENTRY_B_CONTENTS 10 -#define ENTRY_B_SEG_NOT_PRESENT 15 -#define ENTRY_B_BASE_ADDR 16 -#define ENTRY_B_USEABLE 20 -#define ENTRY_B_SEG32BIT 22 -#define ENTRY_B_LIMIT 23 +#define LINUX_ENTRY_B_READ_EXEC_ONLY 9 +#define LINUX_ENTRY_B_CONTENTS 10 +#define LINUX_ENTRY_B_SEG_NOT_PRESENT 15 +#define LINUX_ENTRY_B_BASE_ADDR 16 +#define LINUX_ENTRY_B_USEABLE 20 +#define LINUX_ENTRY_B_SEG32BIT 22 +#define LINUX_ENTRY_B_LIMIT 23 -#define LDT_entry_b(info) \ - (((info)->base_addr & 0xff000000) | \ - ((info)->limit & 0xf0000) | \ - ((info)->contents << ENTRY_B_CONTENTS) | \ - (((info)->seg_not_present == 0) << ENTRY_B_SEG_NOT_PRESENT) | \ - (((info)->base_addr & 0x00ff0000) >> ENTRY_B_BASE_ADDR) | \ - (((info)->read_exec_only == 0) << ENTRY_B_READ_EXEC_ONLY) | \ - ((info)->seg_32bit << ENTRY_B_SEG32BIT) | \ - ((info)->useable << ENTRY_B_USEABLE) | \ - ((info)->limit_in_pages << ENTRY_B_LIMIT) | 0x7000) +#define LINUX_LDT_entry_b(info) \ + (((info)->base_addr & 0xff000000) | \ + ((info)->limit & 0xf0000) | \ + ((info)->contents << LINUX_ENTRY_B_CONTENTS) | \ + (((info)->seg_not_present == 0) << LINUX_ENTRY_B_SEG_NOT_PRESENT) | \ + (((info)->base_addr & 0x00ff0000) >> LINUX_ENTRY_B_BASE_ADDR) | \ + (((info)->read_exec_only == 0) << LINUX_ENTRY_B_READ_EXEC_ONLY) | \ + ((info)->seg_32bit << LINUX_ENTRY_B_SEG32BIT) | \ + ((info)->useable << LINUX_ENTRY_B_USEABLE) | \ + ((info)->limit_in_pages << LINUX_ENTRY_B_LIMIT) | 0x7000) -#define LDT_empty(info) \ +#define LINUX_LDT_empty(info) \ ((info)->base_addr == 0 && \ (info)->limit == 0 && \ (info)->contents == 0 && \ @@ -784,21 +784,27 @@ * Macros for converting segments. * They do the same as those in arch/i386/kernel/process.c in Linux. */ -#define GET_BASE(desc) \ +#define LINUX_GET_BASE(desc) \ ((((desc)->a >> 16) & LINUX_LOWERWORD) | \ (((desc)->b << 16) & 0x00ff0000) | \ ((desc)->b & 0xff000000)) -#define GET_LIMIT(desc) \ +#define LINUX_GET_LIMIT(desc) \ (((desc)->a & LINUX_LOWERWORD) | \ ((desc)->b & 0xf0000)) -#define GET_32BIT(desc) (((desc)->b >> ENTRY_B_SEG32BIT) & 1) -#define GET_CONTENTS(desc) (((desc)->b >> ENTRY_B_CONTENTS) & 3) -#define GET_WRITABLE(desc) (((desc)->b >> ENTRY_B_READ_EXEC_ONLY) & 1) -#define GET_LIMIT_PAGES(desc) (((desc)->b >> ENTRY_B_LIMIT) & 1) -#define GET_PRESENT(desc) (((desc)->b >> ENTRY_B_SEG_NOT_PRESENT) & 1) -#define GET_USEABLE(desc) (((desc)->b >> ENTRY_B_USEABLE) & 1) +#define LINUX_GET_32BIT(desc) \ + (((desc)->b >> LINUX_ENTRY_B_SEG32BIT) & 1) +#define LINUX_GET_CONTENTS(desc) \ + (((desc)->b >> LINUX_ENTRY_B_CONTENTS) & 3) +#define LINUX_GET_WRITABLE(desc) \ + (((desc)->b >> LINUX_ENTRY_B_READ_EXEC_ONLY) & 1) +#define LINUX_GET_LIMIT_PAGES(desc) \ + (((desc)->b >> LINUX_ENTRY_B_LIMIT) & 1) +#define LINUX_GET_PRESENT(desc) \ + (((desc)->b >> LINUX_ENTRY_B_SEG_NOT_PRESENT) & 1) +#define LINUX_GET_USEABLE(desc) \ + (((desc)->b >> LINUX_ENTRY_B_USEABLE) & 1) #define LINUX_CLOCK_REALTIME 0 #define LINUX_CLOCK_MONOTONIC 1 @@ -810,22 +816,23 @@ typedef int l_timer_t; typedef int l_mqd_t; -#define CLONE_VM 0x00000100 -#define CLONE_FS 0x00000200 -#define CLONE_FILES 0x00000400 -#define CLONE_SIGHAND 0x00000800 -#define CLONE_PID 0x00001000 /* No longer exist in Linux */ -#define CLONE_VFORK 0x00004000 -#define CLONE_PARENT 0x00008000 -#define CLONE_THREAD 0x00010000 -#define CLONE_SETTLS 0x00080000 -#define CLONE_PARENT_SETTID 0x00100000 -#define CLONE_CHILD_CLEARTID 0x00200000 -#define CLONE_CHILD_SETTID 0x01000000 +#define LINUX_CLONE_VM 0x00000100 +#define LINUX_CLONE_FS 0x00000200 +#define LINUX_CLONE_FILES 0x00000400 +#define LINUX_CLONE_SIGHAND 0x00000800 +#define LINUX_CLONE_PID 0x00001000 /* No longer exist in Linux */ +#define LINUX_CLONE_VFORK 0x00004000 +#define LINUX_CLONE_PARENT 0x00008000 +#define LINUX_CLONE_THREAD 0x00010000 +#define LINUX_CLONE_SETTLS 0x00080000 +#define LINUX_CLONE_PARENT_SETTID 0x00100000 +#define LINUX_CLONE_CHILD_CLEARTID 0x00200000 +#define LINUX_CLONE_CHILD_SETTID 0x01000000 -#define THREADING_FLAGS \ - (CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_THREAD) +#define LINUX_THREADING_FLAGS \ + (LINUX_CLONE_VM | LINUX_CLONE_FS | LINUX_CLONE_FILES | \ + LINUX_CLONE_SIGHAND | LINUX_CLONE_THREAD) #include <compat/linux/linux_aio.h> -#endif /* !_I386_LINUX_LINUX_H_ */ +#endif /* !_I386_LINUX_H_ */ ==== //depot/projects/linuxolator/src/sys/i386/linux/linux_machdep.c#36 (text+ko) ==== @@ -394,9 +394,9 @@ if (exit_signal <= LINUX_SIGTBLSZ) exit_signal = linux_to_bsd_signal[_SIG_IDX(exit_signal)]; - if (args->flags & CLONE_VM) + if (args->flags & LINUX_CLONE_VM) ff |= RFMEM; - if (args->flags & CLONE_SIGHAND) + if (args->flags & LINUX_CLONE_SIGHAND) ff |= RFSIGSHARE; /* * XXX: in linux sharing of fs info (chroot/cwd/umask) @@ -404,7 +404,7 @@ * structure but in reality it doesn't cause any problems * because both of these flags are usually set together. */ - if (!(args->flags & (CLONE_FILES | CLONE_FS))) + if (!(args->flags & (LINUX_CLONE_FILES | LINUX_CLONE_FS))) ff |= RFFDG; /* @@ -420,10 +420,10 @@ * that special treatment is necessary for signal delivery * between those processes and fd locking. */ - if ((args->flags & 0xffffff00) == THREADING_FLAGS) + if ((args->flags & 0xffffff00) == LINUX_THREADING_FLAGS) ff |= RFTHREAD; - if (args->flags & CLONE_PARENT_SETTID) + if (args->flags & LINUX_CLONE_PARENT_SETTID) if (args->parent_tidptr == NULL) return (EINVAL); @@ -431,7 +431,7 @@ if (error) return (error); - if (args->flags & (CLONE_PARENT|CLONE_THREAD)) { + if (args->flags & (LINUX_CLONE_PARENT|LINUX_CLONE_THREAD)) { sx_xlock(&proctree_lock); PROC_LOCK(p2); proc_reparent(p2, td->td_proc->p_pptr); @@ -446,7 +446,7 @@ KASSERT(em != NULL, ("clone: emuldata not found.\n")); /* and adjust it */ - if (args->flags & CLONE_THREAD) { + if (args->flags & LINUX_CLONE_THREAD) { #ifdef notyet PROC_LOCK(p2); p2->p_pgrp = td->td_proc->p_pgrp; @@ -455,19 +455,19 @@ exit_signal = 0; } - if (args->flags & CLONE_CHILD_SETTID) + if (args->flags & LINUX_CLONE_CHILD_SETTID) em->child_set_tid = args->child_tidptr; else em->child_set_tid = NULL; - if (args->flags & CLONE_CHILD_CLEARTID) + if (args->flags & LINUX_CLONE_CHILD_CLEARTID) em->child_clear_tid = args->child_tidptr; else em->child_clear_tid = NULL; EMUL_UNLOCK(&emul_lock); - if (args->flags & CLONE_PARENT_SETTID) { + if (args->flags & LINUX_CLONE_PARENT_SETTID) { error = copyout(&p2->p_pid, args->parent_tidptr, sizeof(p2->p_pid)); if (error) printf(LMSG("copyout failed!")); @@ -484,7 +484,7 @@ if (args->stack) td2->td_frame->tf_esp = (unsigned int)args->stack; - if (args->flags & CLONE_SETTLS) { + if (args->flags & LINUX_CLONE_SETTLS) { struct l_user_desc info; int idx; int a[2]; @@ -515,8 +515,8 @@ printf(LMSG("copyout failed!")); } - a[0] = LDT_entry_a(&info); - a[1] = LDT_entry_b(&info); + a[0] = LINUX_LDT_entry_a(&info); + a[1] = LINUX_LDT_entry_b(&info); memcpy(&sd, &a, sizeof(a)); #ifdef DEBUG @@ -544,7 +544,7 @@ printf(LMSG("clone: successful rfork to %ld, stack %p sig = %d"), (long)p2->p_pid, args->stack, exit_signal); #endif - if (args->flags & CLONE_VFORK) { + if (args->flags & LINUX_CLONE_VFORK) { PROC_LOCK(p2); p2->p_flag |= P_PPWAIT; PROC_UNLOCK(p2); @@ -561,7 +561,7 @@ td->td_retval[0] = p2->p_pid; td->td_retval[1] = 0; - if (args->flags & CLONE_VFORK) { + if (args->flags & LINUX_CLONE_VFORK) { /* wait for the children to exit, ie. emulate vfork */ PROC_LOCK(p2); while (p2->p_flag & P_PPWAIT) @@ -1131,12 +1131,12 @@ if (error) return (error); - if (LDT_empty(&info)) { + if (LINUX_LDT_empty(&info)) { a[0] = 0; a[1] = 0; } else { - a[0] = LDT_entry_a(&info); - a[1] = LDT_entry_b(&info); + a[0] = LINUX_LDT_entry_a(&info); + a[1] = LINUX_LDT_entry_b(&info); } memcpy(&sd, &a, sizeof(a)); @@ -1198,14 +1198,14 @@ memcpy(&desc, &sd, sizeof(desc)); info.entry_number = idx; - info.base_addr = GET_BASE(&desc); - info.limit = GET_LIMIT(&desc); - info.seg_32bit = GET_32BIT(&desc); - info.contents = GET_CONTENTS(&desc); - info.read_exec_only = !GET_WRITABLE(&desc); - info.limit_in_pages = GET_LIMIT_PAGES(&desc); - info.seg_not_present = !GET_PRESENT(&desc); - info.useable = GET_USEABLE(&desc); + info.base_addr = LINUX_GET_BASE(&desc); + info.limit = LINUX_GET_LIMIT(&desc); + info.seg_32bit = LINUX_GET_32BIT(&desc); + info.contents = LINUX_GET_CONTENTS(&desc); + info.read_exec_only = !LINUX_GET_WRITABLE(&desc); + info.limit_in_pages = LINUX_GET_LIMIT_PAGES(&desc); + info.seg_not_present = !LINUX_GET_PRESENT(&desc); + info.useable = LINUX_GET_USEABLE(&desc); error = copyout(&info, args->desc, sizeof(struct l_user_desc)); if (error)help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200703012239.l21Md69H014494>
