unsigned long chksum;
unsigned long optional_pa;
unsigned long numclusters;
- struct memclust_struct cluster[0];
+ struct memclust_struct cluster[];
};
struct dsr_struct {
* The rest of this structure consists of variable-length arrays, which can't be
* expressed in C.
*/
- sal_log_mod_error_info_t info[0];
+ sal_log_mod_error_info_t info[];
/*
* This is what the rest looked like if C supported variable-length arrays:
*
unsigned int count;
struct device dev;
struct work_struct ungroup_work;
- struct ccw_device *cdev[0];
+ struct ccw_device *cdev[];
};
/**
struct chsc_header response;
u32:32;
struct chsc_pnso_naihdr naihdr;
- struct chsc_pnso_naid_l2 entries[0];
+ struct chsc_pnso_naid_l2 entries[];
} __packed __aligned(PAGE_SIZE);
#endif /* _ASM_S390_CHSC_H */
struct aob_rq_header {
struct scm_device *scmdev;
- char data[0];
+ char data[];
};
struct scm_device {
u32 :32;
u64 time;
u64 prog_id;
- u8 prog_data[0];
+ u8 prog_data[];
} __attribute__ ((packed));
#define DCW_FLAGS_CC (1 << (7 - 1))
u32 :8;
u32 cd_count:8;
u32 count;
- u8 cd[0];
+ u8 cd[];
} __attribute__ ((packed));
#define TCCB_FORMAT_DEFAULT 0x7f
struct idal_buffer {
size_t size;
size_t page_order;
- void *data[0];
+ void *data[];
};
/*
* (OpenCrypto Successful Diagnostics Execution)
*/
u16 length; /* Length of Subsequent Data (up to 4K – SCLP header */
- u8 data[0]; /* Subsequent Data passed verbatim to SCLP ET 24 */
+ u8 data[]; /* Subsequent Data passed verbatim to SCLP ET 24 */
} __packed;
extern char *sclp_early_sccb;
unsigned short cpus_configured;
unsigned short cpus_standby;
unsigned short cpus_reserved;
- unsigned short adjustment[0];
+ unsigned short adjustment[];
};
struct sysinfo_1_2_2_extension {
unsigned int alt_capability;
- unsigned short alt_adjustment[0];
+ unsigned short alt_adjustment[];
};
struct sysinfo_2_2_1 {
unsigned char reserved1;
unsigned char mnest;
unsigned char reserved2[4];
- union topology_entry tle[0];
+ union topology_entry tle[];
};
int stsi(void *sysinfo, int fc, int sel1, int sel2);
mm_segment_t addr_limit; /* thread address space */
unsigned long previous_sp; /* sp of previous stack in case
of nested IRQ stacks */
- __u8 supervisor_stack[0];
+ __u8 supervisor_stack[];
};
#endif
#define VIO_RX_DRING_DATA 0x0004
u16 resv;
u32 num_cookies;
- struct ldc_trans_cookie cookies[0];
+ struct ldc_trans_cookie cookies[];
};
struct vio_dring_unregister {
u64 size;
u32 ncookies;
u32 resv2;
- struct ldc_trans_cookie cookies[0];
+ struct ldc_trans_cookie cookies[];
};
#define VIO_DISK_VNAME_LEN 8
u16 resv;
u16 type;
u32 len;
- char id[0];
+ char id[];
};
struct vio_disk_efi {
u64 lba;
u64 len;
- char data[0];
+ char data[];
};
/* VIO net specific structures and defines */
struct vio_dring_hdr hdr;
u32 size;
u32 ncookies;
- struct ldc_trans_cookie cookies[0];
+ struct ldc_trans_cookie cookies[];
};
struct vio_net_dext {
void (*add_address)(unsigned char *, unsigned char *, void *);
void (*delete_address)(unsigned char *, unsigned char *, void *);
- char user[0];
+ char user[];
};
struct net_kern_info {
struct microcode_amd {
struct microcode_header_amd hdr;
- unsigned int mpb[0];
+ unsigned int mpb[];
};
#define PATCH_MAX_SIZE (3 * PAGE_SIZE)
struct microcode_intel {
struct microcode_header_intel hdr;
- unsigned int bits[0];
+ unsigned int bits[];
};
/* microcode format is extended from prescott processors */
unsigned int count;
unsigned int cksum;
unsigned int reserved[3];
- struct extended_signature sigs[0];
+ struct extended_signature sigs[];
};
#define DEFAULT_UCODE_DATASIZE (2000)
unsigned long bus;
unsigned long device;
unsigned long function;
- uint8_t romdata[0];
+ uint8_t romdata[];
};
#endif /* _ASM_X86_PCI_H */
u32 miniport_data; /* Crap */
u8 rfu[11];
u8 checksum; /* Modulo 256 checksum must give 0 */
- struct irq_info slots[0];
+ struct irq_info slots[];
} __attribute__((packed));
extern unsigned int pcibios_irq_mask;
typedef struct bp_tag {
unsigned short id; /* tag id */
unsigned short size; /* size of this record excluding the structure*/
- unsigned long data[0]; /* data */
+ unsigned long data[]; /* data */
} bp_tag_t;
struct bp_meminfo {
};
u32 spi;
u32 ip_hdr_len;
- u32 ip_hdr[0];
+ u32 ip_hdr[];
};
/**
struct guc_gt_system_info system_info;
struct guc_engine_usage engine_usage;
/* From here on, location is dynamic! Refer to above diagram. */
- struct guc_mmio_reg regset[0];
+ struct guc_mmio_reg regset[];
} __packed;
static u32 guc_ads_regset_size(struct intel_guc *guc)
u32 data_dma_base;
u32 data_size;
u32 num_apps;
- u32 apps[0];
+ u32 apps[];
};
const struct nvfw_hs_load_header *
bool enabled;
struct list_head node;
int nr_feat;
- struct cscfg_feature_csdev *feats_csdev[0];
+ struct cscfg_feature_csdev *feats_csdev[];
};
/**
u32 wr_idx;
u32 buf_size;
u32 mask;
- char data[0];
+ char data[];
};
/* max buf size allowed */
struct cpucp_unmask_irq_arr_packet {
struct cpucp_packet cpucp_pkt;
__le32 length;
- __le32 irqs[0];
+ __le32 irqs[];
};
struct cpucp_nic_status_packet {
struct cpucp_packet cpucp_pkt;
__le32 length;
- __le32 data[0];
+ __le32 data[];
};
struct cpucp_array_data_packet {
struct cpucp_packet cpucp_pkt;
__le32 length;
- __le32 data[0];
+ __le32 data[];
};
enum cpucp_packet_rc {
/* The rest of the packet data follows. Use the corresponding
* packet_XXX struct to deference the data, based on packet type
*/
- u8 contents[0];
+ u8 contents[];
};
struct packet_nop {
struct packet_wreg_bulk {
__le32 size64;
__le32 ctl;
- __le64 values[0]; /* data starts here */
+ __le64 values[]; /* data starts here */
};
#define GAUDI_PKT_LONG_CTL_OP_SHIFT 20
/* The rest of the packet data follows. Use the corresponding
* packet_XXX struct to deference the data, based on packet type
*/
- u8 contents[0];
+ u8 contents[];
};
struct packet_nop {
struct packet_wreg_bulk {
__le32 size64;
__le32 ctl;
- __le64 values[0]; /* data starts here */
+ __le64 values[]; /* data starts here */
};
struct packet_msg_long {
u32 bth;
u32 ct;
u32 cte;
- struct sgce sgcl[0];
+ struct sgce sgcl[];
};
#define ENETC_CBDR_FMI_MR BIT(0)
unsigned short cmd_cmd;
unsigned short cmd_link;
unsigned short mc_cnt; /* number of bytes in the MC-List */
- unsigned char mc_list[0][6]; /* pointer to 6 bytes entries */
+ unsigned char mc_list[][6]; /* pointer to 6 bytes entries */
};
/*
u8 name[NPC_NAME_LEN]; /* KPU Profile name */
u64 version; /* KPU firmware/profile version */
u8 num_prfl; /* No of NPC profiles. */
- u16 prfl_sz[0];
+ u16 prfl_sz[];
};
struct npc_mcam_kex {
* struct npc_kpu_profile_cam[entries];
* struct npc_kpu_profile_action[entries];
*/
- u8 data[0];
+ u8 data[];
} __packed;
struct npc_lt_def {
* Custom KPU CAM and ACTION configuration entries.
* struct npc_kpu_fwdata kpu[kpus];
*/
- u8 data[0];
+ u8 data[];
} __packed;
struct rvu_npc_mcam_rule {
u32 version;
#define NVM_META_BIN_VERSION 1
u32 num_options;
- u32 options[0];
+ u32 options[];
};
#endif
#define USERACCESS_DATA (0xffff)
u32 physel;
- } user[0];
+ } user[];
};
static const struct mdio_platform_data default_pdata = {
u32 change_ind;
u32 reserved2;
u32 reserved3;
- struct i2o_sys_tbl_entry iops[0];
+ struct i2o_sys_tbl_entry iops[];
};
/*
__le16 cqe_count;
__le16 rsvd30;
__le32 rsvd32;
- struct sli4_dmaaddr page_phys_addr[0];
+ struct sli4_dmaaddr page_phys_addr[];
};
enum sli4_create_cqset_e {
__le16 num_cq_req;
__le16 dw6w1_flags;
__le16 eq_id[16];
- struct sli4_dmaaddr page_phys_addr[0];
+ struct sli4_dmaaddr page_phys_addr[];
};
/* CQE count */
__le32 dw7_val;
__le32 dw8_flags;
__le32 rsvd36;
- struct sli4_dmaaddr page_phys_addr[0];
+ struct sli4_dmaaddr page_phys_addr[];
};
struct sli4_rsp_cmn_create_mq_ext {
__le32 dw6_flags;
__le32 rsvd28;
__le32 rsvd32;
- struct sli4_dmaaddr page_phys_addr[0];
+ struct sli4_dmaaddr page_phys_addr[];
};
enum sli4_create_rq_e {
__le16 base_cq_id;
__le16 rsvd26;
__le32 rsvd42;
- struct sli4_dmaaddr page_phys_addr[0];
+ struct sli4_dmaaddr page_phys_addr[];
};
struct sli4_rsp_rq_create_v2 {
__le32 read_offset;
u8 object_name[104];
__le32 host_buffer_descriptor_count;
- struct sli4_bde host_buffer_descriptor[0];
+ struct sli4_bde host_buffer_descriptor[];
};
#define RSP_COM_READ_OBJ_EOF 0x80000000
__le32 write_offset;
u8 object_name[104];
__le32 host_buffer_descriptor_count;
- struct sli4_bde host_buffer_descriptor[0];
+ struct sli4_bde host_buffer_descriptor[];
};
#define RSP_CHANGE_STATUS 0xff
__le32 read_offset;
u8 object_name[104];
__le32 host_buffer_descriptor_count;
- struct sli4_bde host_buffer_descriptor[0];
+ struct sli4_bde host_buffer_descriptor[];
};
enum sli4_rqst_set_dump_flags {
u8 descriptor_type;
u8 descriptor_length;
__le16 rsvd16;
- __le32 type_specific[0];
+ __le32 type_specific[];
};
enum sli4_pcie_desc_flags {
struct sli4_rqst_hdr hdr;
__le16 rpi_offset;
__le16 page_count;
- struct sli4_dmaaddr page_descriptor[0];
+ struct sli4_dmaaddr page_descriptor[];
};
#define SLI4_HDR_TEMPLATE_SIZE 64
bool process_evt;
u32 evt_ctx;
struct kref ref_count;
- char event_data[0] __aligned(4);
+ char event_data[] __aligned(4);
};
uint16_t rsrvd;
struct qla84_mgmt_param mgmtp;/* parameters for cmd */
uint32_t len; /* bytes in payload following this struct */
- uint8_t payload[0]; /* payload for cmd */
+ uint8_t payload[]; /* payload for cmd */
};
struct qla_bsg_a84_mgmt {
struct qla_image_version_list {
uint32_t count;
- struct qla_image_version version[0];
+ struct qla_image_version version[];
} __packed;
struct qla_status_reg {
struct ql_vnd_stats {
u64 entry_count; /* Num of entries */
u64 rservd;
- struct ql_vnd_stat_entry entry[0]; /* Place holder of entries */
+ struct ql_vnd_stat_entry entry[]; /* Place holder of entries */
} __packed;
struct ql_vnd_host_stats_resp {
struct app_pinfo_reply {
uint8_t port_count;
uint8_t reserved[VND_CMD_APP_RESERVED_SIZE];
- struct app_pinfo ports[0];
+ struct app_pinfo ports[];
} __packed;
struct app_sinfo_req {
struct app_stats_reply {
uint8_t elem_count;
- struct app_sinfo elem[0];
+ struct app_sinfo elem[];
} __packed;
struct qla_sa_update_frame {
__le16 length;
__le16 checksum;
__le16 unused;
- struct qla_flt_region region[0];
+ struct qla_flt_region region[];
};
#define FLT_REGION_SIZE 16
uint8_t out_RISC_reg_dump[256]; /* 80 -17F */
uint8_t in_RISC_reg_dump[256]; /*180 -27F */
- uint8_t in_out_RISC_stack_dump[0]; /*280 - ??? */
+ uint8_t in_out_RISC_stack_dump[]; /*280 - ??? */
};
struct conn_event_log_entry {
u8 id:4;
u8 plen:4;
u8 seq;
- u8 payload[0];
+ u8 payload[];
};
#define c2h_evt_exist(c2h_evt) ((c2h_evt)->id || (c2h_evt)->plen)
struct setprobereqextraie_parm {
unsigned char e_id;
unsigned char ie_len;
- unsigned char ie[0];
+ unsigned char ie[];
};
struct setassocreqextraie_parm {
unsigned char e_id;
unsigned char ie_len;
- unsigned char ie[0];
+ unsigned char ie[];
};
struct setproberspextraie_parm {
unsigned char e_id;
unsigned char ie_len;
- unsigned char ie[0];
+ unsigned char ie[];
};
struct setassocrspextraie_parm {
unsigned char e_id;
unsigned char ie_len;
- unsigned char ie[0];
+ unsigned char ie[];
};
struct addBaReq_parm {
struct setprobereqextraie_parm {
unsigned char e_id;
unsigned char ie_len;
- unsigned char ie[0];
+ unsigned char ie[];
};
struct setassocreqextraie_parm {
unsigned char e_id;
unsigned char ie_len;
- unsigned char ie[0];
+ unsigned char ie[];
};
struct setproberspextraie_parm {
unsigned char e_id;
unsigned char ie_len;
- unsigned char ie[0];
+ unsigned char ie[];
};
struct setassocrspextraie_parm {
unsigned char e_id;
unsigned char ie_len;
- unsigned char ie[0];
+ unsigned char ie[];
};
struct addBaReq_parm {
struct ieee_param_ex {
u32 cmd;
u8 sta_addr[ETH_ALEN];
- u8 data[0];
+ u8 data[];
};
struct sta_data {
u8 id:4;
u8 plen:4;
u8 seq;
- u8 payload[0];
+ u8 payload[];
};
struct c2h_evt_hdr_88xx {
/* Size of message data. */
unsigned int size;
- char data[0]; /* message */
+ char data[]; /* message */
};
struct vchiq_element {
struct visor_vbus_headerinfo hdr_info;
struct visor_vbus_deviceinfo chp_info;
struct visor_vbus_deviceinfo bus_info;
- struct visor_vbus_deviceinfo dev_info[0];
+ struct visor_vbus_deviceinfo dev_info[];
} __packed;
#endif
SECURITY_BUFFER WorkstationName; /* RFC 1001 and ASCII */
struct ntlmssp_version Version;
/* SECURITY_BUFFER */
- char DomainString[0];
+ char DomainString[];
/* followed by WorkstationString */
} __packed;
struct ext4_fc_dentry_info {
__le32 fc_parent_ino;
__le32 fc_ino;
- __u8 fc_dname[0];
+ __u8 fc_dname[];
};
/* Value structure for EXT4_FC_TAG_INODE and EXT4_FC_TAG_INODE_PARTIAL. */
struct ext4_fc_inode {
__le32 fc_ino;
- __u8 fc_raw_inode[0];
+ __u8 fc_raw_inode[];
};
/* Value structure for tag EXT4_FC_TAG_TAIL. */
struct ksmbd_spnego_authen_request {
__u32 handle;
__u16 spnego_blob_len; /* the length of spnego_blob */
- __u8 spnego_blob[0]; /*
+ __u8 spnego_blob[]; /*
* the GSS token from SecurityBuffer of
* SMB2 SESSION SETUP request
*/
struct target_info {
__le16 Type;
__le16 Length;
- __u8 Content[0];
+ __u8 Content[];
} __packed;
struct negotiate_message {
* struct security_buffer for version info not present since we
* do not set the version is present flag
*/
- char DomainString[0];
+ char DomainString[];
/* followed by WorkstationString */
} __packed;
* struct security_buffer for version info not present since we
* do not set the version is present flag
*/
- char UserString[0];
+ char UserString[];
} __packed;
struct ntlmv2_resp {
__u8 Reserved[7];
__u64 RootDirectory; /* MBZ for network operations (why says spec?) */
__le32 FileNameLength;
- char FileName[0]; /* New name to be assigned */
+ char FileName[]; /* New name to be assigned */
} __packed; /* level 10 Set */
struct smb2_file_link_info { /* encoding of request for level 11 */
__u8 Reserved[7];
__u64 RootDirectory; /* MBZ for network operations (why says spec?) */
__le32 FileNameLength;
- char FileName[0]; /* Name to be assigned to new link */
+ char FileName[]; /* Name to be assigned to new link */
} __packed; /* level 11 Set */
/*
struct smb2_file_alt_name_info {
__le32 FileNameLength;
- char FileName[0];
+ char FileName[];
} __packed;
struct smb2_file_stream_info {
__le32 StreamNameLength;
__le64 StreamSize;
__le64 StreamAllocationSize;
- char StreamName[0];
+ char StreamName[];
} __packed;
struct smb2_file_eof_info { /* encoding of request for level 10 */
struct completion *completion;
struct rdma_rw_ctx rw_ctx;
struct sg_table sgt;
- struct scatterlist sg_list[0];
+ struct scatterlist sg_list[];
};
static inline int get_buf_page_count(void *buf, int size)
struct xattr_smb_acl {
int count;
int next;
- struct xattr_acl_entry entries[0];
+ struct xattr_acl_entry entries[];
};
/* 64bytes hash in xattr_ntacl is computed with sha256 */
* space bitmap follows immediately after; and we have a third buffer
* for storing intermediate bitmap results.
*/
- uint8_t buf[0];
+ uint8_t buf[];
};
/* A place to store attribute values. */
struct rcu_head rcu;
#endif
unsigned int nr;
- void *tables[0];
+ void *tables[];
};
#define MAX_TABLE_BATCH \
struct mmu_gather_batch *next;
unsigned int nr;
unsigned int max;
- struct page *pages[0];
+ struct page *pages[];
};
#define MAX_GATHER_BATCH \
struct greybus_descriptor_string {
__u8 length;
__u8 id;
- __u8 string[0];
+ __u8 string[];
} __packed;
/*
struct greybus_manifest {
struct greybus_manifest_header header;
- struct greybus_descriptor descriptors[0];
+ struct greybus_descriptor descriptors[];
} __packed;
#endif /* __GREYBUS_MANIFEST_H */
struct gb_svc *svc;
/* Private data for the host driver */
- unsigned long hd_priv[0] __aligned(sizeof(s64));
+ unsigned long hd_priv[] __aligned(sizeof(s64));
};
#define to_gb_host_device(d) container_of(d, struct gb_host_device, dev)
bool disconnected;
- struct gb_interface *interfaces[0];
+ struct gb_interface *interfaces[];
};
#define to_gb_module(d) container_of(d, struct gb_module, dev)
struct i3c_ccc_defslvs {
u8 count;
struct i3c_ccc_dev_desc master;
- struct i3c_ccc_dev_desc slaves[0];
+ struct i3c_ccc_dev_desc slaves[];
} __packed;
/**
*/
struct i3c_ccc_setbrgtgt {
u8 count;
- struct i3c_ccc_bridged_slave_desc bslaves[0];
+ struct i3c_ccc_bridged_slave_desc bslaves[];
} __packed;
/**
*/
struct i3c_ccc_setxtime {
u8 subcmd;
- u8 data[0];
+ u8 data[];
} __packed;
#define I3C_CCC_GETXTIME_SYNC_MODE BIT(0)
void (*power_off)(void);
char *fw_alternative_path;
int device_count;
- struct brcmfmac_pd_device devices[0];
+ struct brcmfmac_pd_device devices[];
};
uint8_t svid_count; /* Number of SVIDs partner sent */
uint16_t reserved;
uint32_t discovery_vdo[6]; /* Max VDOs allowed after VDM header is 6 */
- struct svid_mode_info svids[0];
+ struct svid_mode_info svids[];
} __ec_align1;
/* USB Type-C commands for AP-controlled device policy. */
#define MGMT_READ_CONTROLLER_CAP_SIZE 0
struct mgmt_rp_read_controller_cap {
__le16 cap_len;
- __u8 cap[0];
+ __u8 cap[];
} __packed;
#define MGMT_OP_READ_EXP_FEATURES_INFO 0x0049
int len;
__be32 hdr;
- u8 data[0];
+ u8 data[];
};
struct ioam6_pernet_data {
uint32_t ext_id;
uint32_t ch_mask;
uint32_t reserved;
- int32_t ch_coeffs[0];
+ int32_t ch_coeffs[];
} __packed;
/**
struct sof_ipc_cmd_hdr hdr;
uint32_t num_ch_map;
uint32_t reserved[3];
- struct sof_ipc_channel_map ch_map[0];
+ struct sof_ipc_channel_map ch_map[];
} __packed;
#endif /* __IPC_CHANNEL_MAP_H__ */
struct fdt_node_header {
fdt32_t tag;
- char name[0];
+ char name[];
};
struct fdt_property {
fdt32_t tag;
fdt32_t len;
fdt32_t nameoff;
- char data[0];
+ char data[];
};
#endif /* !__ASSEMBLY */
struct snd_sst_async_msg {
u32 msg_id; /* Async msg id */
- u32 payload[0];
+ u32 payload[];
};
struct snd_sst_async_err_msg {
u8 pipe_id;
u8 rsvd;
u16 len;
- char bytes[0];
+ char bytes[];
};
#define MAX_VTSV_FILES 2
u8 reserved[8];
u32 priv_param_length;
/* Input pin formats followed by output ones. */
- struct skl_pin_format pins_fmt[0];
+ struct skl_pin_format pins_fmt[];
} __packed;
struct skl_algo_cfg {
struct perf_record_id_index {
struct perf_event_header header;
__u64 nr;
- struct id_index_entry entries[0];
+ struct id_index_entry entries[];
};
struct perf_record_auxtrace_info {