drivers/intel/fsp2.0: Add semantic patch for FspUpdVpd.h header
Previous FSP implementations in coreboot have included FspUpdVpd.h directly, along with with efi headers. Instead of taking that approach in FSP 2.0, we provide a semantic patch that, with minimal modifications, makes FspUpdVpd.h easier to include in coreboot, and eliminates reliance on external headers and definitions. Change-Id: I0c2a6f7baf6fb50ae22b64e08e653cfe1aefdaf9 Signed-off-by: Alexandru Gagniuc <alexandrux.gagniuc@intel.com> Reviewed-on: https://review.coreboot.org/13331 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
parent
0f61da8582
commit
6a587343a9
|
@ -0,0 +1,187 @@
|
|||
/*
|
||||
* Semantic patch for fspupdvpd_sanitize.sh. Please call the script directly.
|
||||
*
|
||||
* This file is part of the coreboot project.
|
||||
*
|
||||
* Copyright (C) 2015 Intel Corp.
|
||||
* (Written by Alexandru Gagniuc <alexandrux.gagniuc@intel.com> for Intel Corp.)
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This semantic patch is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
@ kill_pragma_pack @
|
||||
@@
|
||||
- #pragma pack(...)
|
||||
|
||||
/*
|
||||
* Convert named typedef'd structs
|
||||
* Example : typedef struct name {} name_t; -> struct name {};
|
||||
*/
|
||||
@ named_struct @
|
||||
identifier i;
|
||||
type t;
|
||||
@@
|
||||
typedef struct i { ... } t;
|
||||
|
||||
/* Make typename usable as identifier */
|
||||
@ script:python named_struct_type @
|
||||
t << named_struct.t;
|
||||
i;
|
||||
@@
|
||||
coccinelle.i = t.rstrip('_t')
|
||||
|
||||
|
||||
@ convert_named_struct_decls @
|
||||
type named_struct.t;
|
||||
identifier named_struct_type.i;
|
||||
identifier g;
|
||||
@@
|
||||
- typedef struct g {
|
||||
+ struct i {
|
||||
...
|
||||
}
|
||||
- t
|
||||
;
|
||||
|
||||
/* Replace type with struct */
|
||||
@ named_typedef_to_struct @
|
||||
type named_struct.t;
|
||||
identifier named_struct_type.i;
|
||||
@@
|
||||
- t
|
||||
+ struct i
|
||||
|
||||
|
||||
/*
|
||||
* Convert unnamed typedef'd structs
|
||||
* Example : typedef struct {} name_t; -> struct name {};
|
||||
*/
|
||||
@ unnamed_struct @
|
||||
type t;
|
||||
@@
|
||||
typedef struct { ... } t;
|
||||
|
||||
/* Make typename usable as identifier */
|
||||
@ script:python unnamed_struct_type @
|
||||
t << unnamed_struct.t;
|
||||
i;
|
||||
@@
|
||||
coccinelle.i = t.rstrip('_t')
|
||||
|
||||
@ convert_unnamed_struct_decls @
|
||||
type unnamed_struct.t;
|
||||
identifier unnamed_struct_type.i;
|
||||
@@
|
||||
-typedef struct {
|
||||
+struct i {
|
||||
...
|
||||
}
|
||||
- t
|
||||
;
|
||||
|
||||
/*
|
||||
* Convert unnamed typedef'd enums
|
||||
*/
|
||||
@ unnamed_enum @
|
||||
type t;
|
||||
@@
|
||||
typedef enum { ... } t;
|
||||
|
||||
/* Make typename usable as identifier */
|
||||
@ script:python unnamed_enum_type @
|
||||
t << unnamed_enum.t;
|
||||
i;
|
||||
@@
|
||||
coccinelle.i = t.rstrip('_t')
|
||||
|
||||
@ convert_unnamed_enum_decls @
|
||||
type unnamed_enum.t;
|
||||
identifier unnamed_enum_type.i;
|
||||
@@
|
||||
-typedef enum {
|
||||
+enum i {
|
||||
...
|
||||
}
|
||||
- t
|
||||
;
|
||||
|
||||
/* Replace type with struct */
|
||||
@ unnamed_typedef_to_struct @
|
||||
type unnamed_struct.t;
|
||||
identifier unnamed_struct_type.i;
|
||||
@@
|
||||
-t
|
||||
+struct i
|
||||
|
||||
/*
|
||||
* Pack _ALL_ structs
|
||||
*/
|
||||
@ pack_structs @
|
||||
identifier s;
|
||||
@@
|
||||
|
||||
struct s {
|
||||
...
|
||||
}
|
||||
+ __attribute__((packed))
|
||||
;
|
||||
|
||||
/*
|
||||
* BIGINT to stdint
|
||||
*/
|
||||
@ uint8_t @
|
||||
typedef UINT8;
|
||||
typedef uint8_t;
|
||||
@@
|
||||
- UINT8
|
||||
+ uint8_t
|
||||
|
||||
@ uint16_t @
|
||||
typedef UINT16;
|
||||
typedef uint16_t;
|
||||
@@
|
||||
- UINT16
|
||||
+ uint16_t
|
||||
|
||||
@ uint32_t @
|
||||
typedef UINT32;
|
||||
typedef uint32_t;
|
||||
@@
|
||||
- UINT32
|
||||
+ uint32_t
|
||||
|
||||
@ uint64_t @
|
||||
typedef UINT64;
|
||||
typedef uint64_t;
|
||||
@@
|
||||
- UINT64
|
||||
+ uint64_t
|
||||
|
||||
@ bool @
|
||||
typedef BOOLEAN;
|
||||
typedef bool;
|
||||
@@
|
||||
- BOOLEAN
|
||||
+ bool
|
||||
|
||||
@ wchar_t @
|
||||
typedef CHAR16;
|
||||
typedef wchar_t;
|
||||
@@
|
||||
- CHAR16
|
||||
+ wchar_t
|
||||
|
||||
/* This rule can't be named "void" */
|
||||
@ replace_uppercase_void @
|
||||
typedef VOID;
|
||||
@@
|
||||
- VOID
|
||||
+ void
|
|
@ -0,0 +1,33 @@
|
|||
#
|
||||
# Convert the FspUpdVpd.h header file into a format usable by coreboot
|
||||
# Usage:
|
||||
# fspupdvpd_sanitize.sh <path/to/FspUpdVpd.h>
|
||||
#
|
||||
# This file is part of the coreboot project.
|
||||
#
|
||||
# Copyright (C) 2015-2016 Intel Corp.
|
||||
# (Written by Alexandru Gagniuc <alexandrux.gagniuc@intel.com> for Intel Corp.)
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
PWD=$(dirname "${BASH_SOURCE[0]}")
|
||||
|
||||
SPATCH=spatch
|
||||
|
||||
# Fix line terminations
|
||||
dos2unix $1
|
||||
|
||||
# Clean up trailing whitespace
|
||||
sed -e "s, $,,g" -i $1
|
||||
|
||||
# Now fix the actual coding style
|
||||
$SPATCH -sp_file ${PWD}/fspupdvpd.spatch \
|
||||
-in_place $1
|
Loading…
Reference in New Issue