Skip to contentSkip to conversation

old linux scsi headers

DISCUSSION Andy Grover 2 participants 3 messages Jan 9, 2015 – Jan 27, 2015 SCSI

lore
Share & tools
lore
#0 lore raw

Hello glibc people,

This concerns sysdeps/unix/sysv/linux/scsi/{scsi, scsi_ioctl, sg}.h

They define common SCSI values, as well as Linux's SCSI-related ioctls.

Apparently they were copied from the Linux kernel tree back in 1999, so they're pretty stale.

I'm wondering if I should submit a patch to update these to what's current from the Linux tree, or if maybe it wouldn't be better to have users just directly get these as "uapi" headers from the Linux kernel source directly?

The latter method has issues with being a breaking change for code that relies on what's in glibc now, which may or may not be something we can ease, but would ensure the headers would not become stale again in the future.

What do you think about the best way to proceed?

Thanks -- Regards -- Andy

#1 lore raw
Quoted 13 lines · Andy Grover

Hello glibc people,

This concerns sysdeps/unix/sysv/linux/scsi/{scsi, scsi_ioctl, sg}.h

They define common SCSI values, as well as Linux's SCSI-related ioctls.

Apparently they were copied from the Linux kernel tree back in 1999, so they're pretty stale.

I'm wondering if I should submit a patch to update these to what's current from the Linux tree, or if maybe it wouldn't be better to have users just directly get these as "uapi" headers from the Linux kernel source directly?

Quoted 6 lines

The latter method has issues with being a breaking change for code that relies on what's in glibc now, which may or may not be something we can ease, but would ensure the headers would not become stale again in the future.

What do you think about the best way to proceed?

FYI, I'd like to repeat my propsal from the scsi list here, and a few alternatives:

(1) separate namespaces (my proposal):

- we add uapi linux/scsi_ioctl.h and linux/sg.h files that just add the ioctl defintions and data structures required for them.
- because they are linux/ instead of scsi/ are not required to keep things like the old opcode or SCSI-2 defintions, which glibc can keep in the scsi/* wrappers, and hopefully slowly deprecate over the long run

(2) just export what we have in the kernel now (Andys patch):

- add uapi scsi/scsi.h and scsi/scsi_ioctl.h (and scsi/sg.h for v2), exporting what we have in them right now, which might be a little different from glibc
- remove glibcs scsi/*.h

(2a)

- like 2, but only export the ioctls APIs, the other constants will go away at this point

(2b)

- like 2a, but also add defines compatible to glibc under #ifndef __KERNEL__ to the uapi headers.

#2 lore raw
Quoted 24 lines · Christoph Hellwig
Quoted 13 lines · Andy Grover

Hello glibc people,

This concerns sysdeps/unix/sysv/linux/scsi/{scsi, scsi_ioctl, sg}.h

They define common SCSI values, as well as Linux's SCSI-related ioctls.

Apparently they were copied from the Linux kernel tree back in 1999, so they're pretty stale.

I'm wondering if I should submit a patch to update these to what's current from the Linux tree, or if maybe it wouldn't be better to have users just directly get these as "uapi" headers from the Linux kernel source directly?

Quoted 6 lines

The latter method has issues with being a breaking change for code that relies on what's in glibc now, which may or may not be something we can ease, but would ensure the headers would not become stale again in the future.

What do you think about the best way to proceed?

FYI, I'd like to repeat my propsal from the scsi list here, and a few alternatives:

Quoted 8 lines

(1) separate namespaces (my proposal):

- we add uapi linux/scsi_ioctl.h and linux/sg.h files that just add the ioctl defintions and data structures required for them.
- because they are linux/ instead of scsi/ are not required to keep things like the old opcode or SCSI-2 defintions, which glibc can keep in the scsi/* wrappers, and hopefully slowly deprecate over the long run

Fine by me. This lets the kernel publish up-to-date headers, and lets glibc handle the old headers at its own pace.

I'll post a patch shortly.

Regards -- Andy

Quoted 18 lines

(2) just export what we have in the kernel now (Andys patch):

- add uapi scsi/scsi.h and scsi/scsi_ioctl.h (and scsi/sg.h for v2), exporting what we have in them right now, which might be a little different from glibc
- remove glibcs scsi/*.h

(2a)

- like 2, but only export the ioctls APIs, the other constants will go away at this point

(2b)

- like 2a, but also add defines compatible to glibc under

    #ifndef __KERNEL__ to the uapi headers.