Changeset View
Changeset View
Standalone View
Standalone View
sys/cam/cam_xpt.c
Show First 20 Lines • Show All 4,018 Lines • ▼ Show 20 Lines | xpt_bus_register(struct cam_sim *sim, device_t parent, u_int32_t bus) | ||||
mtx_init(&new_bus->eb_mtx, "CAM bus lock", NULL, MTX_DEF); | mtx_init(&new_bus->eb_mtx, "CAM bus lock", NULL, MTX_DEF); | ||||
TAILQ_INIT(&new_bus->et_entries); | TAILQ_INIT(&new_bus->et_entries); | ||||
cam_sim_hold(sim); | cam_sim_hold(sim); | ||||
new_bus->sim = sim; | new_bus->sim = sim; | ||||
timevalclear(&new_bus->last_reset); | timevalclear(&new_bus->last_reset); | ||||
new_bus->flags = 0; | new_bus->flags = 0; | ||||
new_bus->refcount = 1; /* Held until a bus_deregister event */ | new_bus->refcount = 1; /* Held until a bus_deregister event */ | ||||
new_bus->generation = 0; | new_bus->generation = 0; | ||||
new_bus->parent_dev = parent; | |||||
xpt_lock_buses(); | xpt_lock_buses(); | ||||
sim->path_id = new_bus->path_id = | sim->path_id = new_bus->path_id = | ||||
xptpathid(sim->sim_name, sim->unit_number, sim->bus_id); | xptpathid(sim->sim_name, sim->unit_number, sim->bus_id); | ||||
old_bus = TAILQ_FIRST(&xsoftc.xpt_busses); | old_bus = TAILQ_FIRST(&xsoftc.xpt_busses); | ||||
while (old_bus != NULL | while (old_bus != NULL | ||||
&& old_bus->path_id < new_bus->path_id) | && old_bus->path_id < new_bus->path_id) | ||||
old_bus = TAILQ_NEXT(old_bus, links); | old_bus = TAILQ_NEXT(old_bus, links); | ||||
▲ Show 20 Lines • Show All 1,607 Lines • Show Last 20 Lines |