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
refactor: change the disk io api to accept device instead of port struct
[lunaix-os.git]
/
lunaix-os
/
includes
/
hal
/
ahci
/
hba.h
diff --git
a/lunaix-os/includes/hal/ahci/hba.h
b/lunaix-os/includes/hal/ahci/hba.h
index 19f76cd08603f8e57272d57685a7e01a586c0c43..91ecfedc3545ef4b34d7f3d57d2bedfe6f22c2a5 100644
(file)
--- a/
lunaix-os/includes/hal/ahci/hba.h
+++ b/
lunaix-os/includes/hal/ahci/hba.h
@@
-32,6
+32,7
@@
#define HBA_PxCMD_ST (1)
#define HBA_PxINTR_DMA (1 << 2)
#define HBA_PxINTR_D2HR (1)
#define HBA_PxCMD_ST (1)
#define HBA_PxINTR_DMA (1 << 2)
#define HBA_PxINTR_D2HR (1)
+#define HBA_PxINTR_DPE (1 << 5)
#define HBA_PxTFD_ERR (1)
#define HBA_PxTFD_BSY (1 << 7)
#define HBA_PxTFD_DRQ (1 << 3)
#define HBA_PxTFD_ERR (1)
#define HBA_PxTFD_BSY (1 << 7)
#define HBA_PxTFD_DRQ (1 << 3)
@@
-101,15
+102,19
@@
struct hba_device
uint8_t cbd_size;
uint8_t last_error;
uint8_t last_status;
uint8_t cbd_size;
uint8_t last_error;
uint8_t last_status;
+ uint32_t alignment_offset;
+ uint32_t block_per_sec;
+ uint32_t capabilities;
+ struct hba_port* port;
struct
{
struct
{
- int (*identify)(struct hba_
port* port
);
- int (*read_buffer)(struct hba_
port* port
,
+ int (*identify)(struct hba_
device* dev
);
+ int (*read_buffer)(struct hba_
device* dev
,
uint64_t lba,
void* buffer,
uint32_t size);
uint64_t lba,
void* buffer,
uint32_t size);
- int (*write_buffer)(struct hba_
port* port
,
+ int (*write_buffer)(struct hba_
device* dev
,
uint64_t lba,
void* buffer,
uint32_t size);
uint64_t lba,
void* buffer,
uint32_t size);
@@
-136,9
+141,10
@@
struct ahci_hba
};
int
};
int
-hba_alloc_slot(struct hba_port* port,
- struct hba_cmdt** cmdt,
- struct hba_cmdh** cmdh,
- uint16_t header_options);
+hba_prepare_cmd(struct hba_port* port,
+ struct hba_cmdt** cmdt,
+ struct hba_cmdh** cmdh,
+ void* buffer,
+ unsigned int size);
#endif /* __LUNAIX_HBA_H */
#endif /* __LUNAIX_HBA_H */