arch/s390/include/asm/dat-bits.h

Source file repositories/reference/linux-study-clean/arch/s390/include/asm/dat-bits.h

File Facts

System
Linux kernel
Corpus path
arch/s390/include/asm/dat-bits.h
Extension
.h
Size
5691 bytes
Lines
199
Domain
Architecture Layer
Bucket
arch/s390
Inferred role
Architecture Layer: implementation source
Status
source implementation candidate

Why This File Exists

CPU and platform-specific kernel glue: boot entry, traps, syscall entry, interrupts, page tables, context switch, and low-level barriers.

Dependency Surface

Detected Declarations

Annotated Snippet

struct region3_table_entry_fc0 {
	unsigned long sto: 52;/* Segment-Table Origin */
	unsigned long	 : 1;
	unsigned long fc : 1; /* Format-Control */
	unsigned long p  : 1; /* DAT-Protection Bit */
	unsigned long	 : 1;
	unsigned long tf : 2; /* Segment-Table Offset */
	unsigned long i  : 1; /* Region-Invalid Bit */
	unsigned long cr : 1; /* Common-Region Bit */
	unsigned long tt : 2; /* Table-Type Bits */
	unsigned long tl : 2; /* Segment-Table Length */
};

struct region3_table_entry_fc1 {
	unsigned long rfaa: 33;/* Region-Frame Absolute Address */
	unsigned long	  : 14;
	unsigned long av  : 1; /* ACCF-Validity Control */
	unsigned long acc : 4; /* Access-Control Bits */
	unsigned long f   : 1; /* Fetch-Protection Bit */
	unsigned long fc  : 1; /* Format-Control */
	unsigned long p   : 1; /* DAT-Protection Bit */
	unsigned long iep : 1; /* Instruction-Execution-Protection */
	unsigned long	  : 2;
	unsigned long i   : 1; /* Region-Invalid Bit */
	unsigned long cr  : 1; /* Common-Region Bit */
	unsigned long tt  : 2; /* Table-Type Bits */
	unsigned long	  : 2;
};

union region3_table_entry {
	unsigned long val;
	struct region3_table_entry_fc0 fc0;
	struct region3_table_entry_fc1 fc1;
	struct {
		unsigned long	: 53;
		unsigned long fc: 1; /* Format-Control */
		unsigned long p : 1; /* DAT-Protection Bit */
		unsigned long	: 3;
		unsigned long i : 1; /* Region-Invalid Bit */
		unsigned long cr: 1; /* Common-Region Bit */
		unsigned long tt: 2; /* Table-Type Bits */
		unsigned long	: 2;
	};
};

struct segment_table_entry_fc0 {
	unsigned long pto: 53;/* Page-Table Origin */
	unsigned long fc : 1; /* Format-Control */
	unsigned long p  : 1; /* DAT-Protection Bit */
	unsigned long	 : 3;
	unsigned long i  : 1; /* Segment-Invalid Bit */
	unsigned long cs : 1; /* Common-Segment Bit */
	unsigned long tt : 2; /* Table-Type Bits */
	unsigned long	 : 2;
};

struct segment_table_entry_fc1 {
	unsigned long sfaa: 44;/* Segment-Frame Absolute Address */
	unsigned long	  : 3;
	unsigned long av  : 1; /* ACCF-Validity Control */
	unsigned long acc : 4; /* Access-Control Bits */
	unsigned long f   : 1; /* Fetch-Protection Bit */
	unsigned long fc  : 1; /* Format-Control */
	unsigned long p   : 1; /* DAT-Protection Bit */
	unsigned long iep : 1; /* Instruction-Execution-Protection */
	unsigned long	  : 2;
	unsigned long i   : 1; /* Segment-Invalid Bit */
	unsigned long cs  : 1; /* Common-Segment Bit */
	unsigned long tt  : 2; /* Table-Type Bits */
	unsigned long	  : 2;
};

union segment_table_entry {
	unsigned long val;
	struct segment_table_entry_fc0 fc0;
	struct segment_table_entry_fc1 fc1;
	struct {
		unsigned long	: 53;
		unsigned long fc: 1; /* Format-Control */
		unsigned long p : 1; /* DAT-Protection Bit */
		unsigned long	: 3;
		unsigned long i : 1; /* Segment-Invalid Bit */
		unsigned long cs: 1; /* Common-Segment Bit */
		unsigned long tt: 2; /* Table-Type Bits */
		unsigned long	: 2;
	};
};

union page_table_entry {
	unsigned long val;

Annotation

Implementation Notes