19b0e7716SRobert Mustacchi.\" 29b0e7716SRobert Mustacchi.\" This file and its contents are supplied under the terms of the 39b0e7716SRobert Mustacchi.\" Common Development and Distribution License ("CDDL"), version 1.0. 49b0e7716SRobert Mustacchi.\" You may only use this file in accordance with the terms of version 59b0e7716SRobert Mustacchi.\" 1.0 of the CDDL. 69b0e7716SRobert Mustacchi.\" 79b0e7716SRobert Mustacchi.\" A full copy of the text of the CDDL should have accompanied this 89b0e7716SRobert Mustacchi.\" source. A copy of the CDDL is also available via the Internet at 99b0e7716SRobert Mustacchi.\" http://www.illumos.org/license/CDDL. 109b0e7716SRobert Mustacchi.\" 119b0e7716SRobert Mustacchi.\" 129b0e7716SRobert Mustacchi.\" Copyright 2016 Joyent, Inc. 139b0e7716SRobert Mustacchi.\" 14*c5bab702SPeter Tribble.Dd Nov 26, 2017 159b0e7716SRobert Mustacchi.Dt USBA_HCDI_REGISTER 9F 169b0e7716SRobert Mustacchi.Os 179b0e7716SRobert Mustacchi.Sh NAME 189b0e7716SRobert Mustacchi.Nm usba_hcdi_register , 199b0e7716SRobert Mustacchi.Nm usba_hcdi_unregister 209b0e7716SRobert Mustacchi.Nd register and unregister HCD driver 219b0e7716SRobert Mustacchi.Sh SYNOPSIS 229b0e7716SRobert Mustacchi.In sys/usb/usba/hcdi.h 239b0e7716SRobert Mustacchi.Ft int 249b0e7716SRobert Mustacchi.Fo usba_hcdi_register 259b0e7716SRobert Mustacchi.Fa "usba_hcdi_register_args_t *args" 269b0e7716SRobert Mustacchi.Fa "uint_t flags" 279b0e7716SRobert Mustacchi.Fc 289b0e7716SRobert Mustacchi.Ft void 299b0e7716SRobert Mustacchi.Fo usba_hcdi_unregister 309b0e7716SRobert Mustacchi.Fa "dev_info_t *dip" 319b0e7716SRobert Mustacchi.Fc 329b0e7716SRobert Mustacchi.Sh INTERFACE LEVEL 339b0e7716SRobert Mustacchi.Sy Volatile - 349b0e7716SRobert Mustacchiillumos USB HCD private function 359b0e7716SRobert Mustacchi.Pp 3672d3dbb9SYuri PankovThis is a private function that is not part of the stable DDI. 3772d3dbb9SYuri PankovIt may be removed or changed at any time. 389b0e7716SRobert Mustacchi.Sh PARAMETERS 399b0e7716SRobert Mustacchi.Bl -tag -width Fa 409b0e7716SRobert Mustacchi.It Fa args 4172d3dbb9SYuri PankovA pointer to a filled out registration structure. 4272d3dbb9SYuri PankovSee 439b0e7716SRobert Mustacchi.Xr usba_hcdi_register_args_t 9S 449b0e7716SRobert Mustacchifor the members to fill in. 459b0e7716SRobert Mustacchi.It Fa flags 469b0e7716SRobert MustacchiShould be set to 479b0e7716SRobert Mustacchi.Sy 0 . 489b0e7716SRobert Mustacchi.It Fa dip 499b0e7716SRobert MustacchiPointer to the device's 509b0e7716SRobert Mustacchi.Sy dev_info 519b0e7716SRobert Mustacchistructure. 529b0e7716SRobert Mustacchi.El 539b0e7716SRobert Mustacchi.Sh DESCRIPTION 549b0e7716SRobert MustacchiThe 559b0e7716SRobert Mustacchi.Fn usba_hcdi_register 569b0e7716SRobert Mustacchiand 579b0e7716SRobert Mustacchi.Fn usba_hcdi_unregister 589b0e7716SRobert Mustacchifunctions are used to register and unregister a USB HCDI driver from the 599b0e7716SRobert MustacchiUSBA framework. 609b0e7716SRobert Mustacchi.Pp 619b0e7716SRobert MustacchiThe 629b0e7716SRobert Mustacchi.Fn usba_hcdi_register 639b0e7716SRobert Mustacchifunction is called during a device driver's 649b0e7716SRobert Mustacchi.Xr attach 9E 6572d3dbb9SYuri Pankoventry point after it has finished initializing the device. 66*c5bab702SPeter TribbleAfter this function successfully returns, device drivers should assume that the 679b0e7716SRobert Mustacchi.Xr usba_hcdi_ops 9S 689b0e7716SRobert Mustacchifunctions may be called at any time. 699b0e7716SRobert Mustacchi.Pp 709b0e7716SRobert MustacchiThe 719b0e7716SRobert Mustacchi.Fn usba_hcdi_unregister 729b0e7716SRobert Mustacchifunction should be called during a driver's 739b0e7716SRobert Mustacchi.Xr detach 9E 749b0e7716SRobert Mustacchientry point after it has unbound its root hub, but before the remainder 7572d3dbb9SYuri Pankovof the device's state is torn down. 7672d3dbb9SYuri PankovAfter calling the 779b0e7716SRobert Mustacchi.Fn usba_hcdi_unregister 789b0e7716SRobert Mustacchifunction, the driver will receive no more function calls to its 799b0e7716SRobert Mustacchi.Xr usba_hcdi_ops 9S 809b0e7716SRobert Mustacchientry points. 819b0e7716SRobert Mustacchi.Pp 829b0e7716SRobert MustacchiFor more information on the initialization and finalization path of a 839b0e7716SRobert MustacchiUSB HCD driver, see 849b0e7716SRobert Mustacchi.Xr usba_hcdi 9E . 859b0e7716SRobert Mustacchi.Sh CONTEXT 869b0e7716SRobert MustacchiThe 879b0e7716SRobert Mustacchi.Fn usba_hcdi_register 889b0e7716SRobert Mustacchifunction should only be called from a driver's 899b0e7716SRobert Mustacchi.Xr attach 9E 909b0e7716SRobert Mustacchientry point. 919b0e7716SRobert Mustacchi.Pp 929b0e7716SRobert MustacchiThe 939b0e7716SRobert Mustacchi.Fn usba_hcdi_unregister 949b0e7716SRobert Mustacchifunction should only be called frm a driver's 959b0e7716SRobert Mustacchi.Xr detach 9E 969b0e7716SRobert Mustacchientry point. 979b0e7716SRobert Mustacchi.Sh RETURN VALUES 989b0e7716SRobert MustacchiUpon successful completion, the 999b0e7716SRobert Mustacchi.Fn usba_hcdi_register 1009b0e7716SRobert Mustacchifunction returns 1019b0e7716SRobert Mustacchi.Sy USB_SUCCESS . 1029b0e7716SRobert MustacchiOtherwise 1039b0e7716SRobert Mustacchi.Sy USB_FAILURE 1049b0e7716SRobert Mustacchiis returned to indicate that the device was not registered. 1059b0e7716SRobert Mustacchi.Pp 1069b0e7716SRobert MustacchiThe 1079b0e7716SRobert Mustacchi.Fn usba_hcdi_unregister 1089b0e7716SRobert Mustacchifunction does not define any return values and always succeeds. 1099b0e7716SRobert Mustacchi.Sh SEE ALSO 1109b0e7716SRobert Mustacchi.Xr attach 9E , 1119b0e7716SRobert Mustacchi.Xr detach 9E , 1129b0e7716SRobert Mustacchi.Xr usba_hcdi 9E , 1139b0e7716SRobert Mustacchi.Xr usba_hcdi_ops 9S , 1149b0e7716SRobert Mustacchi.Xr usba_hcdi_register_args_t 9S 115