aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-ppc/bug.h
blob: 8b34fd682b0dae9776fa29316cb58278a603a954 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#ifndef _PPC_BUG_H
#define _PPC_BUG_H

struct bug_entry {
	unsigned long	bug_addr;
	int		line;
	const char	*file;
	const char	*function;
};

/*
 * If this bit is set in the line number it means that the trap
 * is for WARN_ON rather than BUG or BUG_ON.
 */
#define BUG_WARNING_TRAP	0x1000000

#ifdef CONFIG_BUG
#define BUG() do {							 \
	__asm__ __volatile__(						 \
		"1:	twi 31,0,0\n"					 \
		".section __bug_table,\"a\"\n\t"			 \
		"	.long 1b,%0,%1,%2\n"				 \
		".previous"						 \
		: : "i" (__LINE__), "i" (__FILE__), "i" (__FUNCTION__)); \
} while (0)

#define BUG_ON(x) do {							\
	if (!__builtin_constant_p(x) || (x)) {				\
		__asm__ __volatile__(					\
			"1:	twnei %0,0\n"				\
			".section __bug_table,\"a\"\n\t"		\
			"	.long 1b,%1,%2,%3\n"			\
			".previous"					\
			: : "r" (x), "i" (__LINE__), "i" (__FILE__),	\
			    "i" (__FUNCTION__));			\
	}								\
} while (0)

#define WARN_ON(x) do {							\
	if (!__builtin_constant_p(x) || (x)) {				\
		__asm__ __volatile__(					\
			"1:	twnei %0,0\n"				\
			".section __bug_table,\"a\"\n\t"		\
			"	.long 1b,%1,%2,%3\n"			\
			".previous"					\
			: : "r" (x), "i" (__LINE__ + BUG_WARNING_TRAP),	\
			    "i" (__FILE__), "i" (__FUNCTION__));	\
	}								\
} while (0)

#define HAVE_ARCH_BUG
#define HAVE_ARCH_BUG_ON
#define HAVE_ARCH_WARN_ON
#endif

#include <asm-generic/bug.h>

#endif
lt;rusty@rustcorp.com.au> 2007-10-21 20:56:19 -0400 committer Rusty Russell <rusty@rustcorp.com.au> 2007-10-23 01:49:47 -0400 Make asm-x86/bootparam.h includable from userspace.' href='/cgit/cgit.cgi/litmus-rt-budgetable-locks.git/.git/commit/include/asm-x86/bootparam.h?h=update_litmus_2019&id=ee8e7cfe9d330d6f1ce0b9b1620d6df5d9cf6b70'>ee8e7cfe9d33
48c7ae674f03


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94





                              
                      

                     


                       



                            


                                              










                               


                              














                                      


                          

                        


                 






                                  





                                                                   
                                                                   
                                                                   


                                                                   
                                                                   
                                                                   

                                                                   





                                                                   
                                                                   

                                                                   
                                                                   
                                                                   
                                                                   
                                                                   


                             
#ifndef _ASM_BOOTPARAM_H
#define _ASM_BOOTPARAM_H

#include <linux/types.h>
#include <linux/screen_info.h>
#include <linux/apm_bios.h>
#include <linux/edd.h>
#include <asm/e820.h>
#include <asm/ist.h>
#include <video/edid.h>

struct setup_header {
	__u8	setup_sects;
	__u16	root_flags;
	__u32	syssize;
	__u16	ram_size;
#define RAMDISK_IMAGE_START_MASK	0x07FF
#define RAMDISK_PROMPT_FLAG		0x8000
#define RAMDISK_LOAD_FLAG		0x4000
	__u16	vid_mode;
	__u16	root_dev;
	__u16	boot_flag;
	__u16	jump;
	__u32	header;
	__u16	version;
	__u32	realmode_swtch;
	__u16	start_sys;
	__u16	kernel_version;
	__u8	type_of_loader;
	__u8	loadflags;
#define LOADED_HIGH	(1<<0)
#define KEEP_SEGMENTS	(1<<6)
#define CAN_USE_HEAP	(1<<7)
	__u16	setup_move_size;
	__u32	code32_start;
	__u32	ramdisk_image;
	__u32	ramdisk_size;
	__u32	bootsect_kludge;
	__u16	heap_end_ptr;
	__u16	_pad1;
	__u32	cmd_line_ptr;
	__u32	initrd_addr_max;
	__u32	kernel_alignment;
	__u8	relocatable_kernel;
	__u8	_pad2[3];
	__u32	cmdline_size;
	__u32	hardware_subarch;
	__u64	hardware_subarch_data;
} __attribute__((packed));

struct sys_desc_table {
	__u16 length;
	__u8  table[14];
};

struct efi_info {
	__u32 _pad1;
	__u32 efi_systab;
	__u32 efi_memdesc_size;
	__u32 efi_memdesc_version;
	__u32 efi_memmap;
	__u32 efi_memmap_size;
	__u32 _pad2[2];
};

/* The so-called "zeropage" */
struct boot_params {
	struct screen_info screen_info;			/* 0x000 */
	struct apm_bios_info apm_bios_info;		/* 0x040 */
	__u8  _pad2[12];				/* 0x054 */
	struct ist_info ist_info;			/* 0x060 */
	__u8  _pad3[16];				/* 0x070 */
	__u8  hd0_info[16];	/* obsolete! */		/* 0x080 */
	__u8  hd1_info[16];	/* obsolete! */		/* 0x090 */
	struct sys_desc_table sys_desc_table;		/* 0x0a0 */
	__u8  _pad4[144];				/* 0x0b0 */
	struct edid_info edid_info;			/* 0x140 */
	struct efi_info efi_info;			/* 0x1c0 */
	__u32 alt_mem_k;				/* 0x1e0 */
	__u32 scratch;		/* Scratch field! */	/* 0x1e4 */
	__u8  e820_entries;				/* 0x1e8 */
	__u8  eddbuf_entries;				/* 0x1e9 */
	__u8  edd_mbr_sig_buf_entries;			/* 0x1ea */
	__u8  _pad6[6];					/* 0x1eb */
	struct setup_header hdr;    /* setup header */	/* 0x1f1 */
	__u8  _pad7[0x290-0x1f1-sizeof(struct setup_header)];
	__u32 edd_mbr_sig_buffer[EDD_MBR_SIG_MAX];	/* 0x290 */
	struct e820entry e820_map[E820MAX];		/* 0x2d0 */
	__u8  _pad8[48];				/* 0xcd0 */
	struct edd_info eddbuf[EDDMAXNR];		/* 0xd00 */
	__u8  _pad9[276];				/* 0xeec */
} __attribute__((packed));

#endif /* _ASM_BOOTPARAM_H */