Deleted Added
full compact
cam_sim.c (139743) cam_sim.c (147723)
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

--- 13 unchanged lines hidden (view full) ---

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
29#include <sys/cdefs.h>
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

--- 13 unchanged lines hidden (view full) ---

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
29#include <sys/cdefs.h>
30__FBSDID("$FreeBSD: head/sys/cam/cam_sim.c 139743 2005-01-05 22:34:37Z imp $");
30__FBSDID("$FreeBSD: head/sys/cam/cam_sim.c 147723 2005-07-01 15:21:30Z avatar $");
31
32#include <sys/param.h>
33#include <sys/systm.h>
34#include <sys/malloc.h>
31
32#include <sys/param.h>
33#include <sys/systm.h>
34#include <sys/malloc.h>
35#include <sys/kernel.h>
35
36#include <cam/cam.h>
37#include <cam/cam_ccb.h>
38#include <cam/cam_sim.h>
39#include <cam/cam_queue.h>
40
41#define CAM_PATH_ANY (u_int32_t)-1
42
36
37#include <cam/cam.h>
38#include <cam/cam_ccb.h>
39#include <cam/cam_sim.h>
40#include <cam/cam_queue.h>
41
42#define CAM_PATH_ANY (u_int32_t)-1
43
44MALLOC_DEFINE(M_CAMSIM, "CAM SIM", "CAM SIM buffers");
45
43struct cam_devq *
44cam_simq_alloc(u_int32_t max_sim_transactions)
45{
46 return (cam_devq_alloc(/*size*/0, max_sim_transactions));
47}
48
49void
50cam_simq_free(struct cam_devq *devq)

--- 12 unchanged lines hidden (view full) ---

63 /*
64 * If this is the xpt layer creating a sim, then it's OK
65 * to wait for an allocation.
66 *
67 * XXX Should we pass in a flag to indicate that wait is OK?
68 */
69 if (strcmp(sim_name, "xpt") == 0)
70 sim = (struct cam_sim *)malloc(sizeof(struct cam_sim),
46struct cam_devq *
47cam_simq_alloc(u_int32_t max_sim_transactions)
48{
49 return (cam_devq_alloc(/*size*/0, max_sim_transactions));
50}
51
52void
53cam_simq_free(struct cam_devq *devq)

--- 12 unchanged lines hidden (view full) ---

66 /*
67 * If this is the xpt layer creating a sim, then it's OK
68 * to wait for an allocation.
69 *
70 * XXX Should we pass in a flag to indicate that wait is OK?
71 */
72 if (strcmp(sim_name, "xpt") == 0)
73 sim = (struct cam_sim *)malloc(sizeof(struct cam_sim),
71 M_DEVBUF, M_WAITOK);
74 M_CAMSIM, M_WAITOK);
72 else
73 sim = (struct cam_sim *)malloc(sizeof(struct cam_sim),
75 else
76 sim = (struct cam_sim *)malloc(sizeof(struct cam_sim),
74 M_DEVBUF, M_NOWAIT);
77 M_CAMSIM, M_NOWAIT);
75
76 if (sim != NULL) {
77 sim->sim_action = sim_action;
78 sim->sim_poll = sim_poll;
79 sim->sim_name = sim_name;
80 sim->softc = softc;
81 sim->path_id = CAM_PATH_ANY;
82 sim->unit_number = unit;

--- 8 unchanged lines hidden (view full) ---

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);
78
79 if (sim != NULL) {
80 sim->sim_action = sim_action;
81 sim->sim_poll = sim_poll;
82 sim->sim_name = sim_name;
83 sim->softc = softc;
84 sim->path_id = CAM_PATH_ANY;
85 sim->unit_number = unit;

--- 8 unchanged lines hidden (view full) ---

94 return (sim);
95}
96
97void
98cam_sim_free(struct cam_sim *sim, int free_devq)
99{
100 if (free_devq)
101 cam_simq_free(sim->devq);
99 free(sim, M_DEVBUF);
102 free(sim, M_CAMSIM);
100}
101
102void
103cam_sim_set_path(struct cam_sim *sim, u_int32_t path_id)
104{
105 sim->path_id = path_id;
106}
103}
104
105void
106cam_sim_set_path(struct cam_sim *sim, u_int32_t path_id)
107{
108 sim->path_id = path_id;
109}