• Masahiro Yamada's avatar
    scsi: use __u{8,16,32,64} instead of uint{8,16,32,64}_t in uapi headers · 075c2b6b
    Masahiro Yamada authored
    When CONFIG_UAPI_HEADER_TEST=y, exported headers are compile-tested to make
    sure they can be included from user-space.
    
    Currently, scsi_bsg_fc.h, scsi_netlink.h, and scsi_netlink_fc.h are
    excluded from the test coverage. To make them join the compile-test, we
    need to fix the build errors attached below.
    
    For a case like this, we decided to use __u{8,16,32,64} variable types in
    this discussion:
    
      https://lkml.org/lkml/2019/6/5/18
    
    Build log:
    
      CC      usr/include/scsi/scsi_netlink_fc.h.s
      CC      usr/include/scsi/scsi_netlink.h.s
      CC      usr/include/scsi/scsi_bsg_fc.h.s
    In file included from ./usr/include/scsi/scsi_netlink_fc.h:10:0,
                     from <command-line>:32:
    ./usr/include/scsi/scsi_netlink.h:29:2: error: unknown type name  uint8_t
      uint8_t version;
      ^~~~~~~
    ./usr/include/scsi/scsi_netlink.h:30:2: error: unknown type name  uint8_t
      uint8_t transport;
      ^~~~~~~
    ./usr/include/scsi/scsi_netlink.h:31:2: error: unknown type name  uint16_t
      uint16_t magic;
      ^~~~~~~~
    ./usr/include/scsi/scsi_netlink.h:32:2: error: unknown type name  uint16_t
      uint16_t msgtype;
      ^~~~~~~~
      CC      usr/include/rdma/vmw_pvrdma-abi.h.s
    ./usr/include/scsi/scsi_netlink.h:33:2: error: unknown type name  uint16_t
      uint16_t msglen;
      ^~~~~~~~
    ./usr/include/scsi/scsi_netlink.h:34:33: error:  uint64_t  undeclared here (not in a function); did you mean  __uint128_t ?
     } __attribute__((aligned(sizeof(uint64_t))));
                                     ^~~~~~~~
                                     __uint128_t
    ./usr/include/scsi/scsi_netlink.h:78:2: error: expected specifier-qualifier-list before  uint64_t
      uint64_t vendor_id;
      ^~~~~~~~
    In file included from <command-line>:32:0:
    ./usr/include/scsi/scsi_netlink_fc.h:46:2: error: expected specifier-qualifier-list before  uint64_t
      uint64_t seconds;
      ^~~~~~~~
    make[2]: *** [scripts/Makefile.build;302: usr/include/scsi/scsi_netlink_fc.h.s] Error 1
    make[2]: *** Waiting for unfinished jobs....
    In file included from <command-line>:32:0:
    ./usr/include/scsi/scsi_netlink.h:29:2: error: unknown type name  uint8_t
      uint8_t version;
      ^~~~~~~
    ./usr/include/scsi/scsi_netlink.h:30:2: error: unknown type name  uint8_t
      uint8_t transport;
      ^~~~~~~
    ./usr/include/scsi/scsi_netlink.h:31:2: error: unknown type name  uint16_t
      uint16_t magic;
      ^~~~~~~~
    ./usr/include/scsi/scsi_netlink.h:32:2: error: unknown type name  uint16_t
      uint16_t msgtype;
      ^~~~~~~~
    ./usr/include/scsi/scsi_netlink.h:33:2: error: unknown type name  uint16_t
      uint16_t msglen;
      ^~~~~~~~
    ./usr/include/scsi/scsi_netlink.h:34:33: error:  uint64_t  undeclared here (not in a function); did you mean  __uint128_t ?
     } __attribute__((aligned(sizeof(uint64_t))));
                                     ^~~~~~~~
                                     __uint128_t
    ./usr/include/scsi/scsi_netlink.h:78:2: error: expected specifier-qualifier-list before  uint64_t
      uint64_t vendor_id;
      ^~~~~~~~
    make[2]: *** [scripts/Makefile.build;302: usr/include/scsi/scsi_netlink.h.s] Error 1
    In file included from <command-line>:32:0:
    ./usr/include/scsi/scsi_bsg_fc.h:69:2: error: unknown type name  uint8_t
      uint8_t  reserved;
      ^~~~~~~
    ./usr/include/scsi/scsi_bsg_fc.h:72:2: error: unknown type name  uint8_t
      uint8_t  port_id[3];
      ^~~~~~~
    ./usr/include/scsi/scsi_bsg_fc.h:90:2: error: unknown type name  uint8_t
      uint8_t  reserved;
      ^~~~~~~
    ./usr/include/scsi/scsi_bsg_fc.h:93:2: error: unknown type name  uint8_t
      uint8_t  port_id[3];
      ^~~~~~~
    ./usr/include/scsi/scsi_bsg_fc.h:114:2: error: unknown type name  uint8_t
      uint8_t  command_code;
      ^~~~~~~
    ./usr/include/scsi/scsi_bsg_fc.h:117:2: error: unknown type name  uint8_t
      uint8_t  port_id[3];
      ^~~~~~~
    ./usr/include/scsi/scsi_bsg_fc.h:154:2: error: unknown type name  uint32_t
      uint32_t status;  /* See FC_CTELS_STATUS_xxx */
      ^~~~~~~~
    ./usr/include/scsi/scsi_bsg_fc.h:158:3: error: unknown type name  uint8_t
       uint8_t action;  /* fragment_id for CT REJECT */
       ^~~~~~~
    ./usr/include/scsi/scsi_bsg_fc.h:159:3: error: unknown type name  uint8_t
       uint8_t reason_code;
       ^~~~~~~
    ./usr/include/scsi/scsi_bsg_fc.h:160:3: error: unknown type name  uint8_t
       uint8_t reason_explanation;
       ^~~~~~~
    ./usr/include/scsi/scsi_bsg_fc.h:161:3: error: unknown type name  uint8_t
       uint8_t vendor_unique;
       ^~~~~~~
    ./usr/include/scsi/scsi_bsg_fc.h:177:2: error: unknown type name  uint8_t
      uint8_t  reserved;
      ^~~~~~~
    ./usr/include/scsi/scsi_bsg_fc.h:180:2: error: unknown type name  uint8_t
      uint8_t  port_id[3];
      ^~~~~~~
    ./usr/include/scsi/scsi_bsg_fc.h:185:2: error: unknown type name  uint32_t
      uint32_t preamble_word0; /* revision & IN_ID */
      ^~~~~~~~
    ./usr/include/scsi/scsi_bsg_fc.h:186:2: error: unknown type name  uint32_t
      uint32_t preamble_word1; /* GS_Type, GS_SubType, Options, Rsvd */
      ^~~~~~~~
    ./usr/include/scsi/scsi_bsg_fc.h:187:2: error: unknown type name  uint32_t
      uint32_t preamble_word2; /* Cmd Code, Max Size */
      ^~~~~~~~
    ./usr/include/scsi/scsi_bsg_fc.h:207:2: error: unknown type name  uint64_t
      uint64_t vendor_id;
      ^~~~~~~~
    ./usr/include/scsi/scsi_bsg_fc.h:210:2: error: unknown type name  uint32_t
      uint32_t vendor_cmd[0];
      ^~~~~~~~
    ./usr/include/scsi/scsi_bsg_fc.h:217:2: error: unknown type name  uint32_t
      uint32_t vendor_rsp[0];
      ^~~~~~~~
    ./usr/include/scsi/scsi_bsg_fc.h:236:2: error: unknown type name  uint8_t
      uint8_t els_code;
      ^~~~~~~
    ./usr/include/scsi/scsi_bsg_fc.h:254:2: error: unknown type name  uint32_t
      uint32_t preamble_word0; /* revision & IN_ID */
      ^~~~~~~~
    ./usr/include/scsi/scsi_bsg_fc.h:255:2: error: unknown type name  uint32_t
      uint32_t preamble_word1; /* GS_Type, GS_SubType, Options, Rsvd */
      ^~~~~~~~
    ./usr/include/scsi/scsi_bsg_fc.h:256:2: error: unknown type name  uint32_t
      uint32_t preamble_word2; /* Cmd Code, Max Size */
      ^~~~~~~~
    ./usr/include/scsi/scsi_bsg_fc.h:268:2: error: unknown type name  uint32_t
      uint32_t msgcode;
      ^~~~~~~~
    ./usr/include/scsi/scsi_bsg_fc.h:292:2: error: unknown type name  uint32_t
      uint32_t result;
      ^~~~~~~~
    ./usr/include/scsi/scsi_bsg_fc.h:295:2: error: unknown type name  uint32_t
      uint32_t reply_payload_rcv_len;
      ^~~~~~~~
    Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
    Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
    075c2b6b
scsi_netlink_fc.h 1.23 KB