Jesús Cea Avión <j...@jcea.es> added the comment: Solaris has two personalities: System V and BSD. This is not usually an issue but sometimes some constants have a different value in a mode or the other.
By default, when including <sys/ioctl.h> Solaris is in System V mode. We can force BSD mode defining symbol "BSD_COMP". This greatly expand the names available but, unfortunately, some values change. The comment in <sys/ioctl.h> is quite clear: """ * There are some inherent problems in having a single file * ioctl.h, with both System V and BSD flags. Introducing * BSD flags into this file creates compilation problems * with flags such as ECHO, NL1 etc., if termio.h and ioctl.h * are included by the same file. Since these two files can * be only included by System V applications, /usr/inclule/sys/ioctl.h * will be System V mode and all the BSD flags will be turned off * using #ifdef BSD_COMP. This file will also exist in * /usr/ucbinclude/sys/ioctl.h for BSD applications but without the * BSD flags turned off. System V appliactions can use ioctl.h without * any changes, System V applications requiring BSD flags should * -D BSD_COMP when compiling (and be warned about the common * flags between System V and BSD) and BSD applications should * use /usr/ucbinclude/sys/ioctl.h. """ Using "gcc -dM -E" we can observe defined symbols. Ambiguous values when defininf "BSD_COMP" are: BS0, BS1, CR0, CR1, CR2, CR3, ECHO, FF0, FF1, FLUSHO, NL0, NL1, NOFLSH, PENDIN, TAB0, TAB1, TAB2, TOSTOP, XTABS. Sounds quite important, actually. Since I am no aiming to perfection, I would be satisfied making quite a few new symbols available, not all of them. A simple approach would be to include <sys/filio.h> and <sys/sockio.h>. In those header files there are only constants, not functions or data structures. Just including those headers we get these new symbols (none overlapping other): _FIO_COMPRESSED _FIO_COUNT_FILLED _FIO_GET_TOP_STATS _FIO_SEEK_DATA _FIO_SEEK_HOLE _FIO_SET_LUFS_DEBUG _FIO_SET_LUFS_ERROR _FIOAI _FIODIRECTIO _FIOFFS _FIOGDIO _FIOGETMAXPHYS _FIOGETSUPERBLOCK _FIOIO _FIOISBUSY _FIOISLOG _FIOISLOGOK _FIOLFS _FIOLFSS _FIOLOGDISABLE _FIOLOGENABLE _FIOLOGRESET _FIOOBSOLETE67 _FIOSATIME _FIOSDIO _FIOSNAPSHOTCREATE _FIOSNAPSHOTCREATE_MULTI _FIOSNAPSHOTDELETE _FIOTUNE _IO(x,y) _IOR(x,y,t) _IORN(x,y,t) _IOW(x,y,t) _IOWN(x,y,t) _IOWR(x,y,t) _IOWRN(x,y,t) _SIOCSOCKFALLBACK _SYS_FILIO_H _SYS_IOCCOM_H _SYS_SOCKIO_H FIOASYNC FIOCLEX FIOGETOWN FIONBIO FIONCLEX FIONREAD FIOSETOWN IF_UNITSEL IOC_IN IOC_INOUT IOC_OUT IOC_VOID IOCPARM_MASK O_SIOCGIFCONF O_SIOCGLIFCONF SIOCADDMULTI SIOCADDRT SIOCATMARK SIOCDARP SIOCDELMULTI SIOCDELRT SIOCDXARP SIOCGARP SIOCGDSTINFO SIOCGENADDR SIOCGENPSTATS SIOCGETLSGCNT SIOCGETNAME SIOCGETPEER SIOCGETPROP SIOCGETSGCNT SIOCGETSYNC SIOCGETVIFCNT SIOCGHIWAT SIOCGIFADDR SIOCGIFBRDADDR SIOCGIFCONF SIOCGIFDSTADDR SIOCGIFFLAGS SIOCGIFHWADDR SIOCGIFINDEX SIOCGIFMEM SIOCGIFMETRIC SIOCGIFMTU SIOCGIFMUXID SIOCGIFNETMASK SIOCGIFNUM SIOCGIP6ADDRPOLICY SIOCGIPMSFILTER SIOCGLIFADDR SIOCGLIFBINDING SIOCGLIFBRDADDR SIOCGLIFCONF SIOCGLIFDADSTATE SIOCGLIFDSTADDR SIOCGLIFFLAGS SIOCGLIFGROUPINFO SIOCGLIFGROUPNAME SIOCGLIFHWADDR SIOCGLIFINDEX SIOCGLIFLNKINFO SIOCGLIFMETRIC SIOCGLIFMTU SIOCGLIFMUXID SIOCGLIFNETMASK SIOCGLIFNUM SIOCGLIFSRCOF SIOCGLIFSUBNET SIOCGLIFTOKEN SIOCGLIFUSESRC SIOCGLIFZONE SIOCGLOWAT SIOCGMSFILTER SIOCGPGRP SIOCGSTAMP SIOCGXARP SIOCIFDETACH SIOCILB SIOCLIFADDIF SIOCLIFDELND SIOCLIFGETND SIOCLIFREMOVEIF SIOCLIFSETND SIOCLOWER SIOCSARP SIOCSCTPGOPT SIOCSCTPPEELOFF SIOCSCTPSOPT SIOCSENABLESDP SIOCSETPROP SIOCSETSYNC SIOCSHIWAT SIOCSIFADDR SIOCSIFBRDADDR SIOCSIFDSTADDR SIOCSIFFLAGS SIOCSIFINDEX SIOCSIFMEM SIOCSIFMETRIC SIOCSIFMTU SIOCSIFMUXID SIOCSIFNAME SIOCSIFNETMASK SIOCSIP6ADDRPOLICY SIOCSIPMSFILTER SIOCSLGETREQ SIOCSLIFADDR SIOCSLIFBRDADDR SIOCSLIFDSTADDR SIOCSLIFFLAGS SIOCSLIFGROUPNAME SIOCSLIFINDEX SIOCSLIFLNKINFO SIOCSLIFMETRIC SIOCSLIFMTU SIOCSLIFMUXID SIOCSLIFNAME SIOCSLIFNETMASK SIOCSLIFPREFIX SIOCSLIFSUBNET SIOCSLIFTOKEN SIOCSLIFUSESRC SIOCSLIFZONE SIOCSLOWAT SIOCSLSTAT SIOCSMSFILTER SIOCSPGRP SIOCSPROMISC SIOCSQPTR SIOCSSDSTATS SIOCSSESTATS SIOCSXARP SIOCTMYADDR SIOCTMYSITE SIOCTONLINK SIOCUPPER SIOCX25RCV SIOCX25TBL SIOCX25XMT SIOCXPROTO Not all those symbols are going to be exported in Python. ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue32660> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com