Lines Matching defs:fis
14 void sata_h2d_fis_new(struct sata_fis_reg_h2d* fis, uint8_t command, uint64_t lba, uint16_t sectors)
16 sata_h2d_fis_init(fis);
17 sata_h2d_set_command(fis, command);
18 sata_h2d_set_lba48(fis, lba);
19 sata_h2d_set_count(fis, sectors);
22 void sata_h2d_fis_init(struct sata_fis_reg_h2d* fis)
24 fis->type = SATA_FIS_TYPE_H2D;
39 fis->device |= (1 << 6);
42 void sata_h2d_set_command(struct sata_fis_reg_h2d* fis, uint8_t command)
44 fis->command = command;
49 fis->specialstuff |= (1 << 7);
52 void sata_h2d_set_feature(struct sata_fis_reg_h2d* fis, uint8_t feature)
54 fis->feature = feature;
57 void sata_h2d_set_lba28(struct sata_fis_reg_h2d* fis, uint32_t lba)
59 fis->lba0 = lba & 0xFF;
60 fis->lba1 = (lba >> 8) & 0xFF;
61 fis->lba2 = (lba >> 16) & 0xFF;
62 fis->device = (fis->device & ~0x0F) | ((lba >> 24) & 0x0F);
65 void sata_h2d_set_lba48(struct sata_fis_reg_h2d* fis, uint64_t lba)
67 fis->lba0 = lba & 0xFF;
68 fis->lba1 = (lba >> 8) & 0xFF;
69 fis->lba2 = (lba >> 16) & 0xFF;
70 fis->device &= 0xF0; // clear bits otherwise used by lba28
72 fis->lba3 = (lba >> 24) & 0xFF;
73 fis->lba4 = (lba >> 32) & 0xFF;
74 fis->lba5 = (lba >> 40) & 0xFF;
77 void sata_h2d_set_count(struct sata_fis_reg_h2d* fis, uint16_t count)
79 fis->countl = count & 0xFF;
80 fis->counth = (count >> 8) & 0xFF;