cam_sim.c (39212) | cam_sim.c (46581) |
---|---|
1/* 2 * Common functions for SCSI Interface Modules (SIMs). 3 * 4 * Copyright (c) 1997 Justin T. Gibbs. 5 * All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions --- 11 unchanged lines hidden (view full) --- 20 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 22 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 24 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 25 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26 * SUCH DAMAGE. 27 * | 1/* 2 * Common functions for SCSI Interface Modules (SIMs). 3 * 4 * Copyright (c) 1997 Justin T. Gibbs. 5 * All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions --- 11 unchanged lines hidden (view full) --- 20 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 22 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 24 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 25 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26 * SUCH DAMAGE. 27 * |
28 * $Id$ | 28 * $Id: cam_sim.c,v 1.1 1998/09/15 06:33:23 gibbs Exp $ |
29 */ 30 31#include <sys/param.h> 32#include <sys/systm.h> 33#include <sys/malloc.h> 34 35#include <cam/cam.h> 36#include <cam/cam_ccb.h> --- 12 unchanged lines hidden (view full) --- 49cam_simq_free(struct cam_devq *devq) 50{ 51 cam_devq_free(devq); 52} 53 54struct cam_sim * 55cam_sim_alloc(sim_action_func sim_action, sim_poll_func sim_poll, 56 char *sim_name, void *softc, u_int32_t unit, | 29 */ 30 31#include <sys/param.h> 32#include <sys/systm.h> 33#include <sys/malloc.h> 34 35#include <cam/cam.h> 36#include <cam/cam_ccb.h> --- 12 unchanged lines hidden (view full) --- 49cam_simq_free(struct cam_devq *devq) 50{ 51 cam_devq_free(devq); 52} 53 54struct cam_sim * 55cam_sim_alloc(sim_action_func sim_action, sim_poll_func sim_poll, 56 char *sim_name, void *softc, u_int32_t unit, |
57 u_int32_t max_dev_transactions, 58 u_int32_t max_tagged_dev_transactions, struct cam_devq *queue) | 57 int max_dev_transactions, 58 int max_tagged_dev_transactions, struct cam_devq *queue) |
59{ 60 struct cam_sim *sim; 61 62 /* 63 * If this is the xpt layer creating a sim, then it's OK 64 * to wait for an allocation. 65 * 66 * XXX Should we pass in a flag to indicate that wait is OK? --- 8 unchanged lines hidden (view full) --- 75 if (sim != NULL) { 76 sim->sim_action = sim_action; 77 sim->sim_poll = sim_poll; 78 sim->sim_name = sim_name; 79 sim->softc = softc; 80 sim->path_id = CAM_PATH_ANY; 81 sim->unit_number = unit; 82 sim->bus_id = 0; /* set in xpt_bus_register */ | 59{ 60 struct cam_sim *sim; 61 62 /* 63 * If this is the xpt layer creating a sim, then it's OK 64 * to wait for an allocation. 65 * 66 * XXX Should we pass in a flag to indicate that wait is OK? --- 8 unchanged lines hidden (view full) --- 75 if (sim != NULL) { 76 sim->sim_action = sim_action; 77 sim->sim_poll = sim_poll; 78 sim->sim_name = sim_name; 79 sim->softc = softc; 80 sim->path_id = CAM_PATH_ANY; 81 sim->unit_number = unit; 82 sim->bus_id = 0; /* set in xpt_bus_register */ |
83 sim->base_transfer_speed = 3300; /* asynchronous 3300 kB/sec */ | |
84 sim->max_tagged_dev_openings = max_tagged_dev_transactions; 85 sim->max_dev_openings = max_dev_transactions; 86 sim->flags = 0; 87 callout_handle_init(&sim->c_handle); 88 sim->devq = queue; 89 } 90 91 return (sim); 92} 93 94void 95cam_sim_free(struct cam_sim *sim, int free_devq) 96{ 97 if (free_devq) 98 cam_simq_free(sim->devq); 99 free(sim, M_DEVBUF); 100} 101 102void | 83 sim->max_tagged_dev_openings = max_tagged_dev_transactions; 84 sim->max_dev_openings = max_dev_transactions; 85 sim->flags = 0; 86 callout_handle_init(&sim->c_handle); 87 sim->devq = queue; 88 } 89 90 return (sim); 91} 92 93void 94cam_sim_free(struct cam_sim *sim, int free_devq) 95{ 96 if (free_devq) 97 cam_simq_free(sim->devq); 98 free(sim, M_DEVBUF); 99} 100 101void |
103cam_sim_set_basexfer_speed(struct cam_sim *sim, u_int32_t base_xfer_speed) 104{ 105 sim->base_transfer_speed = base_xfer_speed; 106} 107 108void | |
109cam_sim_set_path(struct cam_sim *sim, u_int32_t path_id) 110{ 111 sim->path_id = path_id; 112} | 102cam_sim_set_path(struct cam_sim *sim, u_int32_t path_id) 103{ 104 sim->path_id = path_id; 105} |