Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 5023
b: refs/heads/master
c: 2f4701d
h: refs/heads/master
i:
  5021: 92d3d63
  5019: c19b55a
  5015: b32f5b3
  5007: c473208
  4991: 2971e93
v: v3
  • Loading branch information
James.Smart@Emulex.Com authored and James Bottomley committed Jul 14, 2005
1 parent 55e8c6b commit 1a411b8
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 77d74143612c1dab6c055dac21f965929ba0a7e6
refs/heads/master: 2f4701d8274c8663f5c50323dc72fefa24b55091
32 changes: 32 additions & 0 deletions trunk/drivers/scsi/scsi_scan.c
Original file line number Diff line number Diff line change
Expand Up @@ -999,6 +999,38 @@ static int scsilun_to_int(struct scsi_lun *scsilun)
return lun;
}

/**
* int_to_scsilun: reverts an int into a scsi_lun
* @int: integer to be reverted
* @scsilun: struct scsi_lun to be set.
*
* Description:
* Reverts the functionality of the scsilun_to_int, which packed
* an 8-byte lun value into an int. This routine unpacks the int
* back into the lun value.
* Note: the scsilun_to_int() routine does not truly handle all
* 8bytes of the lun value. This functions restores only as much
* as was set by the routine.
*
* Notes:
* Given an integer : 0x0b030a04, this function returns a
* scsi_lun of : struct scsi_lun of: 0a 04 0b 03 00 00 00 00
*
**/
void int_to_scsilun(unsigned int lun, struct scsi_lun *scsilun)
{
int i;

memset(scsilun->scsi_lun, 0, sizeof(scsilun->scsi_lun));

for (i = 0; i < sizeof(lun); i += 2) {
scsilun->scsi_lun[i] = (lun >> 8) & 0xFF;
scsilun->scsi_lun[i+1] = lun & 0xFF;
lun = lun >> 16;
}
}
EXPORT_SYMBOL(int_to_scsilun);

/**
* scsi_report_lun_scan - Scan using SCSI REPORT LUN results
* @sdevscan: scan the host, channel, and id of this Scsi_Device
Expand Down
1 change: 1 addition & 0 deletions trunk/include/scsi/scsi_device.h
Original file line number Diff line number Diff line change
Expand Up @@ -243,6 +243,7 @@ extern void scsi_target_reap(struct scsi_target *);
extern void scsi_target_block(struct device *);
extern void scsi_target_unblock(struct device *);
extern void scsi_remove_target(struct device *);
extern void int_to_scsilun(unsigned int, struct scsi_lun *);
extern const char *scsi_device_state_name(enum scsi_device_state);
extern int scsi_is_sdev_device(const struct device *);
extern int scsi_is_target_device(const struct device *);
Expand Down

0 comments on commit 1a411b8

Please sign in to comment.