|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 1/3] xen/x86: Infrastructure to create BUG_FRAMES in asm code
>>> On 09.04.15 at 22:06, <andrew.cooper3@xxxxxxxxxx> wrote:
> @@ -66,4 +68,40 @@ struct bug_frame {
> __stop_bug_frames_2[],
> __stop_bug_frames_3[];
>
> +#else /* !__ASSEMBLY__ */
> +
> +/*
> + * Construct a bugframe, suitable for using in assembly code. Should always
> + * match the C version above. One complication is having to stash the
> strings
> + * in .rodata (TODO - figure out how to get GAS to elide duplicate
> file_str's)
Use the 'M' and 'S' section flags (and perhaps the section name gcc
also uses for this purpose, .rodata.str1 or some such).
> +.macro BUG_FRAME type, line, file_str, second_frame, msg
Can we please avoid spreading the bad habit of starting directives
in the first column? The only thing formally allowed to start there is
a label.
> +92: ud2a
Instead of using number labels that can conflict with the context
the macro is used in, please use .L prefixed ones together with
\@ to reference the macro invocation count (as a unique number).
> +.if \second_frame
> + .pushsection .rodata
> + 95: .asciz "\msg"
> + .popsection
> +.long 0, (95b - 93b)
> +.endif
> +.popsection
> +.endm
Please be consistent with indentation.
> +#define WARN() BUG_FRAME BUGFRAME_warn, __LINE__, __FILE__, 0, 0
> +#define BUG() BUG_FRAME BUGFRAME_bug, __LINE__, __FILE__, 0, 0
I don't think the parentheses are particularly well suited for
assembly code.
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |