Implement an ATA driver, Add vfsmount/vfsunmount syscalls
This commit is contained in:
@ -23,16 +23,18 @@ int32_t ramsd_init(struct StoreDev *sd, void *extra) {
|
||||
return E_OK;
|
||||
}
|
||||
|
||||
int32_t ramsd_read(struct StoreDev *sd, uint8_t *const buffer, size_t n, size_t off) {
|
||||
int32_t ramsd_read(struct StoreDev *sd, uint8_t *const buffer, ptrdiff_t sector, ptrdiff_t off, size_t size) {
|
||||
RamSd *ramsd = &sd->sd.ramsd;
|
||||
spinlock_acquire(&sd->spinlock);
|
||||
hal_memcpy(buffer, sd->sd.ramsd.buffer + off, MIN(n, sd->sd.ramsd.capacity - off));
|
||||
hal_memcpy(buffer, ramsd->buffer + (sector * sd->sectorsize + off), size);
|
||||
spinlock_release(&sd->spinlock);
|
||||
return E_OK;
|
||||
}
|
||||
|
||||
int32_t ramsd_write(struct StoreDev *sd, const uint8_t *const buffer, size_t n, size_t off) {
|
||||
int32_t ramsd_write(struct StoreDev *sd, const uint8_t *const buffer, ptrdiff_t sector, ptrdiff_t off, size_t size) {
|
||||
RamSd *ramsd = &sd->sd.ramsd;
|
||||
spinlock_acquire(&sd->spinlock);
|
||||
hal_memcpy(sd->sd.ramsd.buffer + off, buffer, MIN(n, sd->sd.ramsd.capacity - off));
|
||||
hal_memcpy(ramsd->buffer + (sector * sd->sectorsize + off), buffer, size);
|
||||
spinlock_release(&sd->spinlock);
|
||||
return E_OK;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user