Feature/sotrage system overhaul #73
No files matched your search
@@ -1,3 +1,20 @@
|
|||||||
|
<!--
|
||||||
|
Copyright 2026 Aaron Hance
|
||||||
|
Author: Aaron Hance <[email protected]>
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
-->
|
||||||
|
|
||||||
# USB mass storage
|
# USB mass storage
|
||||||
|
|
||||||
`driver.storage.ctl.usb` implements SCSI transparent commands over USB Mass
|
`driver.storage.ctl.usb` implements SCSI transparent commands over USB Mass
|
||||||
|
|||||||
@@ -1,3 +1,20 @@
|
|||||||
|
<!--
|
||||||
|
Copyright 2026 Aaron Hance
|
||||||
|
Author: Aaron Hance <[email protected]>
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
-->
|
||||||
|
|
||||||
# driver.storage.mgr
|
# driver.storage.mgr
|
||||||
|
|
||||||
Physical storage device registry and I/O dispatch manager.
|
Physical storage device registry and I/O dispatch manager.
|
||||||
|
|||||||
@@ -1,6 +1,21 @@
|
|||||||
|
// Copyright 2026 Aaron Hance
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
{
|
{
|
||||||
Driver->Bus->driver.bus.usb->USBCore - driver.bus.usb Core Enumeration, Transfer API & HC Management.
|
Driver->Bus->driver.bus.usb->USBCore - driver.bus.usb Core Enumeration, Transfer API & HC Management.
|
||||||
|
|
||||||
|
@author(Aaron Hance <[email protected]>)
|
||||||
@author(Kieron Morris <[email protected]>)
|
@author(Kieron Morris <[email protected]>)
|
||||||
}
|
}
|
||||||
unit driver.bus.usb.core;
|
unit driver.bus.usb.core;
|
||||||
|
|||||||
@@ -1,3 +1,17 @@
|
|||||||
|
// Copyright 2026 Aaron Hance
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
{
|
{
|
||||||
Driver->Bus->driver.bus.usb->driver.bus.usb.ehci - Enhanced Host Controller Interface Driver.
|
Driver->Bus->driver.bus.usb->driver.bus.usb.ehci - Enhanced Host Controller Interface Driver.
|
||||||
|
|
||||||
@@ -8,6 +22,7 @@
|
|||||||
driver.bus.usb.ehci also handles companion controller (driver.bus.usb.uhci/driver.bus.usb.ohci) routing for
|
driver.bus.usb.ehci also handles companion controller (driver.bus.usb.uhci/driver.bus.usb.ohci) routing for
|
||||||
full/low-speed devices via the CONFIGFLAG and PORTSC port-owner bits.
|
full/low-speed devices via the CONFIGFLAG and PORTSC port-owner bits.
|
||||||
|
|
||||||
|
@author(Aaron Hance <[email protected]>)
|
||||||
@author(Kieron Morris <[email protected]>)
|
@author(Kieron Morris <[email protected]>)
|
||||||
}
|
}
|
||||||
unit driver.bus.usb.ehci;
|
unit driver.bus.usb.ehci;
|
||||||
|
|||||||
@@ -1,3 +1,17 @@
|
|||||||
|
// Copyright 2026 Aaron Hance
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
{
|
{
|
||||||
Driver->Bus->driver.bus.usb->driver.bus.usb.ohci - Open Host Controller Interface Driver.
|
Driver->Bus->driver.bus.usb->driver.bus.usb.ohci - Open Host Controller Interface Driver.
|
||||||
|
|
||||||
@@ -5,6 +19,7 @@
|
|||||||
driver.bus.usb.ohci uses Endpoint Descriptors (ED), Transfer Descriptors (TD), and a
|
driver.bus.usb.ohci uses Endpoint Descriptors (ED), Transfer Descriptors (TD), and a
|
||||||
Host Controller Communication Area (HCCA) for scheduling and completion.
|
Host Controller Communication Area (HCCA) for scheduling and completion.
|
||||||
|
|
||||||
|
@author(Aaron Hance <[email protected]>)
|
||||||
@author(Kieron Morris <[email protected]>)
|
@author(Kieron Morris <[email protected]>)
|
||||||
}
|
}
|
||||||
unit driver.bus.usb.ohci;
|
unit driver.bus.usb.ohci;
|
||||||
|
|||||||
@@ -1,6 +1,21 @@
|
|||||||
|
// Copyright 2026 Aaron Hance
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
{
|
{
|
||||||
Driver->Bus->driver.bus.usb->USBTypes - Shared driver.bus.usb Types, Constants & HC Abstraction.
|
Driver->Bus->driver.bus.usb->USBTypes - Shared driver.bus.usb Types, Constants & HC Abstraction.
|
||||||
|
|
||||||
|
@author(Aaron Hance <[email protected]>)
|
||||||
@author(Kieron Morris <[email protected]>)
|
@author(Kieron Morris <[email protected]>)
|
||||||
}
|
}
|
||||||
unit driver.bus.usb.types;
|
unit driver.bus.usb.types;
|
||||||
|
|||||||
@@ -1,7 +1,25 @@
|
|||||||
|
// Copyright 2021 Aaron Hance
|
||||||
|
// Copyright 2026 Aaron Hance
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
{ USB Mass Storage: SCSI transparent commands over Bulk-Only Transport.
|
{ USB Mass Storage: SCSI transparent commands over Bulk-Only Transport.
|
||||||
LUN 0, one interface, READ/WRITE(10), 512..4096 byte sectors.
|
LUN 0, one interface, READ/WRITE(10), 512..4096 byte sectors.
|
||||||
A persistent worker owns all storage I/O. No caller buffer is ever DMA-visible.
|
A persistent worker owns all storage I/O. No caller buffer is ever DMA-visible.
|
||||||
Protocol reference: https://www.usb.org/sites/default/files/usbmassbulk_10.pdf }
|
Protocol reference: https://www.usb.org/sites/default/files/usbmassbulk_10.pdf }
|
||||||
|
{
|
||||||
|
@author(Aaron Hance <ah@aaronhance.me>)
|
||||||
|
}
|
||||||
unit driver.storage.ctl.usb;
|
unit driver.storage.ctl.usb;
|
||||||
|
|
||||||
interface
|
interface
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
// Copyright 2021 Aaron Hance
|
// Copyright 2021 Aaron Hance
|
||||||
|
// Copyright 2026 Aaron Hance
|
||||||
//
|
//
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
// you may not use this file except in compliance with the License.
|
// you may not use this file except in compliance with the License.
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
// Copyright 2021 Kieron Morris
|
// Copyright 2021 Kieron Morris
|
||||||
|
// Copyright 2026 Aaron Hance
|
||||||
//
|
//
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
// you may not use this file except in compliance with the License.
|
// you may not use this file except in compliance with the License.
|
||||||
|
|||||||
@@ -1,3 +1,17 @@
|
|||||||
|
// Copyright 2026 Aaron Hance
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
{
|
{
|
||||||
ProcessManager - Preemptive process management for the Asuro kernel.
|
ProcessManager - Preemptive process management for the Asuro kernel.
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,20 @@
|
|||||||
|
// Copyright 2026 Aaron Hance
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
{
|
||||||
|
@author(Aaron Hance <ah@aaronhance.me>)
|
||||||
|
}
|
||||||
unit test;
|
unit test;
|
||||||
|
|
||||||
interface
|
interface
|
||||||
|
|||||||
Reference in new issue
Block a user