2001-03-16 17:49:09

by Erik van Asselt

[permalink] [raw]
Subject: problems compiling scsi_ioctl on kernels later 2.4.1

i tried to compile linux-2.4.3-pre4 on a redhat and suse machine with
different gcc's egcs 1.1.2 ,gcc 2.96 and gcc 2.95
but all get stuck on compiling scsi_ioctl in kernel or as module
does anyone have an idea?
machine's : -pentium 66 (with bug :=) running suse 7.0
-amd athlon 1000 with promise fasttrak running redhat
7.0

Erik





2001-03-17 12:43:54

by Erik van Asselt

[permalink] [raw]
Subject: Re: problems compiling scsi_ioctl on kernels later 2.4.1

I did link the usr/include/scsi to usr/srs/linux/include/scsi
isn't that the right way for compiling the new kernel?

Erik

Douglas Gilbert schreef:

> Erik,
> It looks like you are missing (or have a corrupted)
> include/scsi/scsi_ioctl.h header file. It contains
> the definition of the struct Scsi_Ioctl_Command .
>
> Doug Gilbert

2001-03-17 16:03:05

by Erik van Asselt

[permalink] [raw]
Subject: Re: problems compiling scsi_ioctl on kernels later 2.4.1

i don't understand how it got corrupted but it looks like i'm missing a lot of things if
i compare it to your scsi_ioctl file
I will use your scsi_ioctl or i will untar kernel 2.4.2 again without patch pre4
i hope it will work

Erik


Douglas Gilbert schreef:

> Erik van Asselt wrote:
> >
> > I did link the usr/include/scsi to usr/srs/linux/include/scsi
> > isn't that the right way for compiling the new kernel?
>
> That link may be useful for running various apps but it
> is not recommended. It shouldn't make any difference to
> building a kernel.
>
> My scsi_ioctl.h file for lk 2.4.2 is attached.
>
> Doug Gilbert
>
> > Erik
> >
> > Douglas Gilbert schreef:
> >
> > > Erik,
> > > It looks like you are missing (or have a corrupted)
> > > include/scsi/scsi_ioctl.h header file. It contains
> > > the definition of the struct Scsi_Ioctl_Command .
> > >
> > > Doug Gilbert
>
> ------------------------------------------------------------------------
> #ifndef _SCSI_IOCTL_H
> #define _SCSI_IOCTL_H
>
> #define SCSI_IOCTL_SEND_COMMAND 1
> #define SCSI_IOCTL_TEST_UNIT_READY 2
> #define SCSI_IOCTL_BENCHMARK_COMMAND 3
> #define SCSI_IOCTL_SYNC 4 /* Request synchronous parameters */
> #define SCSI_IOCTL_START_UNIT 5
> #define SCSI_IOCTL_STOP_UNIT 6
> /* The door lock/unlock constants are compatible with Sun constants for
> the cdrom */
> #define SCSI_IOCTL_DOORLOCK 0x5380 /* lock the eject mechanism */
> #define SCSI_IOCTL_DOORUNLOCK 0x5381 /* unlock the mechanism */
>
> #define SCSI_REMOVAL_PREVENT 1
> #define SCSI_REMOVAL_ALLOW 0
>
> #ifdef __KERNEL__
>
> /*
> * Structures used for scsi_ioctl et al.
> */
>
> typedef struct scsi_ioctl_command {
> unsigned int inlen;
> unsigned int outlen;
> unsigned char data[0];
> } Scsi_Ioctl_Command;
>
> typedef struct scsi_idlun {
> __u32 dev_id;
> __u32 host_unique_id;
> } Scsi_Idlun;
>
> /* Fibre Channel WWN, port_id struct */
> typedef struct scsi_fctargaddress
> {
> __u32 host_port_id;
> unsigned char host_wwn[8]; // include NULL term.
> } Scsi_FCTargAddress;
>
> extern int scsi_ioctl (Scsi_Device *dev, int cmd, void *arg);
> extern int kernel_scsi_ioctl (Scsi_Device *dev, int cmd, void *arg);
> extern int scsi_ioctl_send_command(Scsi_Device *dev,
> Scsi_Ioctl_Command *arg);
>
> #endif
>
> #endif