Lines Matching refs:cmd
91 u8 *cmd; member
323 dev->cmd, IO_BUFFER_LENGTH, in opal_send_cmd()
532 static size_t remaining_size(struct opal_dev *cmd) in remaining_size() argument
534 return IO_BUFFER_LENGTH - cmd->pos; in remaining_size()
537 static bool can_add(int *err, struct opal_dev *cmd, size_t len) in can_add() argument
542 if (remaining_size(cmd) < len) { in can_add()
551 static void add_token_u8(int *err, struct opal_dev *cmd, u8 tok) in add_token_u8() argument
553 if (!can_add(err, cmd, 1)) in add_token_u8()
556 cmd->cmd[cmd->pos++] = tok; in add_token_u8()
559 static void add_short_atom_header(struct opal_dev *cmd, bool bytestring, in add_short_atom_header() argument
570 add_token_u8(&err, cmd, atom); in add_short_atom_header()
573 static void add_medium_atom_header(struct opal_dev *cmd, bool bytestring, in add_medium_atom_header() argument
583 cmd->cmd[cmd->pos++] = header0; in add_medium_atom_header()
584 cmd->cmd[cmd->pos++] = len; in add_medium_atom_header()
587 static void add_token_u64(int *err, struct opal_dev *cmd, u64 number) in add_token_u64() argument
593 add_token_u8(err, cmd, number); in add_token_u64()
600 if (!can_add(err, cmd, len + 1)) { in add_token_u64()
604 add_short_atom_header(cmd, false, false, len); in add_token_u64()
606 add_token_u8(err, cmd, number >> (len * 8)); in add_token_u64()
609 static u8 *add_bytestring_header(int *err, struct opal_dev *cmd, size_t len) in add_bytestring_header() argument
619 if (!can_add(err, cmd, header_len + len)) { in add_bytestring_header()
625 add_short_atom_header(cmd, true, false, len); in add_bytestring_header()
627 add_medium_atom_header(cmd, true, false, len); in add_bytestring_header()
629 return &cmd->cmd[cmd->pos]; in add_bytestring_header()
632 static void add_token_bytestring(int *err, struct opal_dev *cmd, in add_token_bytestring() argument
637 start = add_bytestring_header(err, cmd, len); in add_token_bytestring()
641 cmd->pos += len; in add_token_bytestring()
676 static void set_comid(struct opal_dev *cmd, u16 comid) in set_comid() argument
678 struct opal_header *hdr = (struct opal_header *)cmd->cmd; in set_comid()
686 static int cmd_finalize(struct opal_dev *cmd, u32 hsn, u32 tsn) in cmd_finalize() argument
696 add_token_u8(&err, cmd, OPAL_ENDLIST); in cmd_finalize()
698 add_token_u8(&err, cmd, OPAL_ENDOFDATA); in cmd_finalize()
699 add_token_u8(&err, cmd, OPAL_STARTLIST); in cmd_finalize()
700 add_token_u8(&err, cmd, 0); in cmd_finalize()
701 add_token_u8(&err, cmd, 0); in cmd_finalize()
702 add_token_u8(&err, cmd, 0); in cmd_finalize()
703 add_token_u8(&err, cmd, OPAL_ENDLIST); in cmd_finalize()
710 hdr = (struct opal_header *) cmd->cmd; in cmd_finalize()
715 hdr->subpkt.length = cpu_to_be32(cmd->pos - sizeof(*hdr)); in cmd_finalize()
716 while (cmd->pos % 4) { in cmd_finalize()
717 if (cmd->pos >= IO_BUFFER_LENGTH) { in cmd_finalize()
721 cmd->cmd[cmd->pos++] = 0; in cmd_finalize()
723 hdr->pkt.length = cpu_to_be32(cmd->pos - sizeof(hdr->cp) - in cmd_finalize()
725 hdr->cp.length = cpu_to_be32(cmd->pos - sizeof(hdr->cp)); in cmd_finalize()
1009 print_buffer(dev->cmd, dev->pos); in parse_and_check_status()
1023 memset(dev->cmd, 0, IO_BUFFER_LENGTH); in clear_opal_cmd()
1103 print_buffer(dev->cmd, dev->pos); in finalize_and_send()
2138 kfree(dev->cmd); in free_opal_dev()
2155 dev->cmd = kmalloc(IO_BUFFER_LENGTH, GFP_KERNEL); in init_opal_dev()
2156 if (!dev->cmd) in init_opal_dev()
2178 kfree(dev->cmd); in init_opal_dev()
2647 int sed_ioctl(struct opal_dev *dev, unsigned int cmd, void __user *arg) in sed_ioctl() argument
2659 p = memdup_user(arg, _IOC_SIZE(cmd)); in sed_ioctl()
2663 switch (cmd) { in sed_ioctl()