* cleaned up scsi headers
@ 2012-12-05 5:59 John Spencer
2012-12-05 6:34 ` Rich Felker
0 siblings, 1 reply; 5+ messages in thread
From: John Spencer @ 2012-12-05 5:59 UTC (permalink / raw)
To: musl
[-- Attachment #1: Type: text/plain, Size: 38 bytes --]
those are required for qemu and udev
[-- Attachment #2: scsi.h --]
[-- Type: text/x-chdr, Size: 3905 bytes --]
#ifndef _SCSI_SCSI_H
#define _SCSI_SCSI_H
#define TEST_UNIT_READY 0x00
#define REZERO_UNIT 0x01
#define REQUEST_SENSE 0x03
#define FORMAT_UNIT 0x04
#define READ_BLOCK_LIMITS 0x05
#define REASSIGN_BLOCKS 0x07
#define READ_6 0x08
#define WRITE_6 0x0a
#define SEEK_6 0x0b
#define READ_REVERSE 0x0f
#define WRITE_FILEMARKS 0x10
#define SPACE 0x11
#define INQUIRY 0x12
#define RECOVER_BUFFERED_DATA 0x14
#define MODE_SELECT 0x15
#define RESERVE 0x16
#define RELEASE 0x17
#define COPY 0x18
#define ERASE 0x19
#define MODE_SENSE 0x1a
#define START_STOP 0x1b
#define RECEIVE_DIAGNOSTIC 0x1c
#define SEND_DIAGNOSTIC 0x1d
#define ALLOW_MEDIUM_REMOVAL 0x1e
#define SET_WINDOW 0x24
#define READ_CAPACITY 0x25
#define READ_10 0x28
#define WRITE_10 0x2a
#define SEEK_10 0x2b
#define WRITE_VERIFY 0x2e
#define VERIFY 0x2f
#define SEARCH_HIGH 0x30
#define SEARCH_EQUAL 0x31
#define SEARCH_LOW 0x32
#define SET_LIMITS 0x33
#define PRE_FETCH 0x34
#define READ_POSITION 0x34
#define SYNCHRONIZE_CACHE 0x35
#define LOCK_UNLOCK_CACHE 0x36
#define READ_DEFECT_DATA 0x37
#define MEDIUM_SCAN 0x38
#define COMPARE 0x39
#define COPY_VERIFY 0x3a
#define WRITE_BUFFER 0x3b
#define READ_BUFFER 0x3c
#define UPDATE_BLOCK 0x3d
#define READ_LONG 0x3e
#define WRITE_LONG 0x3f
#define CHANGE_DEFINITION 0x40
#define WRITE_SAME 0x41
#define READ_TOC 0x43
#define LOG_SELECT 0x4c
#define LOG_SENSE 0x4d
#define MODE_SELECT_10 0x55
#define RESERVE_10 0x56
#define RELEASE_10 0x57
#define MODE_SENSE_10 0x5a
#define PERSISTENT_RESERVE_IN 0x5e
#define PERSISTENT_RESERVE_OUT 0x5f
#define MOVE_MEDIUM 0xa5
#define READ_12 0xa8
#define WRITE_12 0xaa
#define WRITE_VERIFY_12 0xae
#define SEARCH_HIGH_12 0xb0
#define SEARCH_EQUAL_12 0xb1
#define SEARCH_LOW_12 0xb2
#define READ_ELEMENT_STATUS 0xb8
#define SEND_VOLUME_TAG 0xb6
#define WRITE_LONG_2 0xea
#define GOOD 0x00
#define CHECK_CONDITION 0x01
#define CONDITION_GOOD 0x02
#define BUSY 0x04
#define INTERMEDIATE_GOOD 0x08
#define INTERMEDIATE_C_GOOD 0x0a
#define RESERVATION_CONFLICT 0x0c
#define COMMAND_TERMINATED 0x11
#define QUEUE_FULL 0x14
#define STATUS_MASK 0x3e
#define NO_SENSE 0x00
#define RECOVERED_ERROR 0x01
#define NOT_READY 0x02
#define MEDIUM_ERROR 0x03
#define HARDWARE_ERROR 0x04
#define ILLEGAL_REQUEST 0x05
#define UNIT_ATTENTION 0x06
#define DATA_PROTECT 0x07
#define BLANK_CHECK 0x08
#define COPY_ABORTED 0x0a
#define ABORTED_COMMAND 0x0b
#define VOLUME_OVERFLOW 0x0d
#define MISCOMPARE 0x0e
#define TYPE_DISK 0x00
#define TYPE_TAPE 0x01
#define TYPE_PROCESSOR 0x03
#define TYPE_WORM 0x04
#define TYPE_ROM 0x05
#define TYPE_SCANNER 0x06
#define TYPE_MOD 0x07
#define TYPE_MEDIUM_CHANGER 0x08
#define TYPE_ENCLOSURE 0x0d
#define TYPE_NO_LUN 0x7f
#define COMMAND_COMPLETE 0x00
#define EXTENDED_MESSAGE 0x01
#define EXTENDED_MODIFY_DATA_POINTER 0x00
#define EXTENDED_SDTR 0x01
#define EXTENDED_EXTENDED_IDENTIFY 0x02
#define EXTENDED_WDTR 0x03
#define SAVE_POINTERS 0x02
#define RESTORE_POINTERS 0x03
#define DISCONNECT 0x04
#define INITIATOR_ERROR 0x05
#define ABORT 0x06
#define MESSAGE_REJECT 0x07
#define NOP 0x08
#define MSG_PARITY_ERROR 0x09
#define LINKED_CMD_COMPLETE 0x0a
#define LINKED_FLG_CMD_COMPLETE 0x0b
#define BUS_DEVICE_RESET 0x0c
#define INITIATE_RECOVERY 0x0f
#define RELEASE_RECOVERY 0x10
#define SIMPLE_QUEUE_TAG 0x20
#define HEAD_OF_QUEUE_TAG 0x21
#define ORDERED_QUEUE_TAG 0x22
#define SCSI_IOCTL_GET_IDLUN 0x5382
#define SCSI_IOCTL_TAGGED_ENABLE 0x5383
#define SCSI_IOCTL_TAGGED_DISABLE 0x5384
#define SCSI_IOCTL_PROBE_HOST 0x5385
#define SCSI_IOCTL_GET_BUS_NUMBER 0x5386
struct ccs_modesel_head {
unsigned char _r1;
unsigned char medium;
unsigned char _r2;
unsigned char block_desc_length;
unsigned char density;
unsigned char number_blocks_hi;
unsigned char number_blocks_med;
unsigned char number_blocks_lo;
unsigned char _r3;
unsigned char block_length_hi;
unsigned char block_length_med;
unsigned char block_length_lo;
};
#endif
[-- Attachment #3: sg.h --]
[-- Type: text/x-chdr, Size: 3072 bytes --]
#ifndef _SCSI_SG_H
#define _SCSI_SG_H
#define SG_DXFER_NONE -1
#define SG_DXFER_TO_DEV -2
#define SG_DXFER_FROM_DEV -3
#define SG_DXFER_TO_FROM_DEV -4
#define SG_FLAG_DIRECT_IO 1
#define SG_FLAG_LUN_INHIBIT 2
#define SG_FLAG_NO_DXFER 0x10000
#define SG_INFO_OK_MASK 0x1
#define SG_INFO_OK 0x0
#define SG_INFO_CHECK 0x1
#define SG_INFO_DIRECT_IO_MASK 0x6
#define SG_INFO_INDIRECT_IO 0x0
#define SG_INFO_DIRECT_IO 0x2
#define SG_INFO_MIXED_IO 0x4
#define SG_EMULATED_HOST 0x2203
#define SG_SET_TRANSFORM 0x2204
#define SG_GET_TRANSFORM 0x2205
#define SG_SET_RESERVED_SIZE 0x2275
#define SG_GET_RESERVED_SIZE 0x2272
#define SG_GET_SCSI_ID 0x2276
#define SG_SET_FORCE_LOW_DMA 0x2279
#define SG_GET_LOW_DMA 0x227a
#define SG_SET_FORCE_PACK_ID 0x227b
#define SG_GET_PACK_ID 0x227c
#define SG_GET_NUM_WAITING 0x227d
#define SG_GET_SG_TABLESIZE 0x227F
#define SG_GET_VERSION_NUM 0x2282
#define SG_SCSI_RESET 0x2284
#define SG_SCSI_RESET_NOTHING 0
#define SG_SCSI_RESET_DEVICE 1
#define SG_SCSI_RESET_BUS 2
#define SG_SCSI_RESET_HOST 3
#define SG_IO 0x2285
#define SG_GET_REQUEST_TABLE 0x2286
#define SG_SET_KEEP_ORPHAN 0x2287
#define SG_GET_KEEP_ORPHAN 0x2288
#define SG_SCATTER_SZ (8 * 4096)
#define SG_DEFAULT_RETRIES 1
#define SG_DEF_FORCE_LOW_DMA 0
#define SG_DEF_FORCE_PACK_ID 0
#define SG_DEF_KEEP_ORPHAN 0
#define SG_DEF_RESERVED_SIZE SG_SCATTER_SZ
#define SG_MAX_QUEUE 16
#define SG_BIG_BUFF SG_DEF_RESERVED_SIZE
#define SG_MAX_SENSE 16
#define SG_SET_TIMEOUT 0x2201
#define SG_GET_TIMEOUT 0x2202
#define SG_GET_COMMAND_Q 0x2270
#define SG_SET_COMMAND_Q 0x2271
#define SG_SET_DEBUG 0x227e
#define SG_NEXT_CMD_LEN 0x2283
#define SG_DEFAULT_TIMEOUT (60*HZ)
#define SG_DEF_COMMAND_Q 0
#define SG_DEF_UNDERRUN_FLAG 0
typedef struct sg_iovec {
void *iov_base;
unsigned long iov_len;
} sg_iovec_t;
typedef struct sg_io_hdr {
int interface_id;
int dxfer_direction;
unsigned char cmd_len;
unsigned char mx_sb_len;
unsigned short iovec_count;
unsigned dxfer_len;
void *dxferp;
unsigned char *cmdp;
unsigned char *sbp;
unsigned timeout;
unsigned flags;
int pack_id;
void *usr_ptr;
unsigned char status;
unsigned char masked_status;
unsigned char msg_status;
unsigned char sb_len_wr;
unsigned short host_status;
unsigned short driver_status;
int resid;
unsigned int duration;
unsigned int info;
} sg_io_hdr_t;
struct sg_scsi_id {
int host_no;
int channel;
int scsi_id;
int lun;
int scsi_type;
short h_cmd_per_lun;
short d_queue_depth;
int unused[2];
};
typedef struct sg_req_info {
char req_state;
char orphan;
char sg_io_owned;
char problem;
int pack_id;
void *usr_ptr;
unsigned duration;
int unused;
} sg_req_info_t;
typedef struct sg_io_hdr Sg_io_hdr;
typedef struct sg_io_vec Sg_io_vec;
typedef struct sg_scsi_id Sg_scsi_id;
typedef struct sg_req_info Sg_req_info;
struct sg_header {
int pack_len;
int reply_len;
int pack_id;
int result;
unsigned twelve_byte:1;
unsigned target_status:5;
unsigned host_status:8;
unsigned driver_status:8;
unsigned other_flags:10;
unsigned char sense_buffer[SG_MAX_SENSE];
};
#endif
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: cleaned up scsi headers
2012-12-05 5:59 cleaned up scsi headers John Spencer
@ 2012-12-05 6:34 ` Rich Felker
2012-12-05 6:40 ` John Spencer
0 siblings, 1 reply; 5+ messages in thread
From: Rich Felker @ 2012-12-05 6:34 UTC (permalink / raw)
To: musl
On Wed, Dec 05, 2012 at 06:59:44AM +0100, John Spencer wrote:
> those are required for qemu and udev
>
Last time we discussed this issue, I thought it was determined that
both glibc AND the kernel were installing scsi/scsi.h and scsi/sg.h,
and that there seemed to be no reason for libc to provide it except
possibly for some historical issue that was long-ago fixed...
If you want to add them, do you have an explanation for why they're
needed?
Rich
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: cleaned up scsi headers
2012-12-05 6:34 ` Rich Felker
@ 2012-12-05 6:40 ` John Spencer
2012-12-05 17:20 ` idunham
0 siblings, 1 reply; 5+ messages in thread
From: John Spencer @ 2012-12-05 6:40 UTC (permalink / raw)
To: musl
On 12/05/2012 07:34 AM, Rich Felker wrote:
> On Wed, Dec 05, 2012 at 06:59:44AM +0100, John Spencer wrote:
>> those are required for qemu and udev
>>
> Last time we discussed this issue, I thought it was determined that
> both glibc AND the kernel were installing scsi/scsi.h and scsi/sg.h,
> and that there seemed to be no reason for libc to provide it except
> possibly for some historical issue that was long-ago fixed...
>
> If you want to add them, do you have an explanation for why they're
> needed?
>
> Rich
>
they are missing from my kernel headers (taken from 3.3.4), and they
were apparently already missing around 2.6.32/3.0 (last kernels sabotage
used)
i forgot to mention that strace needs them as well, i just had them
already baked into a cumulative patch, so i didnt notice immediately.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: cleaned up scsi headers
2012-12-05 6:40 ` John Spencer
@ 2012-12-05 17:20 ` idunham
2012-12-05 17:35 ` Rich Felker
0 siblings, 1 reply; 5+ messages in thread
From: idunham @ 2012-12-05 17:20 UTC (permalink / raw)
To: musl
> On 12/05/2012 07:34 AM, Rich Felker wrote:
>> On Wed, Dec 05, 2012 at 06:59:44AM +0100, John Spencer wrote:
>>> those are required for qemu and udev
>>>
>> Last time we discussed this issue, I thought it was determined that
>> both glibc AND the kernel were installing scsi/scsi.h and scsi/sg.h,
>> and that there seemed to be no reason for libc to provide it except
>> possibly for some historical issue that was long-ago fixed...
>>
>> If you want to add them, do you have an explanation for why they're
>> needed?
>>
>> Rich
>>
> they are missing from my kernel headers (taken from 3.3.4), and they
> were apparently already missing around 2.6.32/3.0 (last kernels sabotage
> used)
They're provided by libc6-dev rather than linux-libc-dev on Debian
Squeeze, which would indicate that musl will need to provide them.
> i forgot to mention that strace needs them as well, i just had them
> already baked into a cumulative patch, so i didnt notice immediately.
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: cleaned up scsi headers
2012-12-05 17:20 ` idunham
@ 2012-12-05 17:35 ` Rich Felker
0 siblings, 0 replies; 5+ messages in thread
From: Rich Felker @ 2012-12-05 17:35 UTC (permalink / raw)
To: musl
On Wed, Dec 05, 2012 at 09:20:36AM -0800, idunham@lavabit.com wrote:
> > they are missing from my kernel headers (taken from 3.3.4), and they
> > were apparently already missing around 2.6.32/3.0 (last kernels sabotage
> > used)
>
> They're provided by libc6-dev rather than linux-libc-dev on Debian
> Squeeze, which would indicate that musl will need to provide them.
OK, it looks like things have changed since the ancient kernel headers
I've been using -- probably to fix the issue of the kernel overwriting
glibc's headers. So I'll add these to musl. They're small and
unobtrusive anyway.
Rich
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2012-12-05 17:35 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-12-05 5:59 cleaned up scsi headers John Spencer
2012-12-05 6:34 ` Rich Felker
2012-12-05 6:40 ` John Spencer
2012-12-05 17:20 ` idunham
2012-12-05 17:35 ` Rich Felker
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/musl/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).