cregit-Linux how code gets into the kernel

Release 4.14 arch/x86/um/asm/mm_context.h

Directory: arch/x86/um/asm
/*
 * Copyright (C) 2004 Fujitsu Siemens Computers GmbH
 * Licensed under the GPL
 *
 * Author: Bodo Stroesser <bstroesser@fujitsu-siemens.com>
 */

#ifndef __ASM_LDT_H

#define __ASM_LDT_H

#include <linux/mutex.h>
#include <asm/ldt.h>

extern void ldt_host_info(void);


#define LDT_PAGES_MAX \
	((LDT_ENTRIES * LDT_ENTRY_SIZE)/PAGE_SIZE)

#define LDT_ENTRIES_PER_PAGE \
	(PAGE_SIZE/LDT_ENTRY_SIZE)

#define LDT_DIRECT_ENTRIES \
	((LDT_PAGES_MAX*sizeof(void *))/LDT_ENTRY_SIZE)


struct ldt_entry {
	
__u32 a;
	
__u32 b;
};


typedef struct uml_ldt {
	
int entry_count;
	
struct mutex lock;
	union {
		
struct ldt_entry * pages[LDT_PAGES_MAX];
		
struct ldt_entry entries[LDT_DIRECT_ENTRIES];
	
} u;

} uml_ldt_t;


#define LDT_entry_a(info) \
	((((info)->base_addr & 0x0000ffff) << 16) | ((info)->limit & 0x0ffff))


#define LDT_entry_b(info) \
	(((info)->base_addr & 0xff000000) | \
        (((info)->base_addr & 0x00ff0000) >> 16) | \
        ((info)->limit & 0xf0000) | \
        (((info)->read_exec_only ^ 1) << 9) | \
        ((info)->contents << 10) | \
        (((info)->seg_not_present ^ 1) << 15) | \
        ((info)->seg_32bit << 22) | \
        ((info)->limit_in_pages << 23) | \
        ((info)->useable << 20) | \
        0x7000)


#define _LDT_empty(info) (\
        (info)->base_addr       == 0    && \
        (info)->limit           == 0    && \
        (info)->contents        == 0    && \
        (info)->read_exec_only  == 1    && \
        (info)->seg_32bit       == 0    && \
        (info)->limit_in_pages  == 0    && \
        (info)->seg_not_present == 1    && \
        (info)->useable         == 0    )

#ifdef CONFIG_X86_64

#define LDT_empty(info) (_LDT_empty(info) && ((info)->lm == 0))
#else

#define LDT_empty(info) (_LDT_empty(info))
#endif


struct uml_arch_mm_context {
	
uml_ldt_t ldt;
};

#endif

Overall Contributors

PersonTokensPropCommitsCommitProp
Bodo Stroesser7555.97%120.00%
Al Viro5339.55%120.00%
Daniel Walker32.24%120.00%
Paolo 'Blaisorblade' Giarrusso21.49%120.00%
Jeff Dike10.75%120.00%
Total134100.00%5100.00%
Directory: arch/x86/um/asm
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.