@@ -779,7 +779,102 @@ else version (CRuntime_Bionic)
779779}
780780else version (CRuntime_Musl )
781781{
782- enum {
782+ version (X86_64 )
783+ {
784+ enum
785+ {
786+ O_DIRECTORY = 0x010000 , // octal 0200000
787+ O_NOFOLLOW = 0x020000 , // octal 0400000
788+ O_DIRECT = 0x004000 , // octal 040000
789+ O_LARGEFILE = 0 ,
790+ O_TMPFILE = 0x410000 , // octal 020200000
791+
792+ F_GETLK = 5 ,
793+ F_SETLK = 6 ,
794+ F_SETLKW = 7 ,
795+ }
796+ }
797+ // Note: Definitions for i386 are in arch/generic/bits/fcntl.h
798+ else version (X86 )
799+ {
800+ enum
801+ {
802+ O_DIRECTORY = 0x010000 , // octal 0200000
803+ O_NOFOLLOW = 0x020000 , // octal 0400000
804+ O_DIRECT = 0x004000 , // octal 040000
805+ O_LARGEFILE = 0x008000 , // octal 0100000
806+ O_TMPFILE = 0x410000 , // octal 020200000
807+
808+ F_GETLK = 12 ,
809+ F_SETLK = 13 ,
810+ F_SETLKW = 14 ,
811+ }
812+ }
813+ else version (ARM )
814+ {
815+ enum
816+ {
817+ O_DIRECTORY = 0x004000 , // octal 040000
818+ O_NOFOLLOW = 0x008000 , // octal 0100000
819+ O_DIRECT = 0x010000 , // octal 0200000
820+ O_LARGEFILE = 0x020000 , // octal 0400000
821+ O_TMPFILE = 0x404000 , // octal 020040000
822+
823+ F_GETLK = 12 ,
824+ F_SETLK = 13 ,
825+ F_SETLKW = 14 ,
826+ }
827+ }
828+ else version (AArch64 )
829+ {
830+ enum
831+ {
832+ O_DIRECTORY = 0x004000 , // octal 040000
833+ O_NOFOLLOW = 0x008000 , // octal 0100000
834+ O_DIRECT = 0x010000 , // octal 0200000
835+ O_LARGEFILE = 0x020000 , // octal 0400000
836+ O_TMPFILE = 0x404000 , // octal 020040000
837+
838+ F_GETLK = 5 ,
839+ F_SETLK = 6 ,
840+ F_SETLKW = 7 ,
841+ }
842+ }
843+ else version (SystemZ )
844+ {
845+ enum
846+ {
847+ O_DIRECTORY = 0x010000 , // octal 0200000
848+ O_NOFOLLOW = 0x020000 , // octal 0400000
849+ O_DIRECT = 0x004000 , // octal 040000
850+ O_LARGEFILE = 0x008000 , // octal 0100000
851+ O_TMPFILE = 0x410000 , // octal 020200000
852+
853+ F_GETLK = 5 ,
854+ F_SETLK = 6 ,
855+ F_SETLKW = 7 ,
856+ }
857+ }
858+ else version (PPC64 )
859+ {
860+ enum
861+ {
862+ O_DIRECTORY = 0x004000 , // octal 040000
863+ O_NOFOLLOW = 0x008000 , // octal 0100000
864+ O_DIRECT = 0x020000 , // octal 0400000
865+ O_LARGEFILE = 0x010000 , // octal 0200000
866+ O_TMPFILE = 0x410000 , // octal 020200000
867+
868+ F_GETLK = 5 ,
869+ F_SETLK = 6 ,
870+ F_SETLKW = 7 ,
871+ }
872+ }
873+ else
874+ static assert (0 , " Platform not supported" );
875+
876+ enum
877+ {
783878 O_CREAT = 0x40 , // octal 0100
784879 O_EXCL = 0x80 , // octal 0200
785880 O_NOCTTY = 0x100 , // octal 0400
@@ -790,16 +885,11 @@ else version (CRuntime_Musl)
790885 O_DSYNC = 0x1000 , // octal 010000
791886 O_SYNC = 0x101000 , // octal 04010000
792887 O_RSYNC = O_SYNC ,
793- O_DIRECTORY = 0x10000 ,
794- O_NOFOLLOW = 0x20000 ,
795888 O_CLOEXEC = 0x80000 ,
796889
797890 O_ASYNC = 0x2000 ,
798- O_DIRECT = 0x4000 ,
799- O_LARGEFILE = 0 ,
800891 O_NOATIME = 0x40000 ,
801892 O_PATH = 0x200000 ,
802- O_TMPFILE = 0x410000 ,
803893 O_NDELAY = O_NONBLOCK ,
804894 O_SEARCH = O_PATH ,
805895 O_EXEC = O_PATH ,
@@ -809,19 +899,19 @@ else version (CRuntime_Musl)
809899 O_WRONLY = 01 ,
810900 O_RDWR = 02 ,
811901 }
812- enum {
902+ enum
903+ {
813904 F_DUPFD = 0 ,
814905 F_GETFD = 1 ,
815906 F_SETFD = 2 ,
816907 F_GETFL = 3 ,
817908 F_SETFL = 4 ,
818- F_GETLK = 5 ,
819- F_SETLK = 6 ,
820- F_SETLKW = 7 ,
909+ // F_GETLK, F_SETLK, F_SETLKW are arch-specific
821910 F_SETOWN = 8 ,
822911 F_GETOWN = 9 ,
823912 }
824- enum {
913+ enum
914+ {
825915 F_RDLCK = 0 ,
826916 F_WRLCK = 1 ,
827917 F_UNLCK = 2 ,
0 commit comments