git://scm.lunaixsky.com
/
lunaix-os.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
feat: fstat now handle symbolic link
[lunaix-os.git]
/
lunaix-os
/
hal
/
ahci
/
ahci.c
diff --git
a/lunaix-os/hal/ahci/ahci.c
b/lunaix-os/hal/ahci/ahci.c
index c20e21dffe9bb248ae7f6f5c043b5556c34bab43..220038ac6d112602ceb17831117ac638f7f0ce3a 100644
(file)
--- a/
lunaix-os/hal/ahci/ahci.c
+++ b/
lunaix-os/hal/ahci/ahci.c
@@
-31,6
+31,7
@@
#define HBA_CLB_SIZE 1024
#define HBA_MY_IE (HBA_PxINTR_DHR | HBA_PxINTR_TFE | HBA_PxINTR_OF)
#define HBA_CLB_SIZE 1024
#define HBA_MY_IE (HBA_PxINTR_DHR | HBA_PxINTR_TFE | HBA_PxINTR_OF)
+#define AHCI_DEVCLASS DEVCLASS(DEVIF_PCI, DEVFN_STORAGE, DEV_SATA, 0)
// #define DO_HBA_FULL_RESET
// #define DO_HBA_FULL_RESET
@@
-43,6
+44,8
@@
static char sata_ifs[][20] = { "Not detected",
"SATA II (3.0Gbps)",
"SATA III (6.0Gbps)" };
"SATA II (3.0Gbps)",
"SATA III (6.0Gbps)" };
+static struct devclass ahci_class = AHCI_DEVCLASS;
+
extern void
ahci_fsexport(struct block_dev* bdev, void* fs_node);
extern void
ahci_fsexport(struct block_dev* bdev, void* fs_node);
@@
-209,6
+212,7
@@
ahci_register_device(struct hba_device* hbadev)
bdev->end_lba = hbadev->max_lba;
bdev->blk_size = hbadev->block_size;
bdev->end_lba = hbadev->max_lba;
bdev->blk_size = hbadev->block_size;
+ bdev->class = &ahci_class;
block_mount(bdev, ahci_fsexport);
}
block_mount(bdev, ahci_fsexport);
}
@@
-443,7
+447,7
@@
static struct pci_device_def ahcidef = {
.dev_vendor = PCI_ID_ANY,
.dev_id = PCI_ID_ANY,
.devdef = { .class = DEVCLASS(DEVIF_PCI, DEVFN_STORAGE, DEV_SATA, 0),
.dev_vendor = PCI_ID_ANY,
.dev_id = PCI_ID_ANY,
.devdef = { .class = DEVCLASS(DEVIF_PCI, DEVFN_STORAGE, DEV_SATA, 0),
- .name = "S
ATA AHCI
",
+ .name = "S
erial ATA Controller
",
.init_for = ahci_driver_init }
};
EXPORT_DEVICE(ahci, &ahcidef.devdef, load_on_demand);
\ No newline at end of file
.init_for = ahci_driver_init }
};
EXPORT_DEVICE(ahci, &ahcidef.devdef, load_on_demand);
\ No newline at end of file