mailing list of musl libc
 help / color / mirror / code / Atom feed
* 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).