MODULE UsbDebug; (** AUTHOR "staubesv"; PURPOSE "USB Debug Code Control"; *) (** * This module provides a central access point to the USB core system debug and trace options. * * Notes: * - In case you want to boot from USB storage devices, you should set On, Trace and StrongChecks to FALSE to * keep the bootfile small * - If you are developing USB software, it is recommended to set all constants to TRUE. You can use UsbInfo.Mod * to selectively enable/disable trace options * * History: * * 06.02.2006 First release (staubesv) * 24.02.2006 Added traceCustom trace option / debug levels (staubesv) * 05.01.2007 Added traceShortPacket trace option (staubesv) *) CONST (** Show device attachments/removals, driver installation & HCs found *) Verbose* = TRUE; (** Debug Levels *) Default* = 0; (** For production code. Show just top-level errors (e.g. device could not be connected), not details *) Errors* = 1; (** Show all errors that will cause malfunction of busses/devices *) Warnings* = 2; (** Also show warnings and errors that maybe can be recovered from *) (** Debug Level *) Level* = Errors; (** Enable code related to performance monitoring *) PerformanceMonitoring* = TRUE; (** Enable statistics code *) Stats* = TRUE; (** Enable ASSERTs that really shouldn't fail *) StrongChecks* = TRUE; (** Enable trace code. Trace options below can only be used if this constant is set to TRUE *) Trace* = FALSE; VAR (** Note: Trace must be set to TRUE if you want to use the trace options below *) (** USB core *) (** Usb.Mod *) traceDm*, (* Show (un)registering of USB device drivers at DriverManager *) traceParsing*, (* Trace parsing of USB standard descriptors *) traceDeviceStates*, (* Show USB device state transitions *) (** UsbHcdi.Mod *) traceControl*, (* Show control transfers *) traceControlData*, (* Show data phase of control transfers *) traceTransfers*, (* Trace bulk/interrupt/isochronous transfers *) traceFailed*, (* Show trace of transfers that don't result in Usbdi.Ok or Shortpacket *) traceShortPackets*, (* Show trace of transfers that result in Usbdi.ShortPacket *) tracePipes*, (* De-/allocation of USB pipes, pipe.IsHalted, pipe.ClearHalt *) traceCopying*, (* Show message when data has to be copied (non-zero-copy operation) *) traceIoc*, (* Show calls caused by interrupt on completion (IOC) *) (** UsbUhci.Mod, UsbOhci.Mod & UsbEhci.Mod *) traceInit*, (* Trace host controller initialization *) traceInterrupts*, (* Show interrupts of host controllers *) traceQueuing*, (* Addition/removal of queue heads *) (** UsbHubDriver.Mod *) traceHubRequests*, (* Trace hub class-specific requests *) traceSuspend*, (* Trace suspend/resume related code *) traceConnects*, (* Trace USB device connect/disconnect related code / hub status change *) (** USB mass storage driver *) (* UsbStorage.Mod *) traceInfo*, (* Show results of ReadCapacity & Inquiry commands *) traceSensing*, (* Show sense codes *) traceScRequests*, (* Trace mass storage device class-specific requests *) traceScTransfers*, (* Trace transfer from storage device class point of view *) traceCSWs*, (* Show Command Status Wrappers (CSW) *) traceCBWs*, (* Show Command Block Wrappers (CBW) *) traceScInit*, (* Trace init of mass storage devices *) (** Custom trace option *) traceCustom* (* The Bluebottle release won't contain custom traces. Use this for your *) (* own purposes. *) : BOOLEAN; END UsbDebug.