From c1d99676c44bb7bd17bcb879f8a5c1f2a68dc866 Mon Sep 17 00:00:00 2001 From: Justine Tunney <jtunney@gmail.com> Date: Wed, 10 Aug 2022 12:44:56 -0700 Subject: [PATCH] Revert "Unbloat build config" This reverts commit ae5d06dc53b4356966e36a4dcf40cb192e06618f. --- Makefile | 6 +- build/bootstrap/compile.com | Bin 180224 -> 176128 bytes build/bootstrap/make.com | Bin 442368 -> 471952 bytes build/online.mk | 2 +- build/rules.mk | 57 +- dsp/tty/ident.c | 1 - examples/cosh.c | 1 - examples/decompress.c | 1 - examples/panels.c | 1 - examples/picol.c | 2 - examples/pylife/pylife.mk | 2 +- examples/stat.c | 1 - examples/stringbuffer.c | 2 - examples/ttyaudio.c | 2 - libc/calls/_timespec_tomicros.c | 7 +- libc/calls/_timespec_tomillis.c | 7 +- libc/calls/_timespec_tonanos.c | 33 - libc/calls/ktmppath.c | 3 +- libc/calls/pledge-linux.c | 406 +---- libc/calls/pledge.c | 20 +- libc/calls/struct/timespec.h | 1 - libc/calls/unveil.c | 31 +- libc/dns/getntprotocolstxtpath.c | 1 - libc/dns/getntservicestxtpath.c | 1 - libc/dns/getprotobyname.c | 1 - libc/dns/getprotobynumber.c | 1 - libc/dns/lookupprotobyname.c | 3 - libc/dns/lookupprotobynumber.c | 3 - libc/dns/lookupservicesbyname.c | 3 - libc/dns/lookupservicesbyport.c | 3 - libc/fmt/__xpg_strerror_r.c | 1 - libc/fmt/pflink.h | 39 +- libc/fmt/sizetol.c | 1 - libc/fmt/strerror.c | 2 - libc/fmt/strerror_r.c | 1 - libc/fmt/vsnprintf.c | 1 - libc/intrin/asan.c | 7 +- libc/intrin/pthread.h | 12 +- libc/intrin/pthread_mutex_unlock.c | 1 - libc/intrin/pthread_mutex_wake.c | 8 +- libc/intrin/strerror_wr.greg.c | 1 - libc/isystem/stdio.h | 1 - libc/log/countbranch_report.c | 1 - libc/log/perror.c | 1 - libc/log/showcrashreports.c | 1 - libc/log/vflogf.c | 1 - libc/nt/gdi32/GdiCurrentProcessSplWow64.s | 2 + libc/nt/kernel32/GetSystemWow64DirectoryA.s | 2 + libc/nt/kernel32/GetSystemWow64DirectoryW.s | 2 + libc/nt/kernel32/IsWow64Process.s | 2 + .../kernel32/Wow64DisableWow64FsRedirection.s | 2 + .../kernel32/Wow64EnableWow64FsRedirection.s | 2 + libc/nt/kernel32/Wow64GetThreadContext.s | 2 + .../nt/kernel32/Wow64GetThreadSelectorEntry.s | 2 + .../kernel32/Wow64RevertWow64FsRedirection.s | 2 + libc/nt/kernel32/Wow64SetThreadContext.s | 2 + libc/nt/kernel32/Wow64SuspendThread.s | 2 + libc/nt/master.sh | 374 ++++ libc/nt/netapi32/I_BrowserSetNetlogonState.s | 2 + libc/nt/netapi32/NetAccessAdd.s | 2 + libc/nt/netapi32/NetAccessDel.s | 2 + libc/nt/netapi32/NetAccessEnum.s | 2 + libc/nt/netapi32/NetAccessGetInfo.s | 2 + libc/nt/netapi32/NetAccessGetUserPerms.s | 2 + libc/nt/netapi32/NetAccessSetInfo.s | 2 + libc/nt/netapi32/NetAlertRaise.s | 2 + libc/nt/netapi32/NetAlertRaiseEx.s | 2 + libc/nt/netapi32/NetAuditClear.s | 2 + libc/nt/netapi32/NetAuditRead.s | 2 + libc/nt/netapi32/NetAuditWrite.s | 2 + libc/nt/netapi32/NetConfigGet.s | 2 + libc/nt/netapi32/NetConfigGetAll.s | 2 + libc/nt/netapi32/NetConfigSet.s | 2 + libc/nt/netapi32/NetErrorLogClear.s | 2 + libc/nt/netapi32/NetErrorLogRead.s | 2 + libc/nt/netapi32/NetErrorLogWrite.s | 2 + libc/nt/netapi32/NetMessageBufferSend.s | 2 + libc/nt/netapi32/NetMessageNameAdd.s | 2 + libc/nt/netapi32/NetMessageNameDel.s | 2 + libc/nt/netapi32/NetMessageNameEnum.s | 2 + libc/nt/netapi32/NetMessageNameGetInfo.s | 2 + .../NetRegisterDomainNameChangeNotification.s | 2 + libc/nt/netapi32/NetReplExportDirAdd.s | 2 + libc/nt/netapi32/NetReplExportDirDel.s | 2 + libc/nt/netapi32/NetReplExportDirEnum.s | 2 + libc/nt/netapi32/NetReplExportDirGetInfo.s | 2 + libc/nt/netapi32/NetReplExportDirLock.s | 2 + libc/nt/netapi32/NetReplExportDirSetInfo.s | 2 + libc/nt/netapi32/NetReplExportDirUnlock.s | 2 + libc/nt/netapi32/NetReplGetInfo.s | 2 + libc/nt/netapi32/NetReplImportDirAdd.s | 2 + libc/nt/netapi32/NetReplImportDirDel.s | 2 + libc/nt/netapi32/NetReplImportDirEnum.s | 2 + libc/nt/netapi32/NetReplImportDirGetInfo.s | 2 + libc/nt/netapi32/NetReplImportDirLock.s | 2 + libc/nt/netapi32/NetReplImportDirUnlock.s | 2 + libc/nt/netapi32/NetReplSetInfo.s | 2 + libc/nt/netapi32/NetServerEnum.s | 2 + libc/nt/netapi32/NetServerEnumEx.s | 2 + libc/nt/netapi32/NetServiceControl.s | 2 + libc/nt/netapi32/NetServiceEnum.s | 2 + libc/nt/netapi32/NetServiceGetInfo.s | 2 + libc/nt/netapi32/NetServiceInstall.s | 2 + libc/nt/netapi32/NetStatisticsGet.s | 2 + ...etUnregisterDomainNameChangeNotification.s | 2 + libc/nt/netapi32/NetWkstaGetInfo.s | 2 + libc/nt/netapi32/NetWkstaSetInfo.s | 2 + libc/nt/netapi32/Netbios.s | 2 + libc/nt/netapi32/NetpAddTlnFtinfoEntry.s | 2 + libc/nt/netapi32/NetpAllocFtinfoEntry.s | 2 + libc/nt/netapi32/NetpAssertFailed.s | 2 + libc/nt/netapi32/NetpCleanFtinfoContext.s | 2 + libc/nt/netapi32/NetpCloseConfigData.s | 2 + libc/nt/netapi32/NetpCopyFtinfoContext.s | 2 + libc/nt/netapi32/NetpDbgPrint.s | 2 + libc/nt/netapi32/NetpGetConfigBool.s | 2 + libc/nt/netapi32/NetpGetConfigDword.s | 2 + libc/nt/netapi32/NetpGetConfigTStrArray.s | 2 + libc/nt/netapi32/NetpGetConfigValue.s | 2 + libc/nt/netapi32/NetpGetFileSecurity.s | 2 + libc/nt/netapi32/NetpHexDump.s | 2 + libc/nt/netapi32/NetpInitFtinfoContext.s | 2 + libc/nt/netapi32/NetpIsUncComputerNameValid.s | 2 + libc/nt/netapi32/NetpMergeFtinfo.s | 2 + libc/nt/netapi32/NetpNetBiosReset.s | 2 + .../netapi32/NetpNetBiosStatusToApiStatus.s | 2 + libc/nt/netapi32/NetpOpenConfigData.s | 2 + libc/nt/netapi32/NetpSetFileSecurity.s | 2 + libc/nt/netapi32/RxNetAccessAdd.s | 2 + libc/nt/netapi32/RxNetAccessDel.s | 2 + libc/nt/netapi32/RxNetAccessEnum.s | 2 + libc/nt/netapi32/RxNetAccessGetInfo.s | 2 + libc/nt/netapi32/RxNetAccessGetUserPerms.s | 2 + libc/nt/netapi32/RxNetAccessSetInfo.s | 2 + libc/nt/netapi32/RxNetServerEnum.s | 2 + libc/nt/netapi32/RxNetUserPasswordSet.s | 2 + libc/nt/netapi32/RxRemoteApi.s | 2 + libc/nt/nt.mk | 40 + libc/nt/ntdll/RtlQueueApcWow64Thread.s | 2 + libc/nt/ntdll/RtlWow64CallFunction64.s | 2 + libc/nt/ntdll/RtlWow64EnableFsRedirection.s | 2 + libc/nt/ntdll/RtlWow64EnableFsRedirectionEx.s | 2 + libc/nt/ntdll/RtlWow64GetCpuAreaInfo.s | 2 + libc/nt/ntdll/RtlWow64GetCurrentCpuArea.s | 2 + libc/nt/ntdll/RtlWow64GetCurrentMachine.s | 2 + .../ntdll/RtlWow64GetEquivalentMachineCHPE.s | 2 + libc/nt/ntdll/RtlWow64GetProcessMachines.s | 2 + libc/nt/ntdll/RtlWow64GetSharedInfoProcess.s | 2 + libc/nt/ntdll/RtlWow64GetThreadContext.s | 2 + .../nt/ntdll/RtlWow64GetThreadSelectorEntry.s | 2 + .../RtlWow64IsWowGuestMachineSupported.s | 2 + .../ntdll/RtlWow64LogMessageInEventLogger.s | 2 + .../nt/ntdll/RtlWow64PopAllCrossProcessWork.s | 2 + libc/nt/ntdll/RtlWow64PopCrossProcessWork.s | 2 + libc/nt/ntdll/RtlWow64PushCrossProcessWork.s | 2 + libc/nt/ntdll/RtlWow64SetThreadContext.s | 2 + libc/nt/ntdll/RtlWow64SuspendThread.s | 2 + ...tlpQueryProcessDebugInformationFromWow64.s | 2 + libc/nt/shell32/AppCompat_RunDLLW.s | 2 + libc/nt/shell32/AssocCreateForClasses.s | 2 + libc/nt/shell32/AssocGetDetailsOfPropKey.s | 2 + libc/nt/shell32/CDefFolderMenu_Create2.s | 2 + libc/nt/shell32/CIDLData_CreateFromIDArray.s | 2 + ...torageItem_GetValidatedStorageItemObject.s | 2 + libc/nt/shell32/CheckEscapesW.s | 2 + libc/nt/shell32/CommandLineToArgvW.s | 2 + libc/nt/shell32/Control_RunDLL.s | 2 + libc/nt/shell32/Control_RunDLLAsUserW.s | 2 + libc/nt/shell32/Control_RunDLLW.s | 2 + libc/nt/shell32/DAD_AutoScroll.s | 2 + libc/nt/shell32/DAD_DragEnterEx.s | 2 + libc/nt/shell32/DAD_DragEnterEx2.s | 2 + libc/nt/shell32/DAD_DragLeave.s | 2 + libc/nt/shell32/DAD_DragMove.s | 2 + libc/nt/shell32/DAD_SetDragImage.s | 2 + libc/nt/shell32/DAD_ShowDragImage.s | 2 + libc/nt/shell32/DllGetActivationFactory.s | 2 + libc/nt/shell32/DllGetVersion.s | 2 + libc/nt/shell32/DllInstall.s | 2 + libc/nt/shell32/DllRegisterServer.s | 2 + libc/nt/shell32/DllUnregisterServer.s | 2 + libc/nt/shell32/DoEnvironmentSubstW.s | 2 + libc/nt/shell32/DragAcceptFiles.s | 2 + libc/nt/shell32/DragFinish.s | 2 + libc/nt/shell32/DragQueryFileAorW.s | 2 + libc/nt/shell32/DragQueryFileW.s | 2 + libc/nt/shell32/DragQueryPoint.s | 2 + libc/nt/shell32/DriveType.s | 2 + libc/nt/shell32/DuplicateIcon.s | 2 + libc/nt/shell32/ExtractAssociatedIconExW.s | 2 + libc/nt/shell32/ExtractAssociatedIconW.s | 2 + libc/nt/shell32/ExtractIconExW.s | 2 + libc/nt/shell32/ExtractIconW.s | 2 + libc/nt/shell32/FindExecutableW.s | 2 + libc/nt/shell32/FreeIconList.s | 2 + .../GetCurrentProcessExplicitAppUserModelID.s | 2 + libc/nt/shell32/GetFileNameFromBrowse.s | 2 + .../GetSystemPersistedStorageItemList.s | 2 + libc/nt/shell32/ILAppendID.s | 2 + libc/nt/shell32/ILClone.s | 2 + libc/nt/shell32/ILCloneFirst.s | 2 + libc/nt/shell32/ILCombine.s | 2 + libc/nt/shell32/ILCreateFromPathW.s | 2 + libc/nt/shell32/ILFindChild.s | 2 + libc/nt/shell32/ILFindLastID.s | 2 + libc/nt/shell32/ILFree.s | 2 + libc/nt/shell32/ILGetNext.s | 2 + libc/nt/shell32/ILGetSize.s | 2 + libc/nt/shell32/ILIsEqual.s | 2 + libc/nt/shell32/ILIsParent.s | 2 + libc/nt/shell32/ILLoadFromStreamEx.s | 2 + libc/nt/shell32/ILRemoveLastID.s | 2 + libc/nt/shell32/ILSaveToStream.s | 2 + libc/nt/shell32/InitNetworkAddressControl.s | 2 + libc/nt/shell32/InternalExtractIconListW.s | 2 + libc/nt/shell32/IsDesktopExplorerProcess.s | 2 + libc/nt/shell32/IsLFNDriveW.s | 2 + libc/nt/shell32/IsNetDrive.s | 2 + libc/nt/shell32/IsProcessAnExplorer.s | 2 + libc/nt/shell32/IsUserAnAdmin.s | 2 + libc/nt/shell32/LaunchMSHelp_RunDLLW.s | 2 + libc/nt/shell32/OpenAs_RunDLL.s | 2 + libc/nt/shell32/OpenAs_RunDLLW.s | 2 + libc/nt/shell32/OpenRegStream.s | 2 + libc/nt/shell32/Options_RunDLL.s | 2 + libc/nt/shell32/Options_RunDLLW.s | 2 + libc/nt/shell32/PathCleanupSpec.s | 2 + libc/nt/shell32/PathGetShortPath.s | 2 + libc/nt/shell32/PathIsExe.s | 2 + libc/nt/shell32/PathIsSlowW.s | 2 + libc/nt/shell32/PathMakeUniqueName.s | 2 + libc/nt/shell32/PathQualify.s | 2 + libc/nt/shell32/PathResolve.s | 2 + .../nt/shell32/PathYetAnotherMakeUniqueName.s | 2 + libc/nt/shell32/PickIconDlg.s | 2 + libc/nt/shell32/PifMgr_CloseProperties.s | 2 + libc/nt/shell32/PifMgr_GetProperties.s | 2 + libc/nt/shell32/PifMgr_OpenProperties.s | 2 + libc/nt/shell32/PifMgr_SetProperties.s | 2 + libc/nt/shell32/PrepareDiscForBurnRunDllW.s | 2 + libc/nt/shell32/PrintersGetCommand_RunDLL.s | 2 + libc/nt/shell32/PrintersGetCommand_RunDLLW.s | 2 + libc/nt/shell32/ReadCabinetState.s | 2 + libc/nt/shell32/RealDriveType.s | 2 + libc/nt/shell32/RealShellExecuteExW.s | 2 + libc/nt/shell32/RealShellExecuteW.s | 2 + libc/nt/shell32/RegenerateUserEnvironment.s | 2 + libc/nt/shell32/RestartDialog.s | 2 + libc/nt/shell32/RestartDialogEx.s | 2 + libc/nt/shell32/RunAsNewUser_RunDLLW.s | 2 + libc/nt/shell32/SHAddDefaultPropertiesByExt.s | 2 + libc/nt/shell32/SHAddFromPropSheetExtArray.s | 2 + libc/nt/shell32/SHAddToRecentDocs.s | 2 + libc/nt/shell32/SHAlloc.s | 2 + libc/nt/shell32/SHAppBarMessage.s | 2 + libc/nt/shell32/SHAssocEnumHandlers.s | 2 + ...ssocEnumHandlersForProtocolByApplication.s | 2 + libc/nt/shell32/SHBindToFolderIDListParent.s | 2 + .../nt/shell32/SHBindToFolderIDListParentEx.s | 2 + libc/nt/shell32/SHBindToObject.s | 2 + libc/nt/shell32/SHBindToParent.s | 2 + libc/nt/shell32/SHBrowseForFolderW.s | 2 + libc/nt/shell32/SHCLSIDFromString.s | 2 + libc/nt/shell32/SHChangeNotification_Lock.s | 2 + libc/nt/shell32/SHChangeNotification_Unlock.s | 2 + libc/nt/shell32/SHChangeNotify.s | 2 + libc/nt/shell32/SHChangeNotifyDeregister.s | 2 + libc/nt/shell32/SHChangeNotifyRegister.s | 2 + .../nt/shell32/SHChangeNotifyRegisterThread.s | 2 + libc/nt/shell32/SHChangeNotifySuspendResume.s | 2 + libc/nt/shell32/SHCloneSpecialIDList.s | 2 + libc/nt/shell32/SHCoCreateInstanceWorker.s | 2 + .../shell32/SHCreateAssociationRegistration.s | 2 + libc/nt/shell32/SHCreateCategoryEnum.s | 2 + libc/nt/shell32/SHCreateDataObject.s | 2 + libc/nt/shell32/SHCreateDefaultContextMenu.s | 2 + libc/nt/shell32/SHCreateDefaultExtractIcon.s | 2 + libc/nt/shell32/SHCreateDefaultPropertiesOp.s | 2 + libc/nt/shell32/SHCreateDirectory.s | 2 + libc/nt/shell32/SHCreateDirectoryExW.s | 2 + libc/nt/shell32/SHCreateDrvExtIcon.s | 2 + libc/nt/shell32/SHCreateFileExtractIconW.s | 2 + libc/nt/shell32/SHCreateItemFromIDList.s | 2 + libc/nt/shell32/SHCreateItemFromParsingName.s | 2 + .../nt/shell32/SHCreateItemFromRelativeName.s | 2 + libc/nt/shell32/SHCreateItemInKnownFolder.s | 2 + libc/nt/shell32/SHCreateItemWithParent.s | 2 + libc/nt/shell32/SHCreateLocalServerRunDll.s | 2 + libc/nt/shell32/SHCreateProcessAsUserW.s | 2 + libc/nt/shell32/SHCreatePropSheetExtArray.s | 2 + .../SHCreateQueryCancelAutoPlayMoniker.s | 2 + libc/nt/shell32/SHCreateShellFolderView.s | 2 + libc/nt/shell32/SHCreateShellFolderViewEx.s | 2 + libc/nt/shell32/SHCreateShellItem.s | 2 + libc/nt/shell32/SHCreateShellItemArray.s | 2 + .../SHCreateShellItemArrayFromDataObject.s | 2 + .../SHCreateShellItemArrayFromIDLists.s | 2 + .../SHCreateShellItemArrayFromShellItem.s | 2 + libc/nt/shell32/SHCreateStdEnumFmtEtc.s | 2 + libc/nt/shell32/SHDefExtractIconW.s | 2 + libc/nt/shell32/SHDestroyPropSheetExtArray.s | 2 + libc/nt/shell32/SHDoDragDrop.s | 2 + libc/nt/shell32/SHEmptyRecycleBinW.s | 2 + libc/nt/shell32/SHEnableServiceObject.s | 2 + .../shell32/SHEnumerateUnreadMailAccountsW.s | 2 + .../shell32/SHEvaluateSystemCommandTemplate.s | 2 + libc/nt/shell32/SHExtractIconsW.s | 2 + libc/nt/shell32/SHFileOperationW.s | 2 + libc/nt/shell32/SHFindFiles.s | 2 + libc/nt/shell32/SHFind_InitMenuPopup.s | 2 + libc/nt/shell32/SHFlushSFCache.s | 2 + libc/nt/shell32/SHFormatDrive.s | 2 + libc/nt/shell32/SHFree.s | 2 + libc/nt/shell32/SHFreeNameMappings.s | 2 + .../shell32/SHGetAttributesFromDataObject.s | 2 + libc/nt/shell32/SHGetDataFromIDListW.s | 2 + libc/nt/shell32/SHGetDesktopFolder.s | 2 + libc/nt/shell32/SHGetDiskFreeSpaceExW.s | 2 + libc/nt/shell32/SHGetDriveMedia.s | 2 + libc/nt/shell32/SHGetFileInfoW.s | 2 + libc/nt/shell32/SHGetFolderLocation.s | 2 + libc/nt/shell32/SHGetFolderPathAndSubDirW.s | 2 + libc/nt/shell32/SHGetFolderPathEx.s | 2 + libc/nt/shell32/SHGetFolderPathW.s | 2 + libc/nt/shell32/SHGetIDListFromObject.s | 2 + libc/nt/shell32/SHGetIconOverlayIndexW.s | 2 + libc/nt/shell32/SHGetImageList.s | 2 + libc/nt/shell32/SHGetInstanceExplorer.s | 2 + libc/nt/shell32/SHGetItemFromDataObject.s | 2 + libc/nt/shell32/SHGetItemFromObject.s | 2 + libc/nt/shell32/SHGetKnownFolderIDList.s | 2 + libc/nt/shell32/SHGetKnownFolderItem.s | 2 + libc/nt/shell32/SHGetKnownFolderPath.s | 2 + libc/nt/shell32/SHGetLocalizedName.s | 2 + libc/nt/shell32/SHGetMalloc.s | 2 + libc/nt/shell32/SHGetNameFromIDList.s | 2 + libc/nt/shell32/SHGetNewLinkInfoW.s | 2 + libc/nt/shell32/SHGetPathFromIDListEx.s | 2 + libc/nt/shell32/SHGetPathFromIDListW.s | 2 + libc/nt/shell32/SHGetPropertyStoreForWindow.s | 2 + .../nt/shell32/SHGetPropertyStoreFromIDList.s | 2 + .../SHGetPropertyStoreFromParsingName.s | 2 + libc/nt/shell32/SHGetRealIDL.s | 2 + .../nt/shell32/SHGetSetFolderCustomSettings.s | 2 + libc/nt/shell32/SHGetSetSettings.s | 2 + libc/nt/shell32/SHGetSettings.s | 2 + libc/nt/shell32/SHGetSpecialFolderLocation.s | 2 + libc/nt/shell32/SHGetSpecialFolderPathW.s | 2 + libc/nt/shell32/SHGetStockIconInfo.s | 2 + .../shell32/SHGetTemporaryPropertyForItem.s | 2 + libc/nt/shell32/SHGetUnreadMailCountW.s | 2 + libc/nt/shell32/SHHandleUpdateImage.s | 2 + libc/nt/shell32/SHHelpShortcuts_RunDLL.s | 2 + libc/nt/shell32/SHHelpShortcuts_RunDLLW.s | 2 + libc/nt/shell32/SHILCreateFromPath.s | 2 + libc/nt/shell32/SHInvokePrinterCommandW.s | 2 + libc/nt/shell32/SHIsFileAvailableOffline.s | 2 + libc/nt/shell32/SHLimitInputEdit.s | 2 + libc/nt/shell32/SHLoadInProc.s | 2 + .../SHLoadNonloadedIconOverlayIdentifiers.s | 2 + .../shell32/SHMapPIDLToSystemImageListIndex.s | 2 + libc/nt/shell32/SHMultiFileProperties.s | 2 + libc/nt/shell32/SHObjectProperties.s | 2 + libc/nt/shell32/SHOpenFolderAndSelectItems.s | 2 + libc/nt/shell32/SHOpenPropSheetW.s | 2 + libc/nt/shell32/SHOpenWithDialog.s | 2 + libc/nt/shell32/SHParseDisplayName.s | 2 + libc/nt/shell32/SHPathPrepareForWriteW.s | 2 + libc/nt/shell32/SHPropStgCreate.s | 2 + libc/nt/shell32/SHPropStgReadMultiple.s | 2 + libc/nt/shell32/SHPropStgWriteMultiple.s | 2 + libc/nt/shell32/SHQueryRecycleBinW.s | 2 + .../nt/shell32/SHQueryUserNotificationState.s | 2 + libc/nt/shell32/SHRemoveLocalizedName.s | 2 + .../shell32/SHReplaceFromPropSheetExtArray.s | 2 + libc/nt/shell32/SHResolveLibrary.s | 2 + libc/nt/shell32/SHRestricted.s | 2 + libc/nt/shell32/SHSetDefaultProperties.s | 2 + libc/nt/shell32/SHSetFolderPathW.s | 2 + libc/nt/shell32/SHSetInstanceExplorer.s | 2 + libc/nt/shell32/SHSetKnownFolderPath.s | 2 + libc/nt/shell32/SHSetLocalizedName.s | 2 + .../shell32/SHSetTemporaryPropertyForItem.s | 2 + libc/nt/shell32/SHSetUnreadMailCountW.s | 2 + libc/nt/shell32/SHShellFolderView_Message.s | 2 + libc/nt/shell32/SHShowManageLibraryUI.s | 2 + libc/nt/shell32/SHSimpleIDListFromPath.s | 2 + libc/nt/shell32/SHStartNetConnectionDialogW.s | 2 + libc/nt/shell32/SHTestTokenMembership.s | 2 + libc/nt/shell32/SHUpdateImageW.s | 2 + libc/nt/shell32/SHUpdateRecycleBinIcon.s | 2 + libc/nt/shell32/SHValidateUNC.s | 2 + .../SetCurrentProcessExplicitAppUserModelID.s | 2 + libc/nt/shell32/SheChangeDirExW.s | 2 + libc/nt/shell32/SheSetCurDrive.s | 2 + libc/nt/shell32/ShellAboutW.s | 2 + libc/nt/shell32/ShellExec_RunDLL.s | 2 + libc/nt/shell32/ShellExec_RunDLLW.s | 2 + libc/nt/shell32/ShellExecuteExW.s | 2 + libc/nt/shell32/ShellExecuteW.s | 2 + libc/nt/shell32/ShellHookProc.s | 2 + libc/nt/shell32/Shell_GetCachedImageIndexW.s | 2 + libc/nt/shell32/Shell_GetImageLists.s | 2 + libc/nt/shell32/Shell_MergeMenus.s | 2 + libc/nt/shell32/Shell_NotifyIconGetRect.s | 2 + libc/nt/shell32/Shell_NotifyIconW.s | 2 + libc/nt/shell32/SignalFileOpen.s | 2 + libc/nt/shell32/StgMakeUniqueName.s | 2 + .../UsersLibrariesFolderUI_CreateInstance.s | 2 + libc/nt/shell32/WOWShellExecute.s | 2 + libc/nt/shell32/WaitForExplorerRestartW.s | 2 + libc/nt/shell32/Win32DeleteFile.s | 2 + libc/nt/shell32/WriteCabinetState.s | 2 + libc/nt/user32/IsWow64Message.s | 2 + libc/runtime/arch_prctl.c | 25 + libc/runtime/interruptiblecall.c | 74 + libc/runtime/interruptiblecall.h | 26 + libc/stdio/appendw.c | 2 - libc/stdio/clearerr.c | 1 - libc/stdio/dtoa.c | 22 +- libc/stdio/dumphexc.c | 1 - libc/stdio/feof.c | 1 - libc/stdio/ferror.c | 1 - libc/stdio/fflush.c | 1 - libc/stdio/fgetc.c | 1 - libc/stdio/fgetln.c | 1 - libc/stdio/fgets.c | 1 - libc/stdio/fgetwc.c | 1 - libc/stdio/fgetws.c | 1 - libc/stdio/fileno.c | 1 - libc/stdio/flockfile.c | 1 - libc/stdio/flushlbf.c | 1 - libc/stdio/fprintf.c | 1 - libc/stdio/fputc.c | 1 - libc/stdio/fputs.c | 1 - libc/stdio/fputwc.c | 1 - libc/stdio/fputws.c | 1 - libc/stdio/fread.c | 1 - libc/stdio/freopen.c | 1 - libc/stdio/fseeko.c | 1 - libc/stdio/ftello.c | 1 - libc/stdio/fwrite.c | 1 - libc/stdio/getdelim.c | 1 - libc/stdio/getdelim_unlocked.c | 1 - libc/stdio/kvappendf.c | 1 - libc/stdio/lock.h | 25 - libc/stdio/mkdtemp.c | 5 +- libc/stdio/puts.c | 2 - libc/stdio/rewind.c | 1 - libc/stdio/setvbuf.c | 2 - libc/stdio/stdio.h | 20 + libc/stdio/tmpfile.c | 59 +- libc/stdio/ungetc.c | 1 - libc/stdio/ungetwc.c | 1 - libc/stdio/vappendf.c | 1 - libc/stdio/vfprintf.c | 1 - libc/str/str.h | 49 +- libc/sysv/consts.sh | 676 +++++++- libc/sysv/consts/ACCOUNTING.S | 2 + libc/sysv/consts/AHZ.S | 2 + libc/sysv/consts/ALLOW_MEDIUM_REMOVAL.S | 2 + libc/sysv/consts/ALT_DIGITS.S | 2 + libc/sysv/consts/AM_STR.S | 2 + libc/sysv/consts/ASU.S | 2 + libc/sysv/consts/ATF_NETMASK.S | 2 + libc/sysv/consts/AXSIG.S | 2 + libc/sysv/consts/B460800.S | 2 + libc/sysv/consts/B921600.S | 2 + libc/sysv/consts/BITSPERBYTE.S | 2 + libc/sysv/consts/BLANK_CHECK.S | 2 + libc/sysv/consts/BOOT_TIME.S | 2 + libc/sysv/consts/CHANGE_DEFINITION.S | 2 + libc/sysv/consts/CHARBITS.S | 2 + libc/sysv/consts/CHARCLASS_NAME_MAX.S | 2 + libc/sysv/consts/CHECK_CONDITION.S | 2 + libc/sysv/consts/CODESET.S | 2 + libc/sysv/consts/COLL_WEIGHTS_MAX.S | 2 + libc/sysv/consts/CONDITION_GOOD.S | 2 + libc/sysv/consts/CPU_SETSIZE.S | 2 + libc/sysv/consts/CRNCYSTR.S | 2 + libc/sysv/consts/CRTSCTS.S | 2 + libc/sysv/consts/CSTATUS.S | 2 + libc/sysv/consts/DATA_PROTECT.S | 2 + libc/sysv/consts/DEAD_PROCESS.S | 2 + libc/sysv/consts/DELAYTIMER_MAX.S | 2 + libc/sysv/consts/DMAXEXP.S | 2 + libc/sysv/consts/DMINEXP.S | 2 + libc/sysv/consts/DOUBLEBITS.S | 2 + libc/sysv/consts/ERA_D_FMT.S | 2 + libc/sysv/consts/ERA_D_T_FMT.S | 2 + libc/sysv/consts/ERA_T_FMT.S | 2 + libc/sysv/consts/FANOTIFY_METADATA_VERSION.S | 2 + libc/sysv/consts/FAN_ACCESS.S | 2 + libc/sysv/consts/FAN_ACCESS_PERM.S | 2 + libc/sysv/consts/FAN_ALLOW.S | 2 + libc/sysv/consts/FAN_ALL_CLASS_BITS.S | 2 + libc/sysv/consts/FAN_ALL_EVENTS.S | 2 + libc/sysv/consts/FAN_ALL_INIT_FLAGS.S | 2 + libc/sysv/consts/FAN_ALL_MARK_FLAGS.S | 2 + libc/sysv/consts/FAN_ALL_OUTGOING_EVENTS.S | 2 + libc/sysv/consts/FAN_ALL_PERM_EVENTS.S | 2 + libc/sysv/consts/FAN_CLASS_CONTENT.S | 2 + libc/sysv/consts/FAN_CLASS_NOTIF.S | 2 + libc/sysv/consts/FAN_CLASS_PRE_CONTENT.S | 2 + libc/sysv/consts/FAN_CLOEXEC.S | 2 + libc/sysv/consts/FAN_CLOSE.S | 2 + libc/sysv/consts/FAN_CLOSE_NOWRITE.S | 2 + libc/sysv/consts/FAN_CLOSE_WRITE.S | 2 + libc/sysv/consts/FAN_DENY.S | 2 + libc/sysv/consts/FAN_EVENT_METADATA_LEN.S | 2 + libc/sysv/consts/FAN_EVENT_ON_CHILD.S | 2 + libc/sysv/consts/FAN_MARK_ADD.S | 2 + libc/sysv/consts/FAN_MARK_DONT_FOLLOW.S | 2 + libc/sysv/consts/FAN_MARK_FLUSH.S | 2 + libc/sysv/consts/FAN_MARK_IGNORED_MASK.S | 2 + .../consts/FAN_MARK_IGNORED_SURV_MODIFY.S | 2 + libc/sysv/consts/FAN_MARK_MOUNT.S | 2 + libc/sysv/consts/FAN_MARK_ONLYDIR.S | 2 + libc/sysv/consts/FAN_MARK_REMOVE.S | 2 + libc/sysv/consts/FAN_MODIFY.S | 2 + libc/sysv/consts/FAN_NOFD.S | 2 + libc/sysv/consts/FAN_NONBLOCK.S | 2 + libc/sysv/consts/FAN_ONDIR.S | 2 + libc/sysv/consts/FAN_OPEN.S | 2 + libc/sysv/consts/FAN_OPEN_PERM.S | 2 + libc/sysv/consts/FAN_Q_OVERFLOW.S | 2 + libc/sysv/consts/FAN_UNLIMITED_MARKS.S | 2 + libc/sysv/consts/FAN_UNLIMITED_QUEUE.S | 2 + libc/sysv/consts/FAPPEND.S | 2 + libc/sysv/consts/FASYNC.S | 2 + libc/sysv/consts/FFSYNC.S | 2 + libc/sysv/consts/FILENAME_MAX.S | 2 + libc/sysv/consts/FIOGETOWN.S | 2 + libc/sysv/consts/FIOSETOWN.S | 2 + libc/sysv/consts/FMAXEXP.S | 2 + libc/sysv/consts/FMINEXP.S | 2 + libc/sysv/consts/FNDELAY.S | 2 + libc/sysv/consts/FNM_NOSYS.S | 2 + libc/sysv/consts/FNONBLOCK.S | 2 + libc/sysv/consts/FOPEN_MAX.S | 2 + libc/sysv/consts/FORMAT_UNIT.S | 2 + libc/sysv/consts/HARDWARE_ERROR.S | 2 + libc/sysv/consts/HEAD_OF_QUEUE_TAG.S | 2 + libc/sysv/consts/IGMP_MEMBERSHIP_QUERY.S | 2 + libc/sysv/consts/ILLEGAL_REQUEST.S | 2 + libc/sysv/consts/INITIATE_RECOVERY.S | 2 + libc/sysv/consts/INITIATOR_ERROR.S | 2 + libc/sysv/consts/INIT_PROCESS.S | 2 + libc/sysv/consts/INQUIRY.S | 2 + libc/sysv/consts/IN_ACCESS.S | 2 + libc/sysv/consts/IN_ALL_EVENTS.S | 2 + libc/sysv/consts/IN_ATTRIB.S | 2 + libc/sysv/consts/IN_CLOEXEC.S | 2 + libc/sysv/consts/IN_CLOSE.S | 2 + libc/sysv/consts/IN_CLOSE_NOWRITE.S | 2 + libc/sysv/consts/IN_CLOSE_WRITE.S | 2 + libc/sysv/consts/IN_CREATE.S | 2 + libc/sysv/consts/IN_DELETE.S | 2 + libc/sysv/consts/IN_DELETE_SELF.S | 2 + libc/sysv/consts/IN_DONT_FOLLOW.S | 2 + libc/sysv/consts/IN_EXCL_UNLINK.S | 2 + libc/sysv/consts/IN_IGNORED.S | 2 + libc/sysv/consts/IN_ISDIR.S | 2 + libc/sysv/consts/IN_LOOPBACKNET.S | 2 + libc/sysv/consts/IN_MASK_ADD.S | 2 + libc/sysv/consts/IN_MODIFY.S | 2 + libc/sysv/consts/IN_MOVE.S | 2 + libc/sysv/consts/IN_MOVED_FROM.S | 2 + libc/sysv/consts/IN_MOVED_TO.S | 2 + libc/sysv/consts/IN_MOVE_SELF.S | 2 + libc/sysv/consts/IN_NONBLOCK.S | 2 + libc/sysv/consts/IN_ONESHOT.S | 2 + libc/sysv/consts/IN_ONLYDIR.S | 2 + libc/sysv/consts/IN_OPEN.S | 2 + libc/sysv/consts/IN_Q_OVERFLOW.S | 2 + libc/sysv/consts/IN_UNMOUNT.S | 2 + libc/sysv/consts/MAXHOSTNAMELEN.S | 2 + libc/sysv/consts/MAXPATHLEN.S | 2 + libc/sysv/consts/MAXSYMLINKS.S | 2 + libc/sysv/consts/MESSAGE_REJECT.S | 2 + libc/sysv/consts/MISCOMPARE.S | 2 + libc/sysv/consts/MOVE_MEDIUM.S | 2 + libc/sysv/consts/MQ_PRIO_MAX.S | 2 + libc/sysv/consts/MTCOMPRESSION.S | 2 + libc/sysv/consts/MTERASE.S | 2 + libc/sysv/consts/MTFSFM.S | 2 + libc/sysv/consts/MTLOAD.S | 2 + libc/sysv/consts/MTLOCK.S | 2 + libc/sysv/consts/MTMKPART.S | 2 + libc/sysv/consts/MTRAS1.S | 2 + libc/sysv/consts/MTRAS3.S | 2 + libc/sysv/consts/MTRETEN.S | 2 + libc/sysv/consts/MTSETBLK.S | 2 + libc/sysv/consts/MTSETDENSITY.S | 2 + libc/sysv/consts/MTSETDRVBUFFER.S | 2 + libc/sysv/consts/MTSETPART.S | 2 + libc/sysv/consts/MTUNLOAD.S | 2 + libc/sysv/consts/MTUNLOCK.S | 2 + libc/sysv/consts/NCARGS.S | 2 + libc/sysv/consts/ND_NA_FLAG_OVERRIDE.S | 2 + libc/sysv/consts/ND_NA_FLAG_ROUTER.S | 2 + libc/sysv/consts/ND_NA_FLAG_SOLICITED.S | 2 + libc/sysv/consts/ND_NEIGHBOR_ADVERT.S | 2 + libc/sysv/consts/ND_NEIGHBOR_SOLICIT.S | 2 + libc/sysv/consts/ND_RA_FLAG_HOME_AGENT.S | 2 + libc/sysv/consts/ND_RA_FLAG_MANAGED.S | 2 + libc/sysv/consts/ND_RA_FLAG_OTHER.S | 2 + libc/sysv/consts/ND_REDIRECT.S | 2 + libc/sysv/consts/ND_ROUTER_ADVERT.S | 2 + libc/sysv/consts/ND_ROUTER_SOLICIT.S | 2 + libc/sysv/consts/NEW_TIME.S | 2 + libc/sysv/consts/NFDBITS.S | 2 + libc/sysv/consts/NGREG.S | 2 + libc/sysv/consts/NGROUPS.S | 2 + libc/sysv/consts/NGROUPS_MAX.S | 2 + libc/sysv/consts/NL_ARGMAX.S | 2 + libc/sysv/consts/NL_CAT_LOCALE.S | 2 + libc/sysv/consts/NL_LANGMAX.S | 2 + libc/sysv/consts/NL_MSGMAX.S | 2 + libc/sysv/consts/NL_NMAX.S | 2 + libc/sysv/consts/NL_SETD.S | 2 + libc/sysv/consts/NL_SETMAX.S | 2 + libc/sysv/consts/NL_TEXTMAX.S | 2 + libc/sysv/consts/NOEXPR.S | 2 + libc/sysv/consts/NOFILE.S | 2 + libc/sysv/consts/NOGROUP.S | 2 + libc/sysv/consts/NOSTR.S | 2 + libc/sysv/consts/OLD_TIME.S | 2 + libc/sysv/consts/ORDERED_QUEUE_TAG.S | 2 + libc/sysv/consts/ORIG_RAX.S | 2 + libc/sysv/consts/PM_STR.S | 2 + libc/sysv/consts/PRE_FETCH.S | 2 + libc/sysv/consts/QUEUE_FULL.S | 2 + libc/sysv/consts/RADIXCHAR.S | 2 + libc/sysv/consts/REASSIGN_BLOCKS.S | 2 + libc/sysv/consts/RECEIVE_DIAGNOSTIC.S | 2 + libc/sysv/consts/RECOVERED_ERROR.S | 2 + libc/sysv/consts/RECOVER_BUFFERED_DATA.S | 2 + libc/sysv/consts/RELEASE_RECOVERY.S | 2 + libc/sysv/consts/REQUEST_SENSE.S | 2 + libc/sysv/consts/RESERVATION_CONFLICT.S | 2 + libc/sysv/consts/RESERVE.S | 2 + libc/sysv/consts/RESERVE_10.S | 2 + libc/sysv/consts/RESTORE_POINTERS.S | 2 + libc/sysv/consts/REZERO_UNIT.S | 2 + libc/sysv/consts/RE_DUP_MAX.S | 2 + libc/sysv/consts/RTCF_DOREDIRECT.S | 2 + libc/sysv/consts/RUN_LVL.S | 2 + libc/sysv/consts/SAVE_POINTERS.S | 2 + libc/sysv/consts/SEM_INFO.S | 2 + libc/sysv/consts/SEM_STAT.S | 2 + libc/sysv/consts/SEM_VALUE_MAX.S | 2 + libc/sysv/consts/SHMLBA.S | 2 + libc/sysv/consts/SIMPLE_QUEUE_TAG.S | 2 + libc/sysv/consts/SPACE.S | 2 + libc/sysv/consts/START_STOP.S | 2 + libc/sysv/consts/STATUS_MASK.S | 2 + libc/sysv/consts/STA_RONLY.S | 2 + libc/sysv/consts/SWAP_FLAG_DISCARD.S | 2 + libc/sysv/consts/SYMLOOP_MAX.S | 2 + libc/sysv/consts/SYNCHRONIZE_CACHE.S | 2 + libc/sysv/consts/THOUSEP.S | 2 + libc/sysv/consts/TH_ACK.S | 2 + libc/sysv/consts/TH_FIN.S | 2 + libc/sysv/consts/TH_PUSH.S | 2 + libc/sysv/consts/TH_RST.S | 2 + libc/sysv/consts/TH_SYN.S | 2 + libc/sysv/consts/TH_URG.S | 2 + libc/sysv/consts/TIME_UTC.S | 2 + libc/sysv/consts/TMP_MAX.S | 2 + libc/sysv/consts/TSS_DTOR_ITERATIONS.S | 2 + libc/sysv/consts/TTY_NAME_MAX.S | 2 + libc/sysv/consts/UIO_MAXIOV.S | 2 + libc/sysv/consts/UNIT_ATTENTION.S | 2 + libc/sysv/consts/UPDATE_BLOCK.S | 2 + libc/sysv/consts/USER_PROCESS.S | 2 + libc/sysv/consts/UT_HOSTSIZE.S | 2 + libc/sysv/consts/UT_LINESIZE.S | 2 + libc/sysv/consts/UT_NAMESIZE.S | 2 + libc/sysv/consts/YESEXPR.S | 2 + libc/sysv/consts/YESSTR.S | 2 + libc/sysv/consts/_XOPEN_ENH_I18N.S | 2 + libc/sysv/consts/_XOPEN_IOV_MAX.S | 2 + libc/sysv/consts/_XOPEN_NAME_MAX.S | 2 + libc/sysv/consts/_XOPEN_PATH_MAX.S | 2 + libc/sysv/consts/_XOPEN_SOURCE.S | 2 + libc/sysv/consts/_XOPEN_UNIX.S | 2 + libc/sysv/consts/_XOPEN_VERSION.S | 2 + libc/sysv/consts/__NR___mac_syscall.S | 2 + libc/sysv/consts/__NR___sysctl.S | 2 + libc/sysv/consts/__NR__umtx_op.S | 2 + libc/sysv/consts/__NR_abort2.S | 2 + libc/sysv/consts/__NR_abort_with_payload.S | 2 + libc/sysv/consts/__NR_accept_nocancel.S | 2 + libc/sysv/consts/__NR_access_extended.S | 2 + libc/sysv/consts/__NR_acl_aclcheck_fd.S | 2 + libc/sysv/consts/__NR_acl_aclcheck_file.S | 2 + libc/sysv/consts/__NR_acl_aclcheck_link.S | 2 + libc/sysv/consts/__NR_acl_delete_fd.S | 2 + libc/sysv/consts/__NR_acl_delete_file.S | 2 + libc/sysv/consts/__NR_acl_delete_link.S | 2 + libc/sysv/consts/__NR_acl_get_fd.S | 2 + libc/sysv/consts/__NR_acl_get_file.S | 2 + libc/sysv/consts/__NR_acl_get_link.S | 2 + libc/sysv/consts/__NR_acl_set_fd.S | 2 + libc/sysv/consts/__NR_acl_set_file.S | 2 + libc/sysv/consts/__NR_acl_set_link.S | 2 + libc/sysv/consts/__NR_adjfreq.S | 2 + libc/sysv/consts/__NR_adjtime.S | 2 + libc/sysv/consts/__NR_afs3_syscall.S | 2 + libc/sysv/consts/__NR_aio_cancel.S | 2 + libc/sysv/consts/__NR_aio_error.S | 2 + libc/sysv/consts/__NR_aio_fsync.S | 2 + libc/sysv/consts/__NR_aio_mlock.S | 2 + libc/sysv/consts/__NR_aio_read.S | 2 + libc/sysv/consts/__NR_aio_return.S | 2 + libc/sysv/consts/__NR_aio_suspend.S | 2 + libc/sysv/consts/__NR_aio_suspend_nocancel.S | 2 + libc/sysv/consts/__NR_aio_waitcomplete.S | 2 + libc/sysv/consts/__NR_aio_write.S | 2 + libc/sysv/consts/__NR_audit.S | 2 + libc/sysv/consts/__NR_audit_session_join.S | 2 + libc/sysv/consts/__NR_audit_session_port.S | 2 + libc/sysv/consts/__NR_audit_session_self.S | 2 + libc/sysv/consts/__NR_auditctl.S | 2 + libc/sysv/consts/__NR_auditon.S | 2 + libc/sysv/consts/__NR_bindat.S | 2 + libc/sysv/consts/__NR_break.S | 2 + libc/sysv/consts/__NR_bsdthread_ctl.S | 2 + libc/sysv/consts/__NR_bsdthread_terminate.S | 2 + libc/sysv/consts/__NR_cap_enter.S | 2 + libc/sysv/consts/__NR_cap_fcntls_get.S | 2 + libc/sysv/consts/__NR_cap_fcntls_limit.S | 2 + libc/sysv/consts/__NR_cap_getmode.S | 2 + libc/sysv/consts/__NR_cap_ioctls_get.S | 2 + libc/sysv/consts/__NR_cap_ioctls_limit.S | 2 + libc/sysv/consts/__NR_cap_rights_get.S | 2 + libc/sysv/consts/__NR_cap_rights_limit.S | 2 + libc/sysv/consts/__NR_change_fdguard_np.S | 2 + libc/sysv/consts/__NR_chflags.S | 2 + libc/sysv/consts/__NR_chflagsat.S | 2 + libc/sysv/consts/__NR_chmod_extended.S | 2 + libc/sysv/consts/__NR_clock_getcpuclockid2.S | 2 + libc/sysv/consts/__NR_clonefileat.S | 2 + libc/sysv/consts/__NR_close_nocancel.S | 2 + libc/sysv/consts/__NR_closefrom.S | 2 + libc/sysv/consts/__NR_coalition.S | 2 + libc/sysv/consts/__NR_coalition_info.S | 2 + libc/sysv/consts/__NR_connect_nocancel.S | 2 + libc/sysv/consts/__NR_connectat.S | 2 + libc/sysv/consts/__NR_connectx.S | 2 + libc/sysv/consts/__NR_copyfile.S | 2 + libc/sysv/consts/__NR_cpuset.S | 2 + libc/sysv/consts/__NR_cpuset_getdomain.S | 2 + libc/sysv/consts/__NR_cpuset_getid.S | 2 + libc/sysv/consts/__NR_cpuset_setdomain.S | 2 + libc/sysv/consts/__NR_cpuset_setid.S | 2 + libc/sysv/consts/__NR_csops.S | 2 + libc/sysv/consts/__NR_csops_audittoken.S | 2 + libc/sysv/consts/__NR_csrctl.S | 2 + libc/sysv/consts/__NR_delete.S | 2 + libc/sysv/consts/__NR_disable_threadsignal.S | 2 + libc/sysv/consts/__NR_disconnectx.S | 2 + libc/sysv/consts/__NR_eaccess.S | 2 + libc/sysv/consts/__NR_exchangedata.S | 2 + libc/sysv/consts/__NR_extattr_delete_fd.S | 2 + libc/sysv/consts/__NR_extattr_delete_file.S | 2 + libc/sysv/consts/__NR_extattr_delete_link.S | 2 + libc/sysv/consts/__NR_extattr_get_fd.S | 2 + libc/sysv/consts/__NR_extattr_get_file.S | 2 + libc/sysv/consts/__NR_extattr_get_link.S | 2 + libc/sysv/consts/__NR_extattr_list_fd.S | 2 + libc/sysv/consts/__NR_extattr_list_file.S | 2 + libc/sysv/consts/__NR_extattr_list_link.S | 2 + libc/sysv/consts/__NR_extattr_set_fd.S | 2 + libc/sysv/consts/__NR_extattr_set_file.S | 2 + libc/sysv/consts/__NR_extattr_set_link.S | 2 + libc/sysv/consts/__NR_extattrctl.S | 2 + libc/sysv/consts/__NR_fchflags.S | 2 + libc/sysv/consts/__NR_fchmod_extended.S | 2 + libc/sysv/consts/__NR_fclonefileat.S | 2 + libc/sysv/consts/__NR_fcntl_nocancel.S | 2 + libc/sysv/consts/__NR_fexecve.S | 2 + libc/sysv/consts/__NR_ffclock_getcounter.S | 2 + libc/sysv/consts/__NR_ffclock_getestimate.S | 2 + libc/sysv/consts/__NR_ffclock_setestimate.S | 2 + libc/sysv/consts/__NR_ffsctl.S | 2 + libc/sysv/consts/__NR_fgetattrlist.S | 2 + libc/sysv/consts/__NR_fhlink.S | 2 + libc/sysv/consts/__NR_fhlinkat.S | 2 + libc/sysv/consts/__NR_fhopen.S | 2 + libc/sysv/consts/__NR_fhreadlink.S | 2 + libc/sysv/consts/__NR_fhstat.S | 2 + libc/sysv/consts/__NR_fhstatfs.S | 2 + libc/sysv/consts/__NR_fileport_makefd.S | 2 + libc/sysv/consts/__NR_fileport_makeport.S | 2 + libc/sysv/consts/__NR_fmount.S | 2 + libc/sysv/consts/__NR_fpathconf.S | 2 + libc/sysv/consts/__NR_fs_snapshot.S | 2 + libc/sysv/consts/__NR_fsctl.S | 2 + libc/sysv/consts/__NR_fsetattrlist.S | 2 + libc/sysv/consts/__NR_fstat_extended.S | 2 + libc/sysv/consts/__NR_fsync_nocancel.S | 2 + libc/sysv/consts/__NR_get_tcb.S | 2 + libc/sysv/consts/__NR_getattrlist.S | 2 + libc/sysv/consts/__NR_getattrlistat.S | 2 + libc/sysv/consts/__NR_getattrlistbulk.S | 2 + libc/sysv/consts/__NR_getaudit.S | 2 + libc/sysv/consts/__NR_getaudit_addr.S | 2 + libc/sysv/consts/__NR_getauid.S | 2 + libc/sysv/consts/__NR_getcontext.S | 2 + libc/sysv/consts/__NR_getdirentries.S | 2 + libc/sysv/consts/__NR_getdirentriesattr.S | 2 + libc/sysv/consts/__NR_getdtablecount.S | 2 + libc/sysv/consts/__NR_getdtablesize.S | 2 + libc/sysv/consts/__NR_getfh.S | 2 + libc/sysv/consts/__NR_getfhat.S | 2 + libc/sysv/consts/__NR_getfsstat.S | 2 + libc/sysv/consts/__NR_gethostid.S | 2 + libc/sysv/consts/__NR_gethostuuid.S | 2 + libc/sysv/consts/__NR_getkerninfo.S | 2 + libc/sysv/consts/__NR_getlogin.S | 2 + libc/sysv/consts/__NR_getlogin_r.S | 2 + libc/sysv/consts/__NR_getloginclass.S | 2 + libc/sysv/consts/__NR_getpagesize.S | 2 + libc/sysv/consts/__NR_getrtable.S | 2 + libc/sysv/consts/__NR_getsgroups.S | 2 + libc/sysv/consts/__NR_getthrid.S | 2 + libc/sysv/consts/__NR_getwgroups.S | 2 + libc/sysv/consts/__NR_grab_pgo_data.S | 2 + libc/sysv/consts/__NR_gssd_syscall.S | 2 + libc/sysv/consts/__NR_guarded_close_np.S | 2 + libc/sysv/consts/__NR_guarded_kqueue_np.S | 2 + .../consts/__NR_guarded_open_dprotected_np.S | 2 + libc/sysv/consts/__NR_guarded_open_np.S | 2 + libc/sysv/consts/__NR_guarded_pwrite_np.S | 2 + libc/sysv/consts/__NR_guarded_write_np.S | 2 + libc/sysv/consts/__NR_guarded_writev_np.S | 2 + libc/sysv/consts/__NR_identitysvc.S | 2 + libc/sysv/consts/__NR_initgroups.S | 2 + libc/sysv/consts/__NR_iopolicysys.S | 2 + libc/sysv/consts/__NR_issetugid.S | 2 + libc/sysv/consts/__NR_jail.S | 2 + libc/sysv/consts/__NR_jail_attach.S | 2 + libc/sysv/consts/__NR_jail_get.S | 2 + libc/sysv/consts/__NR_jail_remove.S | 2 + libc/sysv/consts/__NR_jail_set.S | 2 + libc/sysv/consts/__NR_kas_info.S | 2 + libc/sysv/consts/__NR_kbind.S | 2 + libc/sysv/consts/__NR_kdebug_trace.S | 2 + libc/sysv/consts/__NR_kdebug_trace_string.S | 2 + libc/sysv/consts/__NR_kdebug_typefilter.S | 2 + libc/sysv/consts/__NR_kenv.S | 2 + libc/sysv/consts/__NR_kevent.S | 2 + libc/sysv/consts/__NR_kevent_id.S | 2 + libc/sysv/consts/__NR_kevent_qos.S | 2 + libc/sysv/consts/__NR_kldfind.S | 2 + libc/sysv/consts/__NR_kldfirstmod.S | 2 + libc/sysv/consts/__NR_kldload.S | 2 + libc/sysv/consts/__NR_kldnext.S | 2 + libc/sysv/consts/__NR_kldstat.S | 2 + libc/sysv/consts/__NR_kldsym.S | 2 + libc/sysv/consts/__NR_kldunload.S | 2 + libc/sysv/consts/__NR_kldunloadf.S | 2 + libc/sysv/consts/__NR_kmq_notify.S | 2 + libc/sysv/consts/__NR_kmq_setattr.S | 2 + libc/sysv/consts/__NR_kmq_timedreceive.S | 2 + libc/sysv/consts/__NR_kmq_timedsend.S | 2 + libc/sysv/consts/__NR_kmq_unlink.S | 2 + libc/sysv/consts/__NR_kqueue.S | 2 + libc/sysv/consts/__NR_ksem_close.S | 2 + libc/sysv/consts/__NR_ksem_destroy.S | 2 + libc/sysv/consts/__NR_ksem_getvalue.S | 2 + libc/sysv/consts/__NR_ksem_init.S | 2 + libc/sysv/consts/__NR_ksem_open.S | 2 + libc/sysv/consts/__NR_ksem_post.S | 2 + libc/sysv/consts/__NR_ksem_timedwait.S | 2 + libc/sysv/consts/__NR_ksem_trywait.S | 2 + libc/sysv/consts/__NR_ksem_unlink.S | 2 + libc/sysv/consts/__NR_ksem_wait.S | 2 + libc/sysv/consts/__NR_ktimer_create.S | 2 + libc/sysv/consts/__NR_ktimer_delete.S | 2 + libc/sysv/consts/__NR_ktimer_getoverrun.S | 2 + libc/sysv/consts/__NR_ktimer_gettime.S | 2 + libc/sysv/consts/__NR_ktimer_settime.S | 2 + libc/sysv/consts/__NR_lchflags.S | 2 + libc/sysv/consts/__NR_lchmod.S | 2 + libc/sysv/consts/__NR_ledger.S | 2 + libc/sysv/consts/__NR_lgetfh.S | 2 + libc/sysv/consts/__NR_lio_listio.S | 2 + libc/sysv/consts/__NR_lpathconf.S | 2 + libc/sysv/consts/__NR_lstat_extended.S | 2 + libc/sysv/consts/__NR_lutimes.S | 2 + libc/sysv/consts/__NR_mac_execve.S | 2 + libc/sysv/consts/__NR_mac_get_fd.S | 2 + libc/sysv/consts/__NR_mac_get_file.S | 2 + libc/sysv/consts/__NR_mac_get_link.S | 2 + libc/sysv/consts/__NR_mac_get_mount.S | 2 + libc/sysv/consts/__NR_mac_get_pid.S | 2 + libc/sysv/consts/__NR_mac_get_proc.S | 2 + libc/sysv/consts/__NR_mac_getfsstat.S | 2 + libc/sysv/consts/__NR_mac_mount.S | 2 + libc/sysv/consts/__NR_mac_set_fd.S | 2 + libc/sysv/consts/__NR_mac_set_file.S | 2 + libc/sysv/consts/__NR_mac_set_link.S | 2 + libc/sysv/consts/__NR_mac_set_proc.S | 2 + libc/sysv/consts/__NR_mac_syscall.S | 2 + libc/sysv/consts/__NR_memorystatus_control.S | 2 + .../sysv/consts/__NR_memorystatus_get_level.S | 2 + libc/sysv/consts/__NR_microstackshot.S | 2 + libc/sysv/consts/__NR_minherit.S | 2 + libc/sysv/consts/__NR_mkdir_extended.S | 2 + libc/sysv/consts/__NR_mkfifo_extended.S | 2 + libc/sysv/consts/__NR_modfind.S | 2 + libc/sysv/consts/__NR_modfnext.S | 2 + libc/sysv/consts/__NR_modnext.S | 2 + libc/sysv/consts/__NR_modstat.S | 2 + libc/sysv/consts/__NR_modwatch.S | 2 + libc/sysv/consts/__NR_mquery.S | 2 + libc/sysv/consts/__NR_mremap_encrypted.S | 2 + libc/sysv/consts/__NR_msgrcv_nocancel.S | 2 + libc/sysv/consts/__NR_msgsnd_nocancel.S | 2 + libc/sysv/consts/__NR_msgsys.S | 2 + libc/sysv/consts/__NR_msync_nocancel.S | 2 + libc/sysv/consts/__NR_necp_client_action.S | 2 + libc/sysv/consts/__NR_necp_match_policy.S | 2 + libc/sysv/consts/__NR_necp_open.S | 2 + libc/sysv/consts/__NR_necp_session_action.S | 2 + libc/sysv/consts/__NR_necp_session_open.S | 2 + libc/sysv/consts/__NR_net_qos_guideline.S | 2 + libc/sysv/consts/__NR_netagent_trigger.S | 2 + libc/sysv/consts/__NR_nfsclnt.S | 2 + libc/sysv/consts/__NR_nfssvc.S | 2 + libc/sysv/consts/__NR_nfstat.S | 2 + libc/sysv/consts/__NR_nlm_syscall.S | 2 + libc/sysv/consts/__NR_nlstat.S | 2 + libc/sysv/consts/__NR_nmount.S | 2 + libc/sysv/consts/__NR_nnpfs_syscall.S | 2 + libc/sysv/consts/__NR_nstat.S | 2 + libc/sysv/consts/__NR_ntp_adjtime.S | 2 + libc/sysv/consts/__NR_ntp_gettime.S | 2 + libc/sysv/consts/__NR_obreak.S | 2 + libc/sysv/consts/__NR_old_semwait_signal.S | 2 + .../consts/__NR_old_semwait_signal_nocancel.S | 2 + libc/sysv/consts/__NR_open_dprotected_np.S | 2 + libc/sysv/consts/__NR_open_extended.S | 2 + libc/sysv/consts/__NR_open_nocancel.S | 2 + libc/sysv/consts/__NR_openat_nocancel.S | 2 + libc/sysv/consts/__NR_openbyid_np.S | 2 + libc/sysv/consts/__NR_os_fault_with_payload.S | 2 + libc/sysv/consts/__NR_pathconf.S | 2 + libc/sysv/consts/__NR_pdfork.S | 2 + libc/sysv/consts/__NR_pdgetpid.S | 2 + libc/sysv/consts/__NR_pdkill.S | 2 + libc/sysv/consts/__NR_peeloff.S | 2 + libc/sysv/consts/__NR_persona.S | 2 + libc/sysv/consts/__NR_pid_hibernate.S | 2 + libc/sysv/consts/__NR_pid_resume.S | 2 + libc/sysv/consts/__NR_pid_shutdown_sockets.S | 2 + libc/sysv/consts/__NR_pid_suspend.S | 2 + libc/sysv/consts/__NR_poll_nocancel.S | 2 + libc/sysv/consts/__NR_posix_openpt.S | 2 + libc/sysv/consts/__NR_pread_nocancel.S | 2 + libc/sysv/consts/__NR_proc_info.S | 2 + libc/sysv/consts/__NR_proc_rlimit_control.S | 2 + libc/sysv/consts/__NR_proc_trace_log.S | 2 + libc/sysv/consts/__NR_proc_uuid_policy.S | 2 + libc/sysv/consts/__NR_procctl.S | 2 + libc/sysv/consts/__NR_process_policy.S | 2 + libc/sysv/consts/__NR_profil.S | 2 + libc/sysv/consts/__NR_pselect_nocancel.S | 2 + libc/sysv/consts/__NR_psynch_cvbroad.S | 2 + libc/sysv/consts/__NR_psynch_cvclrprepost.S | 2 + libc/sysv/consts/__NR_psynch_cvsignal.S | 2 + libc/sysv/consts/__NR_psynch_cvwait.S | 2 + libc/sysv/consts/__NR_psynch_mutexdrop.S | 2 + libc/sysv/consts/__NR_psynch_mutexwait.S | 2 + libc/sysv/consts/__NR_psynch_rw_downgrade.S | 2 + libc/sysv/consts/__NR_psynch_rw_longrdlock.S | 2 + libc/sysv/consts/__NR_psynch_rw_rdlock.S | 2 + libc/sysv/consts/__NR_psynch_rw_unlock.S | 2 + libc/sysv/consts/__NR_psynch_rw_unlock2.S | 2 + libc/sysv/consts/__NR_psynch_rw_upgrade.S | 2 + libc/sysv/consts/__NR_psynch_rw_wrlock.S | 2 + libc/sysv/consts/__NR_psynch_rw_yieldwrlock.S | 2 + libc/sysv/consts/__NR_pthread_canceled.S | 2 + libc/sysv/consts/__NR_pthread_chdir.S | 2 + libc/sysv/consts/__NR_pthread_fchdir.S | 2 + libc/sysv/consts/__NR_pthread_kill.S | 2 + libc/sysv/consts/__NR_pthread_markcancel.S | 2 + libc/sysv/consts/__NR_pthread_sigmask.S | 2 + libc/sysv/consts/__NR_pwrite_nocancel.S | 2 + libc/sysv/consts/__NR_quota.S | 2 + libc/sysv/consts/__NR_rctl_add_rule.S | 2 + libc/sysv/consts/__NR_rctl_get_limits.S | 2 + libc/sysv/consts/__NR_rctl_get_racct.S | 2 + libc/sysv/consts/__NR_rctl_get_rules.S | 2 + libc/sysv/consts/__NR_rctl_remove_rule.S | 2 + libc/sysv/consts/__NR_read_nocancel.S | 2 + libc/sysv/consts/__NR_readv_nocancel.S | 2 + libc/sysv/consts/__NR_recv.S | 2 + libc/sysv/consts/__NR_recvfrom_nocancel.S | 2 + libc/sysv/consts/__NR_recvmsg_nocancel.S | 2 + libc/sysv/consts/__NR_recvmsg_x.S | 2 + libc/sysv/consts/__NR_renameatx_np.S | 2 + libc/sysv/consts/__NR_revoke.S | 2 + libc/sysv/consts/__NR_rfork.S | 2 + libc/sysv/consts/__NR_rtprio.S | 2 + libc/sysv/consts/__NR_rtprio_thread.S | 2 + libc/sysv/consts/__NR_sctp_generic_recvmsg.S | 2 + libc/sysv/consts/__NR_sctp_generic_sendmsg.S | 2 + .../consts/__NR_sctp_generic_sendmsg_iov.S | 2 + libc/sysv/consts/__NR_sctp_peeloff.S | 2 + libc/sysv/consts/__NR_searchfs.S | 2 + libc/sysv/consts/__NR_select_nocancel.S | 2 + libc/sysv/consts/__NR_sem_close.S | 2 + libc/sysv/consts/__NR_sem_open.S | 2 + libc/sysv/consts/__NR_sem_post.S | 2 + libc/sysv/consts/__NR_sem_trywait.S | 2 + libc/sysv/consts/__NR_sem_unlink.S | 2 + libc/sysv/consts/__NR_sem_wait.S | 2 + libc/sysv/consts/__NR_sem_wait_nocancel.S | 2 + libc/sysv/consts/__NR_semsys.S | 2 + libc/sysv/consts/__NR_semwait_signal.S | 2 + .../consts/__NR_semwait_signal_nocancel.S | 2 + libc/sysv/consts/__NR_send.S | 2 + libc/sysv/consts/__NR_sendmsg_nocancel.S | 2 + libc/sysv/consts/__NR_sendmsg_x.S | 2 + libc/sysv/consts/__NR_sendsyslog.S | 2 + libc/sysv/consts/__NR_sendto_nocancel.S | 2 + libc/sysv/consts/__NR_set_tcb.S | 2 + libc/sysv/consts/__NR_setattrlist.S | 2 + libc/sysv/consts/__NR_setattrlistat.S | 2 + libc/sysv/consts/__NR_setaudit.S | 2 + libc/sysv/consts/__NR_setaudit_addr.S | 2 + libc/sysv/consts/__NR_setauid.S | 2 + libc/sysv/consts/__NR_setcontext.S | 2 + libc/sysv/consts/__NR_setegid.S | 2 + libc/sysv/consts/__NR_seteuid.S | 2 + libc/sysv/consts/__NR_setfib.S | 2 + libc/sysv/consts/__NR_sethostid.S | 2 + libc/sysv/consts/__NR_setlogin.S | 2 + libc/sysv/consts/__NR_setloginclass.S | 2 + libc/sysv/consts/__NR_setprivexec.S | 2 + libc/sysv/consts/__NR_setrtable.S | 2 + libc/sysv/consts/__NR_setsgroups.S | 2 + libc/sysv/consts/__NR_settid.S | 2 + libc/sysv/consts/__NR_settid_with_pid.S | 2 + libc/sysv/consts/__NR_setugid.S | 2 + libc/sysv/consts/__NR_setwgroups.S | 2 + libc/sysv/consts/__NR_sfi_ctl.S | 2 + libc/sysv/consts/__NR_sfi_pidctl.S | 2 + .../sysv/consts/__NR_shared_region_check_np.S | 2 + .../__NR_shared_region_map_and_slide_np.S | 2 + libc/sysv/consts/__NR_shm_open.S | 2 + libc/sysv/consts/__NR_shm_unlink.S | 2 + libc/sysv/consts/__NR_shmsys.S | 2 + libc/sysv/consts/__NR_sigblock.S | 2 + libc/sysv/consts/__NR_sigqueue.S | 2 + libc/sysv/consts/__NR_sigsetmask.S | 2 + libc/sysv/consts/__NR_sigstack.S | 2 + libc/sysv/consts/__NR_sigsuspend_nocancel.S | 2 + libc/sysv/consts/__NR_sigvec.S | 2 + libc/sysv/consts/__NR_sigwait.S | 2 + libc/sysv/consts/__NR_sigwait_nocancel.S | 2 + libc/sysv/consts/__NR_sigwaitinfo.S | 2 + libc/sysv/consts/__NR_socket_delegate.S | 2 + libc/sysv/consts/__NR_sstk.S | 2 + .../consts/__NR_stack_snapshot_with_config.S | 2 + libc/sysv/consts/__NR_stat_extended.S | 2 + libc/sysv/consts/__NR_swapcontext.S | 2 + libc/sysv/consts/__NR_swapctl.S | 2 + libc/sysv/consts/__NR_syscall.S | 2 + libc/sysv/consts/__NR_sysctl.S | 2 + libc/sysv/consts/__NR_sysctlbyname.S | 2 + libc/sysv/consts/__NR_system_override.S | 2 + libc/sysv/consts/__NR_telemetry.S | 2 + .../sysv/consts/__NR_terminate_with_payload.S | 2 + libc/sysv/consts/__NR_tfork.S | 2 + libc/sysv/consts/__NR_thr_create.S | 2 + libc/sysv/consts/__NR_thr_exit.S | 2 + libc/sysv/consts/__NR_thr_kill.S | 2 + libc/sysv/consts/__NR_thr_kill2.S | 2 + libc/sysv/consts/__NR_thr_self.S | 2 + libc/sysv/consts/__NR_thr_set_name.S | 2 + libc/sysv/consts/__NR_thr_suspend.S | 2 + libc/sysv/consts/__NR_thr_wake.S | 2 + libc/sysv/consts/__NR_thread_selfcounts.S | 2 + libc/sysv/consts/__NR_thread_selfid.S | 2 + libc/sysv/consts/__NR_thread_selfusage.S | 2 + libc/sysv/consts/__NR_threxit.S | 2 + libc/sysv/consts/__NR_thrkill.S | 2 + libc/sysv/consts/__NR_thrsigdivert.S | 2 + libc/sysv/consts/__NR_thrsleep.S | 2 + libc/sysv/consts/__NR_thrwakeup.S | 2 + libc/sysv/consts/__NR_ulock_wait.S | 2 + libc/sysv/consts/__NR_ulock_wake.S | 2 + libc/sysv/consts/__NR_umask_extended.S | 2 + libc/sysv/consts/__NR_undelete.S | 2 + libc/sysv/consts/__NR_unmount.S | 2 + libc/sysv/consts/__NR_unveil.S | 2 + libc/sysv/consts/__NR_usrctl.S | 2 + libc/sysv/consts/__NR_utrace.S | 2 + libc/sysv/consts/__NR_uuidgen.S | 2 + libc/sysv/consts/__NR_vadvise.S | 2 + libc/sysv/consts/__NR_vfs_purge.S | 2 + libc/sysv/consts/__NR_vm_pressure_monitor.S | 2 + libc/sysv/consts/__NR_wait.S | 2 + libc/sysv/consts/__NR_wait4_nocancel.S | 2 + libc/sysv/consts/__NR_wait6.S | 2 + libc/sysv/consts/__NR_waitevent.S | 2 + libc/sysv/consts/__NR_waitid_nocancel.S | 2 + libc/sysv/consts/__NR_watchevent.S | 2 + libc/sysv/consts/__NR_work_interval_ctl.S | 2 + libc/sysv/consts/__NR_workq_kernreturn.S | 2 + libc/sysv/consts/__NR_workq_open.S | 2 + libc/sysv/consts/__NR_write_nocancel.S | 2 + libc/sysv/consts/__NR_writev_nocancel.S | 2 + libc/sysv/consts/__NR_yield.S | 2 + libc/sysv/consts/fan.h | 115 +- libc/sysv/consts/in.h | 87 +- libc/sysv/consts/inaddr.h | 2 - libc/sysv/consts/nd.h | 34 + libc/sysv/consts/nr.h | 1529 +++++++++++++---- libc/sysv/consts/nrlinux.h | 1 + libc/sysv/consts/th.h | 25 +- libc/sysv/consts/xopen.h | 12 - libc/testlib/benchrunner.c | 6 + libc/testlib/formatstr.c | 1 - libc/testlib/geterrno.c | 24 - libc/testlib/seterrno.c | 24 - libc/testlib/showerror.c | 2 - libc/testlib/strerror.c | 25 - libc/testlib/testlib.h | 46 +- libc/testlib/testlib.mk | 4 +- libc/testlib/ugly.h | 35 + libc/time/asctime.c | 2 - libc/unicode/unicode.mk | 1 + libc/x/makedirs.c | 3 +- libc/x/xcalloc.c | 1 + libc/x/xload.c | 1 - libc/x/xloadzd.c | 1 - libc/x/xmalloc.c | 1 + libc/x/xmemalign.c | 1 + libc/x/xmemalignzero.c | 1 + libc/x/xrealloc.c | 1 + libc/x/xstrdup.c | 11 +- libc/x/xstrndup.c | 1 + libc/x/xvalloc.c | 1 + libc/x/xvasprintf.c | 1 + libc/x/xvspawn.c | 1 - net/http/escapehtml.c | 1 - net/http/escapejsstringliteral.c | 2 - net/http/escapeurl.c | 2 - net/http/indentlines.c | 1 - net/http/parseurl.c | 1 - test/libc/bits/bextra_test.c | 3 +- test/libc/bits/bitreverse_test.c | 3 +- test/libc/bits/countbits_test.c | 4 +- test/libc/bits/integralarithmetic_test.c | 3 +- test/libc/bits/morton_test.c | 4 +- test/libc/bits/popcnt_test.c | 3 +- test/libc/bits/rounddown2pow_test.c | 4 +- test/libc/bits/roundup2log_test.c | 4 +- test/libc/bits/roundup2pow_test.c | 4 +- test/libc/calls/_timespec_test.c | 14 - test/libc/calls/access_test.c | 3 +- test/libc/calls/chdir_test.c | 3 +- test/libc/calls/clock_gettime_test.c | 1 - test/libc/calls/commandv_test.c | 3 +- test/libc/calls/dup_test.c | 5 + test/libc/calls/fcntl_test.c | 3 +- test/libc/calls/fileexists_test.c | 3 +- test/libc/calls/ftruncate_test.c | 3 +- test/libc/calls/getcwd_test.c | 4 +- test/libc/calls/lseek_test.c | 3 +- test/libc/calls/mkdir_test.c | 4 +- test/libc/calls/nanosleep_test.c | 1 - test/libc/calls/open_test.c | 7 +- test/libc/calls/openbsd_test.c | 61 - test/libc/calls/pledge2_test.c | 5 +- test/libc/calls/pledge_test.c | 1 - test/libc/calls/pread_test.c | 3 +- test/libc/calls/printargs_test.c | 3 +- test/libc/calls/pwrite_test.c | 3 +- test/libc/calls/readansi_test.c | 1 - test/libc/calls/readlinkat_test.c | 4 +- test/libc/calls/renameat_test.c | 3 +- test/libc/calls/reservefd_test.c | 7 - test/libc/calls/seccomp_test.c | 3 +- test/libc/calls/setitimer_test.c | 3 +- test/libc/calls/sigaction_test.c | 3 +- test/libc/calls/signal_test.c | 3 +- test/libc/calls/sigprocmask_test.c | 3 +- test/libc/calls/stat_test.c | 3 +- test/libc/calls/symlinkat_test.c | 4 +- test/libc/calls/test.mk | 6 +- test/libc/calls/unlinkat_test.c | 4 +- test/libc/calls/unveil_test.c | 2 - test/libc/calls/utimensat_test.c | 3 +- test/libc/calls/writev_test.c | 3 +- test/libc/dns/comparednsnames_test.c | 3 +- test/libc/dns/prototxt_test.c | 1 - test/libc/dns/resolvehostsreverse_test.c | 2 - test/libc/dns/servicestxt_test.c | 4 +- test/libc/fmt/formatbinary64_test.c | 1 - test/libc/fmt/formatflex64_test.c | 1 - test/libc/fmt/formathex64_test.c | 1 - test/libc/fmt/lengthuint64_test.c | 1 - test/libc/fmt/sscanf_test.c | 10 +- test/libc/intrin/pthread_mutex_lock_test.c | 5 - test/libc/log/backtrace.c | 1 - test/libc/log/test.mk | 4 +- test/libc/mem/malloc_test.c | 3 +- test/libc/mem/test.mk | 12 +- test/libc/nexgen32e/gclongjmp_test.c | 1 - test/libc/nexgen32e/kbase36_test.c | 1 - test/libc/nexgen32e/memrchr_test.c | 1 - test/libc/nexgen32e/test.mk | 2 +- test/libc/rand/mt19937_test.c | 1 - test/libc/rand/rand64_test.c | 6 - test/libc/release/test.mk | 4 +- test/libc/runtime/arch_prctl_test.c | 3 +- test/libc/runtime/clone_test.c | 4 +- test/libc/runtime/fork_test.c | 3 +- test/libc/runtime/memtrack_test.c | 4 +- test/libc/runtime/mmap_test.c | 4 +- test/libc/runtime/mprotect_test.c | 1 - test/libc/runtime/munmap_test.c | 1 - test/libc/sock/poll_test.c | 3 +- test/libc/sock/select_test.c | 3 +- test/libc/sock/sendfile_test.c | 3 +- test/libc/sock/sendrecvmsg_test.c | 1 - test/libc/sock/setsockopt_test.c | 4 +- test/libc/sock/socketpair_test.c | 3 +- test/libc/sock/unix_test.c | 4 +- test/libc/stdio/dtoa_test.c | 7 - test/libc/stdio/fputc_test.c | 2 - test/libc/stdio/fputs_test.c | 1 - test/libc/stdio/fwrite_test.c | 1 - test/libc/stdio/iconv_test.c | 1 - test/libc/stdio/memory_test.c | 6 - test/libc/stdio/spawn_test.c | 20 +- test/libc/stdio/tmpfile_test.c | 12 +- test/libc/stdio/ungetc_test.c | 1 - test/libc/stdio/vappendf_test.c | 2 - test/libc/str/isutf8_test.c | 2 +- test/libc/thread/spawn_test.c | 5 +- test/libc/tinymath/strtod_test.c | 1 - test/libc/x/utf16to32_test.c | 1 - test/libc/x/xstrcat_test.c | 2 - test/net/http/decodebase64_test.c | 1 - test/net/http/decodelatin1_test.c | 1 - test/net/http/encodehttpheadervalue_test.c | 1 - test/net/http/escapehtml_test.c | 1 - test/net/http/escapejsstringliteral_test.c | 1 - test/net/http/escapeurlparam_test.c | 1 - test/net/http/indentlines_test.c | 1 - test/net/http/parseurl_test.c | 1 - test/net/http/unchunk_test.c | 1 - test/net/http/visualizecontrolcodes_test.c | 1 - test/tool/net/redbean_test.c | 1 - third_party/bzip2/bzip2recover.c | 2 - third_party/bzip2/bzlib.c | 1 - third_party/chibicc/test/test.mk | 2 +- third_party/dlmalloc/dlmalloc.c | 1 - .../double-conversion/double-conversion.mk | 18 +- third_party/finger/display.c | 1 - third_party/finger/finger.c | 3 - third_party/finger/util.c | 2 - third_party/libcxx/__bsd_locale_fallbacks.h | 1 - third_party/libcxx/cstdlib | 1 - third_party/lua/lauxlib.c | 2 - third_party/lua/lbaselib.c | 1 - third_party/lua/ldblib.c | 1 - third_party/lua/ldebug.c | 1 - third_party/lua/ldo.c | 1 - third_party/lua/lgc.c | 1 - third_party/lua/liolib.c | 2 - third_party/lua/loadlib.c | 2 - third_party/lua/lobject.c | 1 - third_party/lua/loslib.c | 1 - third_party/lua/lparser.c | 1 - third_party/lua/lstate.c | 1 - third_party/lua/lstring.c | 1 - third_party/lua/lstrlib.c | 1 - third_party/lua/ltablib.c | 1 - third_party/lua/luac.main.c | 2 - third_party/lua/luaconf.h | 1 - third_party/lua/luaencodeurl.c | 2 - third_party/lua/luaprintstack.c | 1 - third_party/lua/luapushheader.c | 1 - third_party/lua/luapushheaders.c | 1 - third_party/lua/lundump.c | 1 - third_party/lua/lvm.c | 1 - third_party/lua/lzio.c | 1 - third_party/make/error.c | 2 - third_party/make/hash.c | 19 + third_party/make/make.mk | 3 +- third_party/maxmind/maxminddb.c | 2 - third_party/mbedtls/aes.c | 1 - third_party/mbedtls/asn1.h | 1 - third_party/mbedtls/asn1parse.c | 1 - third_party/mbedtls/asn1write.c | 1 - third_party/mbedtls/base64.c | 1 - third_party/mbedtls/bignum.c | 1 - third_party/mbedtls/ccm.c | 1 - third_party/mbedtls/chacha20.c | 1 - third_party/mbedtls/chachapoly.c | 1 - third_party/mbedtls/cipher.c | 1 - third_party/mbedtls/debug.c | 1 - third_party/mbedtls/dhm.c | 1 - third_party/mbedtls/ecdh_everest.c | 1 - third_party/mbedtls/ecdsa.c | 1 - third_party/mbedtls/ecp.c | 1 - third_party/mbedtls/ecp256.c | 1 - third_party/mbedtls/ecp384.c | 1 - third_party/mbedtls/ecp_curves.c | 1 - third_party/mbedtls/entropy.c | 1 - third_party/mbedtls/error.c | 1 - third_party/mbedtls/md.c | 1 - third_party/mbedtls/md5.c | 1 - third_party/mbedtls/nist_kw.c | 1 - third_party/mbedtls/oid.c | 1 - third_party/mbedtls/param.c | 1 - third_party/mbedtls/pem.c | 1 - third_party/mbedtls/pk_wrap.c | 1 - third_party/mbedtls/test/everest_test.c | 1 - third_party/mbedtls/test/test.mk | 2 +- third_party/python/Include/pydebug.h | 1 - .../python/Modules/_decimal/libmpdec/io.c | 1 - .../python/Modules/_decimal/libmpdec/memory.c | 1 - .../Modules/_decimal/libmpdec/mpdecimal.h | 1 - third_party/python/Modules/_localemodule.c | 1 - third_party/python/Modules/_testcapimodule.c | 1 - third_party/python/Modules/_tracemalloc.c | 1 - third_party/python/Modules/expat/xmlparse.c | 1 - third_party/python/Modules/resource.c | 1 - third_party/python/Objects/fileobject.c | 1 - third_party/python/Objects/obmalloc.c | 1 - third_party/python/Parser/acceler.c | 1 - third_party/python/Parser/grammar.c | 1 - third_party/python/Python/cosmomodule.c | 58 - third_party/python/Python/dtoa.c | 1 - third_party/python/Python/errors.c | 1 - third_party/python/Python/fileutils.c | 1 - third_party/python/Python/import.c | 5 +- third_party/python/freeze.c | 1 - third_party/python/launch.c | 1 - third_party/python/python.mk | 750 ++++---- third_party/quickjs/VERSION | 1 + third_party/quickjs/array.c | 1 - third_party/quickjs/atof.c | 2 - third_party/quickjs/atom.c | 1 - third_party/quickjs/bigdecimal.c | 2 - third_party/quickjs/bigint.c | 1 - third_party/quickjs/byte.c | 2 - third_party/quickjs/dbuf.c | 2 - third_party/quickjs/float.c | 1 - third_party/quickjs/gc.c | 1 - third_party/quickjs/gen.c | 1 - third_party/quickjs/json.c | 1 - third_party/quickjs/libbf.c | 1 - third_party/quickjs/libregexp.c | 1 - third_party/quickjs/libunicode.c | 2 - third_party/quickjs/parse.c | 2 - third_party/quickjs/quickjs-libc.c | 1 - third_party/quickjs/quickjs.c | 2 - third_party/quickjs/quickjs.mk | 6 +- third_party/quickjs/regexp.c | 1 - third_party/quickjs/run-test262.c | 2 - third_party/quickjs/shape.c | 1 - third_party/quickjs/str.c | 1 - third_party/quickjs/strbuf.c | 1 - third_party/quickjs/tok.c | 1 - third_party/quickjs/typedarray.c | 2 - third_party/quickjs/uri.c | 1 - third_party/quickjs/usage.c | 1 - third_party/smallz4/smallz4cat.c | 1 - third_party/sqlite3/os_unix.c | 1 - third_party/sqlite3/shell.c | 1 - third_party/tidy/alloc.c | 2 - third_party/tidy/forward.h | 1 - third_party/tidy/mappedio.c | 1 - third_party/tidy/tidy.c | 3 - third_party/tidy/tidy.mk | 2 +- third_party/unzip/envargs.c | 2 - third_party/unzip/unzpriv.h | 2 - third_party/zip/util.c | 1 - third_party/zlib/gz/gzwrite.c | 1 - tool/args/args.c | 1 - tool/build/build.mk | 24 +- tool/build/compile.c | 89 +- tool/build/lib/buildlib.mk | 4 +- tool/build/lib/psk.c | 1 - tool/build/summy.c | 1 - tool/build/unveil.c | 12 +- tool/build/xlat.c | 1 - tool/decode/scrubdox.c | 2 - tool/decode/zip2.c | 1 - tool/lambda/asc2bin.c | 1 - tool/lambda/blcdump.c | 1 - tool/lambda/bru2bin.c | 3 - tool/lambda/lam2bin.c | 3 - tool/lambda/lib/debug.c | 1 - tool/lambda/lib/error.c | 1 - tool/lambda/lib/getbit.c | 1 - tool/lambda/lib/parserom.c | 1 - tool/net/lfuncs.c | 1 - tool/net/lmaxmind.c | 1 - tool/net/lre.c | 1 - tool/net/lsqlite3.c | 1 - tool/net/net.mk | 8 +- tool/plinko/lib/gc.c | 1 - tool/plinko/plinko.mk | 2 +- tool/viz/basicidea.c | 2 - tool/viz/dumphexc.c | 1 - tool/viz/getglyph.c | 2 - tool/viz/ntmaster.c | 1 - tool/viz/printdos2errno.c | 1 - tool/viz/printimage.c | 1 - 1421 files changed, 5556 insertions(+), 2198 deletions(-) delete mode 100644 libc/calls/_timespec_tonanos.c create mode 100644 libc/nt/gdi32/GdiCurrentProcessSplWow64.s create mode 100644 libc/nt/kernel32/GetSystemWow64DirectoryA.s create mode 100644 libc/nt/kernel32/GetSystemWow64DirectoryW.s create mode 100644 libc/nt/kernel32/IsWow64Process.s create mode 100644 libc/nt/kernel32/Wow64DisableWow64FsRedirection.s create mode 100644 libc/nt/kernel32/Wow64EnableWow64FsRedirection.s create mode 100644 libc/nt/kernel32/Wow64GetThreadContext.s create mode 100644 libc/nt/kernel32/Wow64GetThreadSelectorEntry.s create mode 100644 libc/nt/kernel32/Wow64RevertWow64FsRedirection.s create mode 100644 libc/nt/kernel32/Wow64SetThreadContext.s create mode 100644 libc/nt/kernel32/Wow64SuspendThread.s create mode 100644 libc/nt/netapi32/I_BrowserSetNetlogonState.s create mode 100644 libc/nt/netapi32/NetAccessAdd.s create mode 100644 libc/nt/netapi32/NetAccessDel.s create mode 100644 libc/nt/netapi32/NetAccessEnum.s create mode 100644 libc/nt/netapi32/NetAccessGetInfo.s create mode 100644 libc/nt/netapi32/NetAccessGetUserPerms.s create mode 100644 libc/nt/netapi32/NetAccessSetInfo.s create mode 100644 libc/nt/netapi32/NetAlertRaise.s create mode 100644 libc/nt/netapi32/NetAlertRaiseEx.s create mode 100644 libc/nt/netapi32/NetAuditClear.s create mode 100644 libc/nt/netapi32/NetAuditRead.s create mode 100644 libc/nt/netapi32/NetAuditWrite.s create mode 100644 libc/nt/netapi32/NetConfigGet.s create mode 100644 libc/nt/netapi32/NetConfigGetAll.s create mode 100644 libc/nt/netapi32/NetConfigSet.s create mode 100644 libc/nt/netapi32/NetErrorLogClear.s create mode 100644 libc/nt/netapi32/NetErrorLogRead.s create mode 100644 libc/nt/netapi32/NetErrorLogWrite.s create mode 100644 libc/nt/netapi32/NetMessageBufferSend.s create mode 100644 libc/nt/netapi32/NetMessageNameAdd.s create mode 100644 libc/nt/netapi32/NetMessageNameDel.s create mode 100644 libc/nt/netapi32/NetMessageNameEnum.s create mode 100644 libc/nt/netapi32/NetMessageNameGetInfo.s create mode 100644 libc/nt/netapi32/NetRegisterDomainNameChangeNotification.s create mode 100644 libc/nt/netapi32/NetReplExportDirAdd.s create mode 100644 libc/nt/netapi32/NetReplExportDirDel.s create mode 100644 libc/nt/netapi32/NetReplExportDirEnum.s create mode 100644 libc/nt/netapi32/NetReplExportDirGetInfo.s create mode 100644 libc/nt/netapi32/NetReplExportDirLock.s create mode 100644 libc/nt/netapi32/NetReplExportDirSetInfo.s create mode 100644 libc/nt/netapi32/NetReplExportDirUnlock.s create mode 100644 libc/nt/netapi32/NetReplGetInfo.s create mode 100644 libc/nt/netapi32/NetReplImportDirAdd.s create mode 100644 libc/nt/netapi32/NetReplImportDirDel.s create mode 100644 libc/nt/netapi32/NetReplImportDirEnum.s create mode 100644 libc/nt/netapi32/NetReplImportDirGetInfo.s create mode 100644 libc/nt/netapi32/NetReplImportDirLock.s create mode 100644 libc/nt/netapi32/NetReplImportDirUnlock.s create mode 100644 libc/nt/netapi32/NetReplSetInfo.s create mode 100644 libc/nt/netapi32/NetServerEnum.s create mode 100644 libc/nt/netapi32/NetServerEnumEx.s create mode 100644 libc/nt/netapi32/NetServiceControl.s create mode 100644 libc/nt/netapi32/NetServiceEnum.s create mode 100644 libc/nt/netapi32/NetServiceGetInfo.s create mode 100644 libc/nt/netapi32/NetServiceInstall.s create mode 100644 libc/nt/netapi32/NetStatisticsGet.s create mode 100644 libc/nt/netapi32/NetUnregisterDomainNameChangeNotification.s create mode 100644 libc/nt/netapi32/NetWkstaGetInfo.s create mode 100644 libc/nt/netapi32/NetWkstaSetInfo.s create mode 100644 libc/nt/netapi32/Netbios.s create mode 100644 libc/nt/netapi32/NetpAddTlnFtinfoEntry.s create mode 100644 libc/nt/netapi32/NetpAllocFtinfoEntry.s create mode 100644 libc/nt/netapi32/NetpAssertFailed.s create mode 100644 libc/nt/netapi32/NetpCleanFtinfoContext.s create mode 100644 libc/nt/netapi32/NetpCloseConfigData.s create mode 100644 libc/nt/netapi32/NetpCopyFtinfoContext.s create mode 100644 libc/nt/netapi32/NetpDbgPrint.s create mode 100644 libc/nt/netapi32/NetpGetConfigBool.s create mode 100644 libc/nt/netapi32/NetpGetConfigDword.s create mode 100644 libc/nt/netapi32/NetpGetConfigTStrArray.s create mode 100644 libc/nt/netapi32/NetpGetConfigValue.s create mode 100644 libc/nt/netapi32/NetpGetFileSecurity.s create mode 100644 libc/nt/netapi32/NetpHexDump.s create mode 100644 libc/nt/netapi32/NetpInitFtinfoContext.s create mode 100644 libc/nt/netapi32/NetpIsUncComputerNameValid.s create mode 100644 libc/nt/netapi32/NetpMergeFtinfo.s create mode 100644 libc/nt/netapi32/NetpNetBiosReset.s create mode 100644 libc/nt/netapi32/NetpNetBiosStatusToApiStatus.s create mode 100644 libc/nt/netapi32/NetpOpenConfigData.s create mode 100644 libc/nt/netapi32/NetpSetFileSecurity.s create mode 100644 libc/nt/netapi32/RxNetAccessAdd.s create mode 100644 libc/nt/netapi32/RxNetAccessDel.s create mode 100644 libc/nt/netapi32/RxNetAccessEnum.s create mode 100644 libc/nt/netapi32/RxNetAccessGetInfo.s create mode 100644 libc/nt/netapi32/RxNetAccessGetUserPerms.s create mode 100644 libc/nt/netapi32/RxNetAccessSetInfo.s create mode 100644 libc/nt/netapi32/RxNetServerEnum.s create mode 100644 libc/nt/netapi32/RxNetUserPasswordSet.s create mode 100644 libc/nt/netapi32/RxRemoteApi.s create mode 100644 libc/nt/ntdll/RtlQueueApcWow64Thread.s create mode 100644 libc/nt/ntdll/RtlWow64CallFunction64.s create mode 100644 libc/nt/ntdll/RtlWow64EnableFsRedirection.s create mode 100644 libc/nt/ntdll/RtlWow64EnableFsRedirectionEx.s create mode 100644 libc/nt/ntdll/RtlWow64GetCpuAreaInfo.s create mode 100644 libc/nt/ntdll/RtlWow64GetCurrentCpuArea.s create mode 100644 libc/nt/ntdll/RtlWow64GetCurrentMachine.s create mode 100644 libc/nt/ntdll/RtlWow64GetEquivalentMachineCHPE.s create mode 100644 libc/nt/ntdll/RtlWow64GetProcessMachines.s create mode 100644 libc/nt/ntdll/RtlWow64GetSharedInfoProcess.s create mode 100644 libc/nt/ntdll/RtlWow64GetThreadContext.s create mode 100644 libc/nt/ntdll/RtlWow64GetThreadSelectorEntry.s create mode 100644 libc/nt/ntdll/RtlWow64IsWowGuestMachineSupported.s create mode 100644 libc/nt/ntdll/RtlWow64LogMessageInEventLogger.s create mode 100644 libc/nt/ntdll/RtlWow64PopAllCrossProcessWork.s create mode 100644 libc/nt/ntdll/RtlWow64PopCrossProcessWork.s create mode 100644 libc/nt/ntdll/RtlWow64PushCrossProcessWork.s create mode 100644 libc/nt/ntdll/RtlWow64SetThreadContext.s create mode 100644 libc/nt/ntdll/RtlWow64SuspendThread.s create mode 100644 libc/nt/ntdll/RtlpQueryProcessDebugInformationFromWow64.s create mode 100644 libc/nt/shell32/AppCompat_RunDLLW.s create mode 100644 libc/nt/shell32/AssocCreateForClasses.s create mode 100644 libc/nt/shell32/AssocGetDetailsOfPropKey.s create mode 100644 libc/nt/shell32/CDefFolderMenu_Create2.s create mode 100644 libc/nt/shell32/CIDLData_CreateFromIDArray.s create mode 100644 libc/nt/shell32/CStorageItem_GetValidatedStorageItemObject.s create mode 100644 libc/nt/shell32/CheckEscapesW.s create mode 100644 libc/nt/shell32/CommandLineToArgvW.s create mode 100644 libc/nt/shell32/Control_RunDLL.s create mode 100644 libc/nt/shell32/Control_RunDLLAsUserW.s create mode 100644 libc/nt/shell32/Control_RunDLLW.s create mode 100644 libc/nt/shell32/DAD_AutoScroll.s create mode 100644 libc/nt/shell32/DAD_DragEnterEx.s create mode 100644 libc/nt/shell32/DAD_DragEnterEx2.s create mode 100644 libc/nt/shell32/DAD_DragLeave.s create mode 100644 libc/nt/shell32/DAD_DragMove.s create mode 100644 libc/nt/shell32/DAD_SetDragImage.s create mode 100644 libc/nt/shell32/DAD_ShowDragImage.s create mode 100644 libc/nt/shell32/DllGetActivationFactory.s create mode 100644 libc/nt/shell32/DllGetVersion.s create mode 100644 libc/nt/shell32/DllInstall.s create mode 100644 libc/nt/shell32/DllRegisterServer.s create mode 100644 libc/nt/shell32/DllUnregisterServer.s create mode 100644 libc/nt/shell32/DoEnvironmentSubstW.s create mode 100644 libc/nt/shell32/DragAcceptFiles.s create mode 100644 libc/nt/shell32/DragFinish.s create mode 100644 libc/nt/shell32/DragQueryFileAorW.s create mode 100644 libc/nt/shell32/DragQueryFileW.s create mode 100644 libc/nt/shell32/DragQueryPoint.s create mode 100644 libc/nt/shell32/DriveType.s create mode 100644 libc/nt/shell32/DuplicateIcon.s create mode 100644 libc/nt/shell32/ExtractAssociatedIconExW.s create mode 100644 libc/nt/shell32/ExtractAssociatedIconW.s create mode 100644 libc/nt/shell32/ExtractIconExW.s create mode 100644 libc/nt/shell32/ExtractIconW.s create mode 100644 libc/nt/shell32/FindExecutableW.s create mode 100644 libc/nt/shell32/FreeIconList.s create mode 100644 libc/nt/shell32/GetCurrentProcessExplicitAppUserModelID.s create mode 100644 libc/nt/shell32/GetFileNameFromBrowse.s create mode 100644 libc/nt/shell32/GetSystemPersistedStorageItemList.s create mode 100644 libc/nt/shell32/ILAppendID.s create mode 100644 libc/nt/shell32/ILClone.s create mode 100644 libc/nt/shell32/ILCloneFirst.s create mode 100644 libc/nt/shell32/ILCombine.s create mode 100644 libc/nt/shell32/ILCreateFromPathW.s create mode 100644 libc/nt/shell32/ILFindChild.s create mode 100644 libc/nt/shell32/ILFindLastID.s create mode 100644 libc/nt/shell32/ILFree.s create mode 100644 libc/nt/shell32/ILGetNext.s create mode 100644 libc/nt/shell32/ILGetSize.s create mode 100644 libc/nt/shell32/ILIsEqual.s create mode 100644 libc/nt/shell32/ILIsParent.s create mode 100644 libc/nt/shell32/ILLoadFromStreamEx.s create mode 100644 libc/nt/shell32/ILRemoveLastID.s create mode 100644 libc/nt/shell32/ILSaveToStream.s create mode 100644 libc/nt/shell32/InitNetworkAddressControl.s create mode 100644 libc/nt/shell32/InternalExtractIconListW.s create mode 100644 libc/nt/shell32/IsDesktopExplorerProcess.s create mode 100644 libc/nt/shell32/IsLFNDriveW.s create mode 100644 libc/nt/shell32/IsNetDrive.s create mode 100644 libc/nt/shell32/IsProcessAnExplorer.s create mode 100644 libc/nt/shell32/IsUserAnAdmin.s create mode 100644 libc/nt/shell32/LaunchMSHelp_RunDLLW.s create mode 100644 libc/nt/shell32/OpenAs_RunDLL.s create mode 100644 libc/nt/shell32/OpenAs_RunDLLW.s create mode 100644 libc/nt/shell32/OpenRegStream.s create mode 100644 libc/nt/shell32/Options_RunDLL.s create mode 100644 libc/nt/shell32/Options_RunDLLW.s create mode 100644 libc/nt/shell32/PathCleanupSpec.s create mode 100644 libc/nt/shell32/PathGetShortPath.s create mode 100644 libc/nt/shell32/PathIsExe.s create mode 100644 libc/nt/shell32/PathIsSlowW.s create mode 100644 libc/nt/shell32/PathMakeUniqueName.s create mode 100644 libc/nt/shell32/PathQualify.s create mode 100644 libc/nt/shell32/PathResolve.s create mode 100644 libc/nt/shell32/PathYetAnotherMakeUniqueName.s create mode 100644 libc/nt/shell32/PickIconDlg.s create mode 100644 libc/nt/shell32/PifMgr_CloseProperties.s create mode 100644 libc/nt/shell32/PifMgr_GetProperties.s create mode 100644 libc/nt/shell32/PifMgr_OpenProperties.s create mode 100644 libc/nt/shell32/PifMgr_SetProperties.s create mode 100644 libc/nt/shell32/PrepareDiscForBurnRunDllW.s create mode 100644 libc/nt/shell32/PrintersGetCommand_RunDLL.s create mode 100644 libc/nt/shell32/PrintersGetCommand_RunDLLW.s create mode 100644 libc/nt/shell32/ReadCabinetState.s create mode 100644 libc/nt/shell32/RealDriveType.s create mode 100644 libc/nt/shell32/RealShellExecuteExW.s create mode 100644 libc/nt/shell32/RealShellExecuteW.s create mode 100644 libc/nt/shell32/RegenerateUserEnvironment.s create mode 100644 libc/nt/shell32/RestartDialog.s create mode 100644 libc/nt/shell32/RestartDialogEx.s create mode 100644 libc/nt/shell32/RunAsNewUser_RunDLLW.s create mode 100644 libc/nt/shell32/SHAddDefaultPropertiesByExt.s create mode 100644 libc/nt/shell32/SHAddFromPropSheetExtArray.s create mode 100644 libc/nt/shell32/SHAddToRecentDocs.s create mode 100644 libc/nt/shell32/SHAlloc.s create mode 100644 libc/nt/shell32/SHAppBarMessage.s create mode 100644 libc/nt/shell32/SHAssocEnumHandlers.s create mode 100644 libc/nt/shell32/SHAssocEnumHandlersForProtocolByApplication.s create mode 100644 libc/nt/shell32/SHBindToFolderIDListParent.s create mode 100644 libc/nt/shell32/SHBindToFolderIDListParentEx.s create mode 100644 libc/nt/shell32/SHBindToObject.s create mode 100644 libc/nt/shell32/SHBindToParent.s create mode 100644 libc/nt/shell32/SHBrowseForFolderW.s create mode 100644 libc/nt/shell32/SHCLSIDFromString.s create mode 100644 libc/nt/shell32/SHChangeNotification_Lock.s create mode 100644 libc/nt/shell32/SHChangeNotification_Unlock.s create mode 100644 libc/nt/shell32/SHChangeNotify.s create mode 100644 libc/nt/shell32/SHChangeNotifyDeregister.s create mode 100644 libc/nt/shell32/SHChangeNotifyRegister.s create mode 100644 libc/nt/shell32/SHChangeNotifyRegisterThread.s create mode 100644 libc/nt/shell32/SHChangeNotifySuspendResume.s create mode 100644 libc/nt/shell32/SHCloneSpecialIDList.s create mode 100644 libc/nt/shell32/SHCoCreateInstanceWorker.s create mode 100644 libc/nt/shell32/SHCreateAssociationRegistration.s create mode 100644 libc/nt/shell32/SHCreateCategoryEnum.s create mode 100644 libc/nt/shell32/SHCreateDataObject.s create mode 100644 libc/nt/shell32/SHCreateDefaultContextMenu.s create mode 100644 libc/nt/shell32/SHCreateDefaultExtractIcon.s create mode 100644 libc/nt/shell32/SHCreateDefaultPropertiesOp.s create mode 100644 libc/nt/shell32/SHCreateDirectory.s create mode 100644 libc/nt/shell32/SHCreateDirectoryExW.s create mode 100644 libc/nt/shell32/SHCreateDrvExtIcon.s create mode 100644 libc/nt/shell32/SHCreateFileExtractIconW.s create mode 100644 libc/nt/shell32/SHCreateItemFromIDList.s create mode 100644 libc/nt/shell32/SHCreateItemFromParsingName.s create mode 100644 libc/nt/shell32/SHCreateItemFromRelativeName.s create mode 100644 libc/nt/shell32/SHCreateItemInKnownFolder.s create mode 100644 libc/nt/shell32/SHCreateItemWithParent.s create mode 100644 libc/nt/shell32/SHCreateLocalServerRunDll.s create mode 100644 libc/nt/shell32/SHCreateProcessAsUserW.s create mode 100644 libc/nt/shell32/SHCreatePropSheetExtArray.s create mode 100644 libc/nt/shell32/SHCreateQueryCancelAutoPlayMoniker.s create mode 100644 libc/nt/shell32/SHCreateShellFolderView.s create mode 100644 libc/nt/shell32/SHCreateShellFolderViewEx.s create mode 100644 libc/nt/shell32/SHCreateShellItem.s create mode 100644 libc/nt/shell32/SHCreateShellItemArray.s create mode 100644 libc/nt/shell32/SHCreateShellItemArrayFromDataObject.s create mode 100644 libc/nt/shell32/SHCreateShellItemArrayFromIDLists.s create mode 100644 libc/nt/shell32/SHCreateShellItemArrayFromShellItem.s create mode 100644 libc/nt/shell32/SHCreateStdEnumFmtEtc.s create mode 100644 libc/nt/shell32/SHDefExtractIconW.s create mode 100644 libc/nt/shell32/SHDestroyPropSheetExtArray.s create mode 100644 libc/nt/shell32/SHDoDragDrop.s create mode 100644 libc/nt/shell32/SHEmptyRecycleBinW.s create mode 100644 libc/nt/shell32/SHEnableServiceObject.s create mode 100644 libc/nt/shell32/SHEnumerateUnreadMailAccountsW.s create mode 100644 libc/nt/shell32/SHEvaluateSystemCommandTemplate.s create mode 100644 libc/nt/shell32/SHExtractIconsW.s create mode 100644 libc/nt/shell32/SHFileOperationW.s create mode 100644 libc/nt/shell32/SHFindFiles.s create mode 100644 libc/nt/shell32/SHFind_InitMenuPopup.s create mode 100644 libc/nt/shell32/SHFlushSFCache.s create mode 100644 libc/nt/shell32/SHFormatDrive.s create mode 100644 libc/nt/shell32/SHFree.s create mode 100644 libc/nt/shell32/SHFreeNameMappings.s create mode 100644 libc/nt/shell32/SHGetAttributesFromDataObject.s create mode 100644 libc/nt/shell32/SHGetDataFromIDListW.s create mode 100644 libc/nt/shell32/SHGetDesktopFolder.s create mode 100644 libc/nt/shell32/SHGetDiskFreeSpaceExW.s create mode 100644 libc/nt/shell32/SHGetDriveMedia.s create mode 100644 libc/nt/shell32/SHGetFileInfoW.s create mode 100644 libc/nt/shell32/SHGetFolderLocation.s create mode 100644 libc/nt/shell32/SHGetFolderPathAndSubDirW.s create mode 100644 libc/nt/shell32/SHGetFolderPathEx.s create mode 100644 libc/nt/shell32/SHGetFolderPathW.s create mode 100644 libc/nt/shell32/SHGetIDListFromObject.s create mode 100644 libc/nt/shell32/SHGetIconOverlayIndexW.s create mode 100644 libc/nt/shell32/SHGetImageList.s create mode 100644 libc/nt/shell32/SHGetInstanceExplorer.s create mode 100644 libc/nt/shell32/SHGetItemFromDataObject.s create mode 100644 libc/nt/shell32/SHGetItemFromObject.s create mode 100644 libc/nt/shell32/SHGetKnownFolderIDList.s create mode 100644 libc/nt/shell32/SHGetKnownFolderItem.s create mode 100644 libc/nt/shell32/SHGetKnownFolderPath.s create mode 100644 libc/nt/shell32/SHGetLocalizedName.s create mode 100644 libc/nt/shell32/SHGetMalloc.s create mode 100644 libc/nt/shell32/SHGetNameFromIDList.s create mode 100644 libc/nt/shell32/SHGetNewLinkInfoW.s create mode 100644 libc/nt/shell32/SHGetPathFromIDListEx.s create mode 100644 libc/nt/shell32/SHGetPathFromIDListW.s create mode 100644 libc/nt/shell32/SHGetPropertyStoreForWindow.s create mode 100644 libc/nt/shell32/SHGetPropertyStoreFromIDList.s create mode 100644 libc/nt/shell32/SHGetPropertyStoreFromParsingName.s create mode 100644 libc/nt/shell32/SHGetRealIDL.s create mode 100644 libc/nt/shell32/SHGetSetFolderCustomSettings.s create mode 100644 libc/nt/shell32/SHGetSetSettings.s create mode 100644 libc/nt/shell32/SHGetSettings.s create mode 100644 libc/nt/shell32/SHGetSpecialFolderLocation.s create mode 100644 libc/nt/shell32/SHGetSpecialFolderPathW.s create mode 100644 libc/nt/shell32/SHGetStockIconInfo.s create mode 100644 libc/nt/shell32/SHGetTemporaryPropertyForItem.s create mode 100644 libc/nt/shell32/SHGetUnreadMailCountW.s create mode 100644 libc/nt/shell32/SHHandleUpdateImage.s create mode 100644 libc/nt/shell32/SHHelpShortcuts_RunDLL.s create mode 100644 libc/nt/shell32/SHHelpShortcuts_RunDLLW.s create mode 100644 libc/nt/shell32/SHILCreateFromPath.s create mode 100644 libc/nt/shell32/SHInvokePrinterCommandW.s create mode 100644 libc/nt/shell32/SHIsFileAvailableOffline.s create mode 100644 libc/nt/shell32/SHLimitInputEdit.s create mode 100644 libc/nt/shell32/SHLoadInProc.s create mode 100644 libc/nt/shell32/SHLoadNonloadedIconOverlayIdentifiers.s create mode 100644 libc/nt/shell32/SHMapPIDLToSystemImageListIndex.s create mode 100644 libc/nt/shell32/SHMultiFileProperties.s create mode 100644 libc/nt/shell32/SHObjectProperties.s create mode 100644 libc/nt/shell32/SHOpenFolderAndSelectItems.s create mode 100644 libc/nt/shell32/SHOpenPropSheetW.s create mode 100644 libc/nt/shell32/SHOpenWithDialog.s create mode 100644 libc/nt/shell32/SHParseDisplayName.s create mode 100644 libc/nt/shell32/SHPathPrepareForWriteW.s create mode 100644 libc/nt/shell32/SHPropStgCreate.s create mode 100644 libc/nt/shell32/SHPropStgReadMultiple.s create mode 100644 libc/nt/shell32/SHPropStgWriteMultiple.s create mode 100644 libc/nt/shell32/SHQueryRecycleBinW.s create mode 100644 libc/nt/shell32/SHQueryUserNotificationState.s create mode 100644 libc/nt/shell32/SHRemoveLocalizedName.s create mode 100644 libc/nt/shell32/SHReplaceFromPropSheetExtArray.s create mode 100644 libc/nt/shell32/SHResolveLibrary.s create mode 100644 libc/nt/shell32/SHRestricted.s create mode 100644 libc/nt/shell32/SHSetDefaultProperties.s create mode 100644 libc/nt/shell32/SHSetFolderPathW.s create mode 100644 libc/nt/shell32/SHSetInstanceExplorer.s create mode 100644 libc/nt/shell32/SHSetKnownFolderPath.s create mode 100644 libc/nt/shell32/SHSetLocalizedName.s create mode 100644 libc/nt/shell32/SHSetTemporaryPropertyForItem.s create mode 100644 libc/nt/shell32/SHSetUnreadMailCountW.s create mode 100644 libc/nt/shell32/SHShellFolderView_Message.s create mode 100644 libc/nt/shell32/SHShowManageLibraryUI.s create mode 100644 libc/nt/shell32/SHSimpleIDListFromPath.s create mode 100644 libc/nt/shell32/SHStartNetConnectionDialogW.s create mode 100644 libc/nt/shell32/SHTestTokenMembership.s create mode 100644 libc/nt/shell32/SHUpdateImageW.s create mode 100644 libc/nt/shell32/SHUpdateRecycleBinIcon.s create mode 100644 libc/nt/shell32/SHValidateUNC.s create mode 100644 libc/nt/shell32/SetCurrentProcessExplicitAppUserModelID.s create mode 100644 libc/nt/shell32/SheChangeDirExW.s create mode 100644 libc/nt/shell32/SheSetCurDrive.s create mode 100644 libc/nt/shell32/ShellAboutW.s create mode 100644 libc/nt/shell32/ShellExec_RunDLL.s create mode 100644 libc/nt/shell32/ShellExec_RunDLLW.s create mode 100644 libc/nt/shell32/ShellExecuteExW.s create mode 100644 libc/nt/shell32/ShellExecuteW.s create mode 100644 libc/nt/shell32/ShellHookProc.s create mode 100644 libc/nt/shell32/Shell_GetCachedImageIndexW.s create mode 100644 libc/nt/shell32/Shell_GetImageLists.s create mode 100644 libc/nt/shell32/Shell_MergeMenus.s create mode 100644 libc/nt/shell32/Shell_NotifyIconGetRect.s create mode 100644 libc/nt/shell32/Shell_NotifyIconW.s create mode 100644 libc/nt/shell32/SignalFileOpen.s create mode 100644 libc/nt/shell32/StgMakeUniqueName.s create mode 100644 libc/nt/shell32/UsersLibrariesFolderUI_CreateInstance.s create mode 100644 libc/nt/shell32/WOWShellExecute.s create mode 100644 libc/nt/shell32/WaitForExplorerRestartW.s create mode 100644 libc/nt/shell32/Win32DeleteFile.s create mode 100644 libc/nt/shell32/WriteCabinetState.s create mode 100644 libc/nt/user32/IsWow64Message.s create mode 100644 libc/runtime/interruptiblecall.c create mode 100644 libc/runtime/interruptiblecall.h delete mode 100644 libc/stdio/lock.h create mode 100644 libc/sysv/consts/ACCOUNTING.S create mode 100644 libc/sysv/consts/AHZ.S create mode 100644 libc/sysv/consts/ALLOW_MEDIUM_REMOVAL.S create mode 100644 libc/sysv/consts/ALT_DIGITS.S create mode 100644 libc/sysv/consts/AM_STR.S create mode 100644 libc/sysv/consts/ASU.S create mode 100644 libc/sysv/consts/ATF_NETMASK.S create mode 100644 libc/sysv/consts/AXSIG.S create mode 100644 libc/sysv/consts/B460800.S create mode 100644 libc/sysv/consts/B921600.S create mode 100644 libc/sysv/consts/BITSPERBYTE.S create mode 100644 libc/sysv/consts/BLANK_CHECK.S create mode 100644 libc/sysv/consts/BOOT_TIME.S create mode 100644 libc/sysv/consts/CHANGE_DEFINITION.S create mode 100644 libc/sysv/consts/CHARBITS.S create mode 100644 libc/sysv/consts/CHARCLASS_NAME_MAX.S create mode 100644 libc/sysv/consts/CHECK_CONDITION.S create mode 100644 libc/sysv/consts/CODESET.S create mode 100644 libc/sysv/consts/COLL_WEIGHTS_MAX.S create mode 100644 libc/sysv/consts/CONDITION_GOOD.S create mode 100644 libc/sysv/consts/CPU_SETSIZE.S create mode 100644 libc/sysv/consts/CRNCYSTR.S create mode 100644 libc/sysv/consts/CRTSCTS.S create mode 100644 libc/sysv/consts/CSTATUS.S create mode 100644 libc/sysv/consts/DATA_PROTECT.S create mode 100644 libc/sysv/consts/DEAD_PROCESS.S create mode 100644 libc/sysv/consts/DELAYTIMER_MAX.S create mode 100644 libc/sysv/consts/DMAXEXP.S create mode 100644 libc/sysv/consts/DMINEXP.S create mode 100644 libc/sysv/consts/DOUBLEBITS.S create mode 100644 libc/sysv/consts/ERA_D_FMT.S create mode 100644 libc/sysv/consts/ERA_D_T_FMT.S create mode 100644 libc/sysv/consts/ERA_T_FMT.S create mode 100644 libc/sysv/consts/FANOTIFY_METADATA_VERSION.S create mode 100644 libc/sysv/consts/FAN_ACCESS.S create mode 100644 libc/sysv/consts/FAN_ACCESS_PERM.S create mode 100644 libc/sysv/consts/FAN_ALLOW.S create mode 100644 libc/sysv/consts/FAN_ALL_CLASS_BITS.S create mode 100644 libc/sysv/consts/FAN_ALL_EVENTS.S create mode 100644 libc/sysv/consts/FAN_ALL_INIT_FLAGS.S create mode 100644 libc/sysv/consts/FAN_ALL_MARK_FLAGS.S create mode 100644 libc/sysv/consts/FAN_ALL_OUTGOING_EVENTS.S create mode 100644 libc/sysv/consts/FAN_ALL_PERM_EVENTS.S create mode 100644 libc/sysv/consts/FAN_CLASS_CONTENT.S create mode 100644 libc/sysv/consts/FAN_CLASS_NOTIF.S create mode 100644 libc/sysv/consts/FAN_CLASS_PRE_CONTENT.S create mode 100644 libc/sysv/consts/FAN_CLOEXEC.S create mode 100644 libc/sysv/consts/FAN_CLOSE.S create mode 100644 libc/sysv/consts/FAN_CLOSE_NOWRITE.S create mode 100644 libc/sysv/consts/FAN_CLOSE_WRITE.S create mode 100644 libc/sysv/consts/FAN_DENY.S create mode 100644 libc/sysv/consts/FAN_EVENT_METADATA_LEN.S create mode 100644 libc/sysv/consts/FAN_EVENT_ON_CHILD.S create mode 100644 libc/sysv/consts/FAN_MARK_ADD.S create mode 100644 libc/sysv/consts/FAN_MARK_DONT_FOLLOW.S create mode 100644 libc/sysv/consts/FAN_MARK_FLUSH.S create mode 100644 libc/sysv/consts/FAN_MARK_IGNORED_MASK.S create mode 100644 libc/sysv/consts/FAN_MARK_IGNORED_SURV_MODIFY.S create mode 100644 libc/sysv/consts/FAN_MARK_MOUNT.S create mode 100644 libc/sysv/consts/FAN_MARK_ONLYDIR.S create mode 100644 libc/sysv/consts/FAN_MARK_REMOVE.S create mode 100644 libc/sysv/consts/FAN_MODIFY.S create mode 100644 libc/sysv/consts/FAN_NOFD.S create mode 100644 libc/sysv/consts/FAN_NONBLOCK.S create mode 100644 libc/sysv/consts/FAN_ONDIR.S create mode 100644 libc/sysv/consts/FAN_OPEN.S create mode 100644 libc/sysv/consts/FAN_OPEN_PERM.S create mode 100644 libc/sysv/consts/FAN_Q_OVERFLOW.S create mode 100644 libc/sysv/consts/FAN_UNLIMITED_MARKS.S create mode 100644 libc/sysv/consts/FAN_UNLIMITED_QUEUE.S create mode 100644 libc/sysv/consts/FAPPEND.S create mode 100644 libc/sysv/consts/FASYNC.S create mode 100644 libc/sysv/consts/FFSYNC.S create mode 100644 libc/sysv/consts/FILENAME_MAX.S create mode 100644 libc/sysv/consts/FIOGETOWN.S create mode 100644 libc/sysv/consts/FIOSETOWN.S create mode 100644 libc/sysv/consts/FMAXEXP.S create mode 100644 libc/sysv/consts/FMINEXP.S create mode 100644 libc/sysv/consts/FNDELAY.S create mode 100644 libc/sysv/consts/FNM_NOSYS.S create mode 100644 libc/sysv/consts/FNONBLOCK.S create mode 100644 libc/sysv/consts/FOPEN_MAX.S create mode 100644 libc/sysv/consts/FORMAT_UNIT.S create mode 100644 libc/sysv/consts/HARDWARE_ERROR.S create mode 100644 libc/sysv/consts/HEAD_OF_QUEUE_TAG.S create mode 100644 libc/sysv/consts/IGMP_MEMBERSHIP_QUERY.S create mode 100644 libc/sysv/consts/ILLEGAL_REQUEST.S create mode 100644 libc/sysv/consts/INITIATE_RECOVERY.S create mode 100644 libc/sysv/consts/INITIATOR_ERROR.S create mode 100644 libc/sysv/consts/INIT_PROCESS.S create mode 100644 libc/sysv/consts/INQUIRY.S create mode 100644 libc/sysv/consts/IN_ACCESS.S create mode 100644 libc/sysv/consts/IN_ALL_EVENTS.S create mode 100644 libc/sysv/consts/IN_ATTRIB.S create mode 100644 libc/sysv/consts/IN_CLOEXEC.S create mode 100644 libc/sysv/consts/IN_CLOSE.S create mode 100644 libc/sysv/consts/IN_CLOSE_NOWRITE.S create mode 100644 libc/sysv/consts/IN_CLOSE_WRITE.S create mode 100644 libc/sysv/consts/IN_CREATE.S create mode 100644 libc/sysv/consts/IN_DELETE.S create mode 100644 libc/sysv/consts/IN_DELETE_SELF.S create mode 100644 libc/sysv/consts/IN_DONT_FOLLOW.S create mode 100644 libc/sysv/consts/IN_EXCL_UNLINK.S create mode 100644 libc/sysv/consts/IN_IGNORED.S create mode 100644 libc/sysv/consts/IN_ISDIR.S create mode 100644 libc/sysv/consts/IN_LOOPBACKNET.S create mode 100644 libc/sysv/consts/IN_MASK_ADD.S create mode 100644 libc/sysv/consts/IN_MODIFY.S create mode 100644 libc/sysv/consts/IN_MOVE.S create mode 100644 libc/sysv/consts/IN_MOVED_FROM.S create mode 100644 libc/sysv/consts/IN_MOVED_TO.S create mode 100644 libc/sysv/consts/IN_MOVE_SELF.S create mode 100644 libc/sysv/consts/IN_NONBLOCK.S create mode 100644 libc/sysv/consts/IN_ONESHOT.S create mode 100644 libc/sysv/consts/IN_ONLYDIR.S create mode 100644 libc/sysv/consts/IN_OPEN.S create mode 100644 libc/sysv/consts/IN_Q_OVERFLOW.S create mode 100644 libc/sysv/consts/IN_UNMOUNT.S create mode 100644 libc/sysv/consts/MAXHOSTNAMELEN.S create mode 100644 libc/sysv/consts/MAXPATHLEN.S create mode 100644 libc/sysv/consts/MAXSYMLINKS.S create mode 100644 libc/sysv/consts/MESSAGE_REJECT.S create mode 100644 libc/sysv/consts/MISCOMPARE.S create mode 100644 libc/sysv/consts/MOVE_MEDIUM.S create mode 100644 libc/sysv/consts/MQ_PRIO_MAX.S create mode 100644 libc/sysv/consts/MTCOMPRESSION.S create mode 100644 libc/sysv/consts/MTERASE.S create mode 100644 libc/sysv/consts/MTFSFM.S create mode 100644 libc/sysv/consts/MTLOAD.S create mode 100644 libc/sysv/consts/MTLOCK.S create mode 100644 libc/sysv/consts/MTMKPART.S create mode 100644 libc/sysv/consts/MTRAS1.S create mode 100644 libc/sysv/consts/MTRAS3.S create mode 100644 libc/sysv/consts/MTRETEN.S create mode 100644 libc/sysv/consts/MTSETBLK.S create mode 100644 libc/sysv/consts/MTSETDENSITY.S create mode 100644 libc/sysv/consts/MTSETDRVBUFFER.S create mode 100644 libc/sysv/consts/MTSETPART.S create mode 100644 libc/sysv/consts/MTUNLOAD.S create mode 100644 libc/sysv/consts/MTUNLOCK.S create mode 100644 libc/sysv/consts/NCARGS.S create mode 100644 libc/sysv/consts/ND_NA_FLAG_OVERRIDE.S create mode 100644 libc/sysv/consts/ND_NA_FLAG_ROUTER.S create mode 100644 libc/sysv/consts/ND_NA_FLAG_SOLICITED.S create mode 100644 libc/sysv/consts/ND_NEIGHBOR_ADVERT.S create mode 100644 libc/sysv/consts/ND_NEIGHBOR_SOLICIT.S create mode 100644 libc/sysv/consts/ND_RA_FLAG_HOME_AGENT.S create mode 100644 libc/sysv/consts/ND_RA_FLAG_MANAGED.S create mode 100644 libc/sysv/consts/ND_RA_FLAG_OTHER.S create mode 100644 libc/sysv/consts/ND_REDIRECT.S create mode 100644 libc/sysv/consts/ND_ROUTER_ADVERT.S create mode 100644 libc/sysv/consts/ND_ROUTER_SOLICIT.S create mode 100644 libc/sysv/consts/NEW_TIME.S create mode 100644 libc/sysv/consts/NFDBITS.S create mode 100644 libc/sysv/consts/NGREG.S create mode 100644 libc/sysv/consts/NGROUPS.S create mode 100644 libc/sysv/consts/NGROUPS_MAX.S create mode 100644 libc/sysv/consts/NL_ARGMAX.S create mode 100644 libc/sysv/consts/NL_CAT_LOCALE.S create mode 100644 libc/sysv/consts/NL_LANGMAX.S create mode 100644 libc/sysv/consts/NL_MSGMAX.S create mode 100644 libc/sysv/consts/NL_NMAX.S create mode 100644 libc/sysv/consts/NL_SETD.S create mode 100644 libc/sysv/consts/NL_SETMAX.S create mode 100644 libc/sysv/consts/NL_TEXTMAX.S create mode 100644 libc/sysv/consts/NOEXPR.S create mode 100644 libc/sysv/consts/NOFILE.S create mode 100644 libc/sysv/consts/NOGROUP.S create mode 100644 libc/sysv/consts/NOSTR.S create mode 100644 libc/sysv/consts/OLD_TIME.S create mode 100644 libc/sysv/consts/ORDERED_QUEUE_TAG.S create mode 100644 libc/sysv/consts/ORIG_RAX.S create mode 100644 libc/sysv/consts/PM_STR.S create mode 100644 libc/sysv/consts/PRE_FETCH.S create mode 100644 libc/sysv/consts/QUEUE_FULL.S create mode 100644 libc/sysv/consts/RADIXCHAR.S create mode 100644 libc/sysv/consts/REASSIGN_BLOCKS.S create mode 100644 libc/sysv/consts/RECEIVE_DIAGNOSTIC.S create mode 100644 libc/sysv/consts/RECOVERED_ERROR.S create mode 100644 libc/sysv/consts/RECOVER_BUFFERED_DATA.S create mode 100644 libc/sysv/consts/RELEASE_RECOVERY.S create mode 100644 libc/sysv/consts/REQUEST_SENSE.S create mode 100644 libc/sysv/consts/RESERVATION_CONFLICT.S create mode 100644 libc/sysv/consts/RESERVE.S create mode 100644 libc/sysv/consts/RESERVE_10.S create mode 100644 libc/sysv/consts/RESTORE_POINTERS.S create mode 100644 libc/sysv/consts/REZERO_UNIT.S create mode 100644 libc/sysv/consts/RE_DUP_MAX.S create mode 100644 libc/sysv/consts/RTCF_DOREDIRECT.S create mode 100644 libc/sysv/consts/RUN_LVL.S create mode 100644 libc/sysv/consts/SAVE_POINTERS.S create mode 100644 libc/sysv/consts/SEM_INFO.S create mode 100644 libc/sysv/consts/SEM_STAT.S create mode 100644 libc/sysv/consts/SEM_VALUE_MAX.S create mode 100644 libc/sysv/consts/SHMLBA.S create mode 100644 libc/sysv/consts/SIMPLE_QUEUE_TAG.S create mode 100644 libc/sysv/consts/SPACE.S create mode 100644 libc/sysv/consts/START_STOP.S create mode 100644 libc/sysv/consts/STATUS_MASK.S create mode 100644 libc/sysv/consts/STA_RONLY.S create mode 100644 libc/sysv/consts/SWAP_FLAG_DISCARD.S create mode 100644 libc/sysv/consts/SYMLOOP_MAX.S create mode 100644 libc/sysv/consts/SYNCHRONIZE_CACHE.S create mode 100644 libc/sysv/consts/THOUSEP.S create mode 100644 libc/sysv/consts/TH_ACK.S create mode 100644 libc/sysv/consts/TH_FIN.S create mode 100644 libc/sysv/consts/TH_PUSH.S create mode 100644 libc/sysv/consts/TH_RST.S create mode 100644 libc/sysv/consts/TH_SYN.S create mode 100644 libc/sysv/consts/TH_URG.S create mode 100644 libc/sysv/consts/TIME_UTC.S create mode 100644 libc/sysv/consts/TMP_MAX.S create mode 100644 libc/sysv/consts/TSS_DTOR_ITERATIONS.S create mode 100644 libc/sysv/consts/TTY_NAME_MAX.S create mode 100644 libc/sysv/consts/UIO_MAXIOV.S create mode 100644 libc/sysv/consts/UNIT_ATTENTION.S create mode 100644 libc/sysv/consts/UPDATE_BLOCK.S create mode 100644 libc/sysv/consts/USER_PROCESS.S create mode 100644 libc/sysv/consts/UT_HOSTSIZE.S create mode 100644 libc/sysv/consts/UT_LINESIZE.S create mode 100644 libc/sysv/consts/UT_NAMESIZE.S create mode 100644 libc/sysv/consts/YESEXPR.S create mode 100644 libc/sysv/consts/YESSTR.S create mode 100644 libc/sysv/consts/_XOPEN_ENH_I18N.S create mode 100644 libc/sysv/consts/_XOPEN_IOV_MAX.S create mode 100644 libc/sysv/consts/_XOPEN_NAME_MAX.S create mode 100644 libc/sysv/consts/_XOPEN_PATH_MAX.S create mode 100644 libc/sysv/consts/_XOPEN_SOURCE.S create mode 100644 libc/sysv/consts/_XOPEN_UNIX.S create mode 100644 libc/sysv/consts/_XOPEN_VERSION.S create mode 100644 libc/sysv/consts/__NR___mac_syscall.S create mode 100644 libc/sysv/consts/__NR___sysctl.S create mode 100644 libc/sysv/consts/__NR__umtx_op.S create mode 100644 libc/sysv/consts/__NR_abort2.S create mode 100644 libc/sysv/consts/__NR_abort_with_payload.S create mode 100644 libc/sysv/consts/__NR_accept_nocancel.S create mode 100644 libc/sysv/consts/__NR_access_extended.S create mode 100644 libc/sysv/consts/__NR_acl_aclcheck_fd.S create mode 100644 libc/sysv/consts/__NR_acl_aclcheck_file.S create mode 100644 libc/sysv/consts/__NR_acl_aclcheck_link.S create mode 100644 libc/sysv/consts/__NR_acl_delete_fd.S create mode 100644 libc/sysv/consts/__NR_acl_delete_file.S create mode 100644 libc/sysv/consts/__NR_acl_delete_link.S create mode 100644 libc/sysv/consts/__NR_acl_get_fd.S create mode 100644 libc/sysv/consts/__NR_acl_get_file.S create mode 100644 libc/sysv/consts/__NR_acl_get_link.S create mode 100644 libc/sysv/consts/__NR_acl_set_fd.S create mode 100644 libc/sysv/consts/__NR_acl_set_file.S create mode 100644 libc/sysv/consts/__NR_acl_set_link.S create mode 100644 libc/sysv/consts/__NR_adjfreq.S create mode 100644 libc/sysv/consts/__NR_adjtime.S create mode 100644 libc/sysv/consts/__NR_afs3_syscall.S create mode 100644 libc/sysv/consts/__NR_aio_cancel.S create mode 100644 libc/sysv/consts/__NR_aio_error.S create mode 100644 libc/sysv/consts/__NR_aio_fsync.S create mode 100644 libc/sysv/consts/__NR_aio_mlock.S create mode 100644 libc/sysv/consts/__NR_aio_read.S create mode 100644 libc/sysv/consts/__NR_aio_return.S create mode 100644 libc/sysv/consts/__NR_aio_suspend.S create mode 100644 libc/sysv/consts/__NR_aio_suspend_nocancel.S create mode 100644 libc/sysv/consts/__NR_aio_waitcomplete.S create mode 100644 libc/sysv/consts/__NR_aio_write.S create mode 100644 libc/sysv/consts/__NR_audit.S create mode 100644 libc/sysv/consts/__NR_audit_session_join.S create mode 100644 libc/sysv/consts/__NR_audit_session_port.S create mode 100644 libc/sysv/consts/__NR_audit_session_self.S create mode 100644 libc/sysv/consts/__NR_auditctl.S create mode 100644 libc/sysv/consts/__NR_auditon.S create mode 100644 libc/sysv/consts/__NR_bindat.S create mode 100644 libc/sysv/consts/__NR_break.S create mode 100644 libc/sysv/consts/__NR_bsdthread_ctl.S create mode 100644 libc/sysv/consts/__NR_bsdthread_terminate.S create mode 100644 libc/sysv/consts/__NR_cap_enter.S create mode 100644 libc/sysv/consts/__NR_cap_fcntls_get.S create mode 100644 libc/sysv/consts/__NR_cap_fcntls_limit.S create mode 100644 libc/sysv/consts/__NR_cap_getmode.S create mode 100644 libc/sysv/consts/__NR_cap_ioctls_get.S create mode 100644 libc/sysv/consts/__NR_cap_ioctls_limit.S create mode 100644 libc/sysv/consts/__NR_cap_rights_get.S create mode 100644 libc/sysv/consts/__NR_cap_rights_limit.S create mode 100644 libc/sysv/consts/__NR_change_fdguard_np.S create mode 100644 libc/sysv/consts/__NR_chflags.S create mode 100644 libc/sysv/consts/__NR_chflagsat.S create mode 100644 libc/sysv/consts/__NR_chmod_extended.S create mode 100644 libc/sysv/consts/__NR_clock_getcpuclockid2.S create mode 100644 libc/sysv/consts/__NR_clonefileat.S create mode 100644 libc/sysv/consts/__NR_close_nocancel.S create mode 100644 libc/sysv/consts/__NR_closefrom.S create mode 100644 libc/sysv/consts/__NR_coalition.S create mode 100644 libc/sysv/consts/__NR_coalition_info.S create mode 100644 libc/sysv/consts/__NR_connect_nocancel.S create mode 100644 libc/sysv/consts/__NR_connectat.S create mode 100644 libc/sysv/consts/__NR_connectx.S create mode 100644 libc/sysv/consts/__NR_copyfile.S create mode 100644 libc/sysv/consts/__NR_cpuset.S create mode 100644 libc/sysv/consts/__NR_cpuset_getdomain.S create mode 100644 libc/sysv/consts/__NR_cpuset_getid.S create mode 100644 libc/sysv/consts/__NR_cpuset_setdomain.S create mode 100644 libc/sysv/consts/__NR_cpuset_setid.S create mode 100644 libc/sysv/consts/__NR_csops.S create mode 100644 libc/sysv/consts/__NR_csops_audittoken.S create mode 100644 libc/sysv/consts/__NR_csrctl.S create mode 100644 libc/sysv/consts/__NR_delete.S create mode 100644 libc/sysv/consts/__NR_disable_threadsignal.S create mode 100644 libc/sysv/consts/__NR_disconnectx.S create mode 100644 libc/sysv/consts/__NR_eaccess.S create mode 100644 libc/sysv/consts/__NR_exchangedata.S create mode 100644 libc/sysv/consts/__NR_extattr_delete_fd.S create mode 100644 libc/sysv/consts/__NR_extattr_delete_file.S create mode 100644 libc/sysv/consts/__NR_extattr_delete_link.S create mode 100644 libc/sysv/consts/__NR_extattr_get_fd.S create mode 100644 libc/sysv/consts/__NR_extattr_get_file.S create mode 100644 libc/sysv/consts/__NR_extattr_get_link.S create mode 100644 libc/sysv/consts/__NR_extattr_list_fd.S create mode 100644 libc/sysv/consts/__NR_extattr_list_file.S create mode 100644 libc/sysv/consts/__NR_extattr_list_link.S create mode 100644 libc/sysv/consts/__NR_extattr_set_fd.S create mode 100644 libc/sysv/consts/__NR_extattr_set_file.S create mode 100644 libc/sysv/consts/__NR_extattr_set_link.S create mode 100644 libc/sysv/consts/__NR_extattrctl.S create mode 100644 libc/sysv/consts/__NR_fchflags.S create mode 100644 libc/sysv/consts/__NR_fchmod_extended.S create mode 100644 libc/sysv/consts/__NR_fclonefileat.S create mode 100644 libc/sysv/consts/__NR_fcntl_nocancel.S create mode 100644 libc/sysv/consts/__NR_fexecve.S create mode 100644 libc/sysv/consts/__NR_ffclock_getcounter.S create mode 100644 libc/sysv/consts/__NR_ffclock_getestimate.S create mode 100644 libc/sysv/consts/__NR_ffclock_setestimate.S create mode 100644 libc/sysv/consts/__NR_ffsctl.S create mode 100644 libc/sysv/consts/__NR_fgetattrlist.S create mode 100644 libc/sysv/consts/__NR_fhlink.S create mode 100644 libc/sysv/consts/__NR_fhlinkat.S create mode 100644 libc/sysv/consts/__NR_fhopen.S create mode 100644 libc/sysv/consts/__NR_fhreadlink.S create mode 100644 libc/sysv/consts/__NR_fhstat.S create mode 100644 libc/sysv/consts/__NR_fhstatfs.S create mode 100644 libc/sysv/consts/__NR_fileport_makefd.S create mode 100644 libc/sysv/consts/__NR_fileport_makeport.S create mode 100644 libc/sysv/consts/__NR_fmount.S create mode 100644 libc/sysv/consts/__NR_fpathconf.S create mode 100644 libc/sysv/consts/__NR_fs_snapshot.S create mode 100644 libc/sysv/consts/__NR_fsctl.S create mode 100644 libc/sysv/consts/__NR_fsetattrlist.S create mode 100644 libc/sysv/consts/__NR_fstat_extended.S create mode 100644 libc/sysv/consts/__NR_fsync_nocancel.S create mode 100644 libc/sysv/consts/__NR_get_tcb.S create mode 100644 libc/sysv/consts/__NR_getattrlist.S create mode 100644 libc/sysv/consts/__NR_getattrlistat.S create mode 100644 libc/sysv/consts/__NR_getattrlistbulk.S create mode 100644 libc/sysv/consts/__NR_getaudit.S create mode 100644 libc/sysv/consts/__NR_getaudit_addr.S create mode 100644 libc/sysv/consts/__NR_getauid.S create mode 100644 libc/sysv/consts/__NR_getcontext.S create mode 100644 libc/sysv/consts/__NR_getdirentries.S create mode 100644 libc/sysv/consts/__NR_getdirentriesattr.S create mode 100644 libc/sysv/consts/__NR_getdtablecount.S create mode 100644 libc/sysv/consts/__NR_getdtablesize.S create mode 100644 libc/sysv/consts/__NR_getfh.S create mode 100644 libc/sysv/consts/__NR_getfhat.S create mode 100644 libc/sysv/consts/__NR_getfsstat.S create mode 100644 libc/sysv/consts/__NR_gethostid.S create mode 100644 libc/sysv/consts/__NR_gethostuuid.S create mode 100644 libc/sysv/consts/__NR_getkerninfo.S create mode 100644 libc/sysv/consts/__NR_getlogin.S create mode 100644 libc/sysv/consts/__NR_getlogin_r.S create mode 100644 libc/sysv/consts/__NR_getloginclass.S create mode 100644 libc/sysv/consts/__NR_getpagesize.S create mode 100644 libc/sysv/consts/__NR_getrtable.S create mode 100644 libc/sysv/consts/__NR_getsgroups.S create mode 100644 libc/sysv/consts/__NR_getthrid.S create mode 100644 libc/sysv/consts/__NR_getwgroups.S create mode 100644 libc/sysv/consts/__NR_grab_pgo_data.S create mode 100644 libc/sysv/consts/__NR_gssd_syscall.S create mode 100644 libc/sysv/consts/__NR_guarded_close_np.S create mode 100644 libc/sysv/consts/__NR_guarded_kqueue_np.S create mode 100644 libc/sysv/consts/__NR_guarded_open_dprotected_np.S create mode 100644 libc/sysv/consts/__NR_guarded_open_np.S create mode 100644 libc/sysv/consts/__NR_guarded_pwrite_np.S create mode 100644 libc/sysv/consts/__NR_guarded_write_np.S create mode 100644 libc/sysv/consts/__NR_guarded_writev_np.S create mode 100644 libc/sysv/consts/__NR_identitysvc.S create mode 100644 libc/sysv/consts/__NR_initgroups.S create mode 100644 libc/sysv/consts/__NR_iopolicysys.S create mode 100644 libc/sysv/consts/__NR_issetugid.S create mode 100644 libc/sysv/consts/__NR_jail.S create mode 100644 libc/sysv/consts/__NR_jail_attach.S create mode 100644 libc/sysv/consts/__NR_jail_get.S create mode 100644 libc/sysv/consts/__NR_jail_remove.S create mode 100644 libc/sysv/consts/__NR_jail_set.S create mode 100644 libc/sysv/consts/__NR_kas_info.S create mode 100644 libc/sysv/consts/__NR_kbind.S create mode 100644 libc/sysv/consts/__NR_kdebug_trace.S create mode 100644 libc/sysv/consts/__NR_kdebug_trace_string.S create mode 100644 libc/sysv/consts/__NR_kdebug_typefilter.S create mode 100644 libc/sysv/consts/__NR_kenv.S create mode 100644 libc/sysv/consts/__NR_kevent.S create mode 100644 libc/sysv/consts/__NR_kevent_id.S create mode 100644 libc/sysv/consts/__NR_kevent_qos.S create mode 100644 libc/sysv/consts/__NR_kldfind.S create mode 100644 libc/sysv/consts/__NR_kldfirstmod.S create mode 100644 libc/sysv/consts/__NR_kldload.S create mode 100644 libc/sysv/consts/__NR_kldnext.S create mode 100644 libc/sysv/consts/__NR_kldstat.S create mode 100644 libc/sysv/consts/__NR_kldsym.S create mode 100644 libc/sysv/consts/__NR_kldunload.S create mode 100644 libc/sysv/consts/__NR_kldunloadf.S create mode 100644 libc/sysv/consts/__NR_kmq_notify.S create mode 100644 libc/sysv/consts/__NR_kmq_setattr.S create mode 100644 libc/sysv/consts/__NR_kmq_timedreceive.S create mode 100644 libc/sysv/consts/__NR_kmq_timedsend.S create mode 100644 libc/sysv/consts/__NR_kmq_unlink.S create mode 100644 libc/sysv/consts/__NR_kqueue.S create mode 100644 libc/sysv/consts/__NR_ksem_close.S create mode 100644 libc/sysv/consts/__NR_ksem_destroy.S create mode 100644 libc/sysv/consts/__NR_ksem_getvalue.S create mode 100644 libc/sysv/consts/__NR_ksem_init.S create mode 100644 libc/sysv/consts/__NR_ksem_open.S create mode 100644 libc/sysv/consts/__NR_ksem_post.S create mode 100644 libc/sysv/consts/__NR_ksem_timedwait.S create mode 100644 libc/sysv/consts/__NR_ksem_trywait.S create mode 100644 libc/sysv/consts/__NR_ksem_unlink.S create mode 100644 libc/sysv/consts/__NR_ksem_wait.S create mode 100644 libc/sysv/consts/__NR_ktimer_create.S create mode 100644 libc/sysv/consts/__NR_ktimer_delete.S create mode 100644 libc/sysv/consts/__NR_ktimer_getoverrun.S create mode 100644 libc/sysv/consts/__NR_ktimer_gettime.S create mode 100644 libc/sysv/consts/__NR_ktimer_settime.S create mode 100644 libc/sysv/consts/__NR_lchflags.S create mode 100644 libc/sysv/consts/__NR_lchmod.S create mode 100644 libc/sysv/consts/__NR_ledger.S create mode 100644 libc/sysv/consts/__NR_lgetfh.S create mode 100644 libc/sysv/consts/__NR_lio_listio.S create mode 100644 libc/sysv/consts/__NR_lpathconf.S create mode 100644 libc/sysv/consts/__NR_lstat_extended.S create mode 100644 libc/sysv/consts/__NR_lutimes.S create mode 100644 libc/sysv/consts/__NR_mac_execve.S create mode 100644 libc/sysv/consts/__NR_mac_get_fd.S create mode 100644 libc/sysv/consts/__NR_mac_get_file.S create mode 100644 libc/sysv/consts/__NR_mac_get_link.S create mode 100644 libc/sysv/consts/__NR_mac_get_mount.S create mode 100644 libc/sysv/consts/__NR_mac_get_pid.S create mode 100644 libc/sysv/consts/__NR_mac_get_proc.S create mode 100644 libc/sysv/consts/__NR_mac_getfsstat.S create mode 100644 libc/sysv/consts/__NR_mac_mount.S create mode 100644 libc/sysv/consts/__NR_mac_set_fd.S create mode 100644 libc/sysv/consts/__NR_mac_set_file.S create mode 100644 libc/sysv/consts/__NR_mac_set_link.S create mode 100644 libc/sysv/consts/__NR_mac_set_proc.S create mode 100644 libc/sysv/consts/__NR_mac_syscall.S create mode 100644 libc/sysv/consts/__NR_memorystatus_control.S create mode 100644 libc/sysv/consts/__NR_memorystatus_get_level.S create mode 100644 libc/sysv/consts/__NR_microstackshot.S create mode 100644 libc/sysv/consts/__NR_minherit.S create mode 100644 libc/sysv/consts/__NR_mkdir_extended.S create mode 100644 libc/sysv/consts/__NR_mkfifo_extended.S create mode 100644 libc/sysv/consts/__NR_modfind.S create mode 100644 libc/sysv/consts/__NR_modfnext.S create mode 100644 libc/sysv/consts/__NR_modnext.S create mode 100644 libc/sysv/consts/__NR_modstat.S create mode 100644 libc/sysv/consts/__NR_modwatch.S create mode 100644 libc/sysv/consts/__NR_mquery.S create mode 100644 libc/sysv/consts/__NR_mremap_encrypted.S create mode 100644 libc/sysv/consts/__NR_msgrcv_nocancel.S create mode 100644 libc/sysv/consts/__NR_msgsnd_nocancel.S create mode 100644 libc/sysv/consts/__NR_msgsys.S create mode 100644 libc/sysv/consts/__NR_msync_nocancel.S create mode 100644 libc/sysv/consts/__NR_necp_client_action.S create mode 100644 libc/sysv/consts/__NR_necp_match_policy.S create mode 100644 libc/sysv/consts/__NR_necp_open.S create mode 100644 libc/sysv/consts/__NR_necp_session_action.S create mode 100644 libc/sysv/consts/__NR_necp_session_open.S create mode 100644 libc/sysv/consts/__NR_net_qos_guideline.S create mode 100644 libc/sysv/consts/__NR_netagent_trigger.S create mode 100644 libc/sysv/consts/__NR_nfsclnt.S create mode 100644 libc/sysv/consts/__NR_nfssvc.S create mode 100644 libc/sysv/consts/__NR_nfstat.S create mode 100644 libc/sysv/consts/__NR_nlm_syscall.S create mode 100644 libc/sysv/consts/__NR_nlstat.S create mode 100644 libc/sysv/consts/__NR_nmount.S create mode 100644 libc/sysv/consts/__NR_nnpfs_syscall.S create mode 100644 libc/sysv/consts/__NR_nstat.S create mode 100644 libc/sysv/consts/__NR_ntp_adjtime.S create mode 100644 libc/sysv/consts/__NR_ntp_gettime.S create mode 100644 libc/sysv/consts/__NR_obreak.S create mode 100644 libc/sysv/consts/__NR_old_semwait_signal.S create mode 100644 libc/sysv/consts/__NR_old_semwait_signal_nocancel.S create mode 100644 libc/sysv/consts/__NR_open_dprotected_np.S create mode 100644 libc/sysv/consts/__NR_open_extended.S create mode 100644 libc/sysv/consts/__NR_open_nocancel.S create mode 100644 libc/sysv/consts/__NR_openat_nocancel.S create mode 100644 libc/sysv/consts/__NR_openbyid_np.S create mode 100644 libc/sysv/consts/__NR_os_fault_with_payload.S create mode 100644 libc/sysv/consts/__NR_pathconf.S create mode 100644 libc/sysv/consts/__NR_pdfork.S create mode 100644 libc/sysv/consts/__NR_pdgetpid.S create mode 100644 libc/sysv/consts/__NR_pdkill.S create mode 100644 libc/sysv/consts/__NR_peeloff.S create mode 100644 libc/sysv/consts/__NR_persona.S create mode 100644 libc/sysv/consts/__NR_pid_hibernate.S create mode 100644 libc/sysv/consts/__NR_pid_resume.S create mode 100644 libc/sysv/consts/__NR_pid_shutdown_sockets.S create mode 100644 libc/sysv/consts/__NR_pid_suspend.S create mode 100644 libc/sysv/consts/__NR_poll_nocancel.S create mode 100644 libc/sysv/consts/__NR_posix_openpt.S create mode 100644 libc/sysv/consts/__NR_pread_nocancel.S create mode 100644 libc/sysv/consts/__NR_proc_info.S create mode 100644 libc/sysv/consts/__NR_proc_rlimit_control.S create mode 100644 libc/sysv/consts/__NR_proc_trace_log.S create mode 100644 libc/sysv/consts/__NR_proc_uuid_policy.S create mode 100644 libc/sysv/consts/__NR_procctl.S create mode 100644 libc/sysv/consts/__NR_process_policy.S create mode 100644 libc/sysv/consts/__NR_profil.S create mode 100644 libc/sysv/consts/__NR_pselect_nocancel.S create mode 100644 libc/sysv/consts/__NR_psynch_cvbroad.S create mode 100644 libc/sysv/consts/__NR_psynch_cvclrprepost.S create mode 100644 libc/sysv/consts/__NR_psynch_cvsignal.S create mode 100644 libc/sysv/consts/__NR_psynch_cvwait.S create mode 100644 libc/sysv/consts/__NR_psynch_mutexdrop.S create mode 100644 libc/sysv/consts/__NR_psynch_mutexwait.S create mode 100644 libc/sysv/consts/__NR_psynch_rw_downgrade.S create mode 100644 libc/sysv/consts/__NR_psynch_rw_longrdlock.S create mode 100644 libc/sysv/consts/__NR_psynch_rw_rdlock.S create mode 100644 libc/sysv/consts/__NR_psynch_rw_unlock.S create mode 100644 libc/sysv/consts/__NR_psynch_rw_unlock2.S create mode 100644 libc/sysv/consts/__NR_psynch_rw_upgrade.S create mode 100644 libc/sysv/consts/__NR_psynch_rw_wrlock.S create mode 100644 libc/sysv/consts/__NR_psynch_rw_yieldwrlock.S create mode 100644 libc/sysv/consts/__NR_pthread_canceled.S create mode 100644 libc/sysv/consts/__NR_pthread_chdir.S create mode 100644 libc/sysv/consts/__NR_pthread_fchdir.S create mode 100644 libc/sysv/consts/__NR_pthread_kill.S create mode 100644 libc/sysv/consts/__NR_pthread_markcancel.S create mode 100644 libc/sysv/consts/__NR_pthread_sigmask.S create mode 100644 libc/sysv/consts/__NR_pwrite_nocancel.S create mode 100644 libc/sysv/consts/__NR_quota.S create mode 100644 libc/sysv/consts/__NR_rctl_add_rule.S create mode 100644 libc/sysv/consts/__NR_rctl_get_limits.S create mode 100644 libc/sysv/consts/__NR_rctl_get_racct.S create mode 100644 libc/sysv/consts/__NR_rctl_get_rules.S create mode 100644 libc/sysv/consts/__NR_rctl_remove_rule.S create mode 100644 libc/sysv/consts/__NR_read_nocancel.S create mode 100644 libc/sysv/consts/__NR_readv_nocancel.S create mode 100644 libc/sysv/consts/__NR_recv.S create mode 100644 libc/sysv/consts/__NR_recvfrom_nocancel.S create mode 100644 libc/sysv/consts/__NR_recvmsg_nocancel.S create mode 100644 libc/sysv/consts/__NR_recvmsg_x.S create mode 100644 libc/sysv/consts/__NR_renameatx_np.S create mode 100644 libc/sysv/consts/__NR_revoke.S create mode 100644 libc/sysv/consts/__NR_rfork.S create mode 100644 libc/sysv/consts/__NR_rtprio.S create mode 100644 libc/sysv/consts/__NR_rtprio_thread.S create mode 100644 libc/sysv/consts/__NR_sctp_generic_recvmsg.S create mode 100644 libc/sysv/consts/__NR_sctp_generic_sendmsg.S create mode 100644 libc/sysv/consts/__NR_sctp_generic_sendmsg_iov.S create mode 100644 libc/sysv/consts/__NR_sctp_peeloff.S create mode 100644 libc/sysv/consts/__NR_searchfs.S create mode 100644 libc/sysv/consts/__NR_select_nocancel.S create mode 100644 libc/sysv/consts/__NR_sem_close.S create mode 100644 libc/sysv/consts/__NR_sem_open.S create mode 100644 libc/sysv/consts/__NR_sem_post.S create mode 100644 libc/sysv/consts/__NR_sem_trywait.S create mode 100644 libc/sysv/consts/__NR_sem_unlink.S create mode 100644 libc/sysv/consts/__NR_sem_wait.S create mode 100644 libc/sysv/consts/__NR_sem_wait_nocancel.S create mode 100644 libc/sysv/consts/__NR_semsys.S create mode 100644 libc/sysv/consts/__NR_semwait_signal.S create mode 100644 libc/sysv/consts/__NR_semwait_signal_nocancel.S create mode 100644 libc/sysv/consts/__NR_send.S create mode 100644 libc/sysv/consts/__NR_sendmsg_nocancel.S create mode 100644 libc/sysv/consts/__NR_sendmsg_x.S create mode 100644 libc/sysv/consts/__NR_sendsyslog.S create mode 100644 libc/sysv/consts/__NR_sendto_nocancel.S create mode 100644 libc/sysv/consts/__NR_set_tcb.S create mode 100644 libc/sysv/consts/__NR_setattrlist.S create mode 100644 libc/sysv/consts/__NR_setattrlistat.S create mode 100644 libc/sysv/consts/__NR_setaudit.S create mode 100644 libc/sysv/consts/__NR_setaudit_addr.S create mode 100644 libc/sysv/consts/__NR_setauid.S create mode 100644 libc/sysv/consts/__NR_setcontext.S create mode 100644 libc/sysv/consts/__NR_setegid.S create mode 100644 libc/sysv/consts/__NR_seteuid.S create mode 100644 libc/sysv/consts/__NR_setfib.S create mode 100644 libc/sysv/consts/__NR_sethostid.S create mode 100644 libc/sysv/consts/__NR_setlogin.S create mode 100644 libc/sysv/consts/__NR_setloginclass.S create mode 100644 libc/sysv/consts/__NR_setprivexec.S create mode 100644 libc/sysv/consts/__NR_setrtable.S create mode 100644 libc/sysv/consts/__NR_setsgroups.S create mode 100644 libc/sysv/consts/__NR_settid.S create mode 100644 libc/sysv/consts/__NR_settid_with_pid.S create mode 100644 libc/sysv/consts/__NR_setugid.S create mode 100644 libc/sysv/consts/__NR_setwgroups.S create mode 100644 libc/sysv/consts/__NR_sfi_ctl.S create mode 100644 libc/sysv/consts/__NR_sfi_pidctl.S create mode 100644 libc/sysv/consts/__NR_shared_region_check_np.S create mode 100644 libc/sysv/consts/__NR_shared_region_map_and_slide_np.S create mode 100644 libc/sysv/consts/__NR_shm_open.S create mode 100644 libc/sysv/consts/__NR_shm_unlink.S create mode 100644 libc/sysv/consts/__NR_shmsys.S create mode 100644 libc/sysv/consts/__NR_sigblock.S create mode 100644 libc/sysv/consts/__NR_sigqueue.S create mode 100644 libc/sysv/consts/__NR_sigsetmask.S create mode 100644 libc/sysv/consts/__NR_sigstack.S create mode 100644 libc/sysv/consts/__NR_sigsuspend_nocancel.S create mode 100644 libc/sysv/consts/__NR_sigvec.S create mode 100644 libc/sysv/consts/__NR_sigwait.S create mode 100644 libc/sysv/consts/__NR_sigwait_nocancel.S create mode 100644 libc/sysv/consts/__NR_sigwaitinfo.S create mode 100644 libc/sysv/consts/__NR_socket_delegate.S create mode 100644 libc/sysv/consts/__NR_sstk.S create mode 100644 libc/sysv/consts/__NR_stack_snapshot_with_config.S create mode 100644 libc/sysv/consts/__NR_stat_extended.S create mode 100644 libc/sysv/consts/__NR_swapcontext.S create mode 100644 libc/sysv/consts/__NR_swapctl.S create mode 100644 libc/sysv/consts/__NR_syscall.S create mode 100644 libc/sysv/consts/__NR_sysctl.S create mode 100644 libc/sysv/consts/__NR_sysctlbyname.S create mode 100644 libc/sysv/consts/__NR_system_override.S create mode 100644 libc/sysv/consts/__NR_telemetry.S create mode 100644 libc/sysv/consts/__NR_terminate_with_payload.S create mode 100644 libc/sysv/consts/__NR_tfork.S create mode 100644 libc/sysv/consts/__NR_thr_create.S create mode 100644 libc/sysv/consts/__NR_thr_exit.S create mode 100644 libc/sysv/consts/__NR_thr_kill.S create mode 100644 libc/sysv/consts/__NR_thr_kill2.S create mode 100644 libc/sysv/consts/__NR_thr_self.S create mode 100644 libc/sysv/consts/__NR_thr_set_name.S create mode 100644 libc/sysv/consts/__NR_thr_suspend.S create mode 100644 libc/sysv/consts/__NR_thr_wake.S create mode 100644 libc/sysv/consts/__NR_thread_selfcounts.S create mode 100644 libc/sysv/consts/__NR_thread_selfid.S create mode 100644 libc/sysv/consts/__NR_thread_selfusage.S create mode 100644 libc/sysv/consts/__NR_threxit.S create mode 100644 libc/sysv/consts/__NR_thrkill.S create mode 100644 libc/sysv/consts/__NR_thrsigdivert.S create mode 100644 libc/sysv/consts/__NR_thrsleep.S create mode 100644 libc/sysv/consts/__NR_thrwakeup.S create mode 100644 libc/sysv/consts/__NR_ulock_wait.S create mode 100644 libc/sysv/consts/__NR_ulock_wake.S create mode 100644 libc/sysv/consts/__NR_umask_extended.S create mode 100644 libc/sysv/consts/__NR_undelete.S create mode 100644 libc/sysv/consts/__NR_unmount.S create mode 100644 libc/sysv/consts/__NR_unveil.S create mode 100644 libc/sysv/consts/__NR_usrctl.S create mode 100644 libc/sysv/consts/__NR_utrace.S create mode 100644 libc/sysv/consts/__NR_uuidgen.S create mode 100644 libc/sysv/consts/__NR_vadvise.S create mode 100644 libc/sysv/consts/__NR_vfs_purge.S create mode 100644 libc/sysv/consts/__NR_vm_pressure_monitor.S create mode 100644 libc/sysv/consts/__NR_wait.S create mode 100644 libc/sysv/consts/__NR_wait4_nocancel.S create mode 100644 libc/sysv/consts/__NR_wait6.S create mode 100644 libc/sysv/consts/__NR_waitevent.S create mode 100644 libc/sysv/consts/__NR_waitid_nocancel.S create mode 100644 libc/sysv/consts/__NR_watchevent.S create mode 100644 libc/sysv/consts/__NR_work_interval_ctl.S create mode 100644 libc/sysv/consts/__NR_workq_kernreturn.S create mode 100644 libc/sysv/consts/__NR_workq_open.S create mode 100644 libc/sysv/consts/__NR_write_nocancel.S create mode 100644 libc/sysv/consts/__NR_writev_nocancel.S create mode 100644 libc/sysv/consts/__NR_yield.S create mode 100644 libc/sysv/consts/nd.h delete mode 100644 libc/sysv/consts/xopen.h delete mode 100644 libc/testlib/geterrno.c delete mode 100644 libc/testlib/seterrno.c delete mode 100644 libc/testlib/strerror.c create mode 100644 libc/testlib/ugly.h delete mode 100644 test/libc/calls/openbsd_test.c create mode 100644 third_party/quickjs/VERSION diff --git a/Makefile b/Makefile index ccf280713..6bedf45a0 100644 --- a/Makefile +++ b/Makefile @@ -255,12 +255,12 @@ o/$(MODE)/hdrs-old.txt: o/$(MODE)/.x $(MAKEFILES) $(call uniq,$(foreach x,$(HDRS TAGS: .UNSANDBOXED = 1 TAGS: o/$(MODE)/srcs-old.txt $(SRCS) @$(RM) $@ - @$(TAGS) $(TAGSFLAGS) -L $< -o $@ + @$(COMPILE) -ATAGS -T$@ $(TAGS) $(TAGSFLAGS) -L $< -o $@ HTAGS: .UNSANDBOXED = 1 HTAGS: o/$(MODE)/hdrs-old.txt $(HDRS) @$(RM) $@ - @build/htags -L $< -o $@ + @$(COMPILE) -ATAGS -T$@ build/htags -L $< -o $@ loc: .UNSANDBOXED = 1 loc: o/$(MODE)/tool/build/summy.com @@ -297,8 +297,10 @@ COSMOPOLITAN_OBJECTS = \ LIBC_NT_PSAPI \ LIBC_NT_POWRPROF \ LIBC_NT_PDH \ + LIBC_NT_SHELL32 \ LIBC_NT_GDI32 \ LIBC_NT_COMDLG32 \ + LIBC_NT_NETAPI32 \ LIBC_NT_URL \ LIBC_NT_USER32 \ LIBC_NT_NTDLL \ diff --git a/build/bootstrap/compile.com b/build/bootstrap/compile.com index 5293926d09c9a5fede66dc7df1cb40f1bf73bfb2..730d12b488df45973d670f2d3d0e02578204c15b 100755 GIT binary patch delta 55175 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 delta 58861 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⪼(wm$@|n;ZJFrx`Ab=c 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%0AU=@wVw63`mO6)E)Sc0)^~^&gWp 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 diff --git a/build/bootstrap/make.com b/build/bootstrap/make.com index 38d356dfd3f9760632c8680dc17a0a1635f7bc98..c8725e772704c438bbd71d657ee10884ca6da428 100755 GIT binary patch delta 166780 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�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℞ya(SkkC^nAc>ObQjbi9EK7+Q!et{^Dvh<gJ%T@b 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	+VLQ8 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 delta 133432 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⁢VP|8%=qNp?eLCp*80okk$`pG84^D<9ELGz$Gcz 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 diff --git a/build/online.mk b/build/online.mk index b8f778820..ce19ed8f9 100644 --- a/build/online.mk +++ b/build/online.mk @@ -27,4 +27,4 @@ o/$(MODE)/%.com.ok: \ o/$(MODE)/tool/build/runit.com \ o/$(MODE)/tool/build/runitd.com \ o/$(MODE)/%.com - @$(COMPILE) -ATEST -wtT$@ $^ $(HOSTS) + @$(COMPILE) -ATEST -tT$@ $^ $(HOSTS) diff --git a/build/rules.mk b/build/rules.mk index 808d7d887..ff5f03249 100644 --- a/build/rules.mk +++ b/build/rules.mk @@ -20,12 +20,15 @@ o/%.o: %.s ; @$(COMPILE) -AOBJECTIFY.s $(OBJECTIFY.s) $( o/%.o: o/%.s ; @$(COMPILE) -AOBJECTIFY.s $(OBJECTIFY.s) $(OUTPUT_OPTION) $< o/%.s: %.S ; @$(COMPILE) -APREPROCESS $(PREPROCESS) $(OUTPUT_OPTION) $< o/%.s: o/%.S ; @$(COMPILE) -APREPROCESS $(PREPROCESS) $(OUTPUT_OPTION) $< +o/%.i: %.S ; @$(COMPILE) -APREPROCESS $(PREPROCESS) $(OUTPUT_OPTION) $< o/%.o: %.S ; @$(COMPILE) -AOBJECTIFY.S $(OBJECTIFY.S) $(OUTPUT_OPTION) $< o/%.o: o/%.S ; @$(COMPILE) -AOBJECTIFY.S $(OBJECTIFY.S) $(OUTPUT_OPTION) $< +o/%.s: %.i ; @$(COMPILE) -ACOMPILE.i $(COMPILE.i) $(OUTPUT_OPTION) $< +o/%.s: o/%.i ; @$(COMPILE) -ACOMPILE.i $(COMPILE.i) $(OUTPUT_OPTION) $< o/%.lds: %.lds ; @$(COMPILE) -APREPROCESS $(PREPROCESS.lds) $(OUTPUT_OPTION) $< o/%.inc: %.h ; @$(COMPILE) -APREPROCESS $(PREPROCESS) $(OUTPUT_OPTION) -D__ASSEMBLER__ -P $< o/%.greg.o: %.greg.c ; @$(COMPILE) -AOBJECTIFY.greg $(OBJECTIFY.greg.c) $(OUTPUT_OPTION) $< -o/%.zip.o: o/% ; @$(COMPILE) -wAZIPOBJ $(ZIPOBJ) $(ZIPOBJ_FLAGS) $(OUTPUT_OPTION) $< +o/%.zip.o: o/% ; @$(COMPILE) -AZIPOBJ $(ZIPOBJ) $(ZIPOBJ_FLAGS) $(OUTPUT_OPTION) $< o/$(MODE)/%: o/$(MODE)/%.dbg ; @$(COMPILE) -AOBJCOPY -T$@ $(OBJCOPY) -S -O binary $< $@ o/$(MODE)/%.o: %.s ; @$(COMPILE) -AOBJECTIFY.s $(OBJECTIFY.s) $(OUTPUT_OPTION) $< @@ -36,20 +39,32 @@ o/$(MODE)/%.o: %.f ; @$(COMPILE) -AOBJECTIFY.f $(OBJECTIFY.f) $( o/$(MODE)/%.o: %.F ; @$(COMPILE) -AOBJECTIFY.F $(OBJECTIFY.F) $(OUTPUT_OPTION) $< o/$(MODE)/%.ss: %.c ; @$(COMPILE) -ACOMPILE.c $(COMPILE.c) $(OUTPUT_OPTION) $< o/$(MODE)/%.ss: o/$(MODE)/%.c ; @$(COMPILE) -AOBJECTIFY.s $(COMPILE.c) $(OUTPUT_OPTION) $< +o/$(MODE)/%.i: %.S ; @$(COMPILE) -APREPROCESS $(PREPROCESS) $(OUTPUT_OPTION) $< +o/$(MODE)/%.i: %.c ; @$(COMPILE) -APREPROCESS $(PREPROCESS) $(OUTPUT_OPTION) $< +o/$(MODE)/%.i: %.cc ; @$(COMPILE) -APREPROCESS $(PREPROCESS) $(OUTPUT_OPTION) $< +o/$(MODE)/%.i: o/$(MODE)/%.c ; @$(COMPILE) -APREPROCESS $(PREPROCESS) $(OUTPUT_OPTION) $< o/$(MODE)/%.h: %.c ; @$(COMPILE) -AAMALGAMATE $(PREPROCESS) $(OUTPUT_OPTION) -fdirectives-only -P $< o/$(MODE)/%.h: o/$(MODE)/%.c ; @$(COMPILE) -AAMALGAMATE $(PREPROCESS) $(OUTPUT_OPTION) -fdirectives-only -P $< o/$(MODE)/%.o: %.S ; @$(COMPILE) -AOBJECTIFY.S $(OBJECTIFY.S) $(OUTPUT_OPTION) $< o/$(MODE)/%.o: o/$(MODE)/%.S ; @$(COMPILE) -AOBJECTIFY.S $(OBJECTIFY.S) $(OUTPUT_OPTION) $< +o/$(MODE)/%.s: %.i ; @$(COMPILE) -ACOMPILE.i $(COMPILE.i) $(OUTPUT_OPTION) $< +o/$(MODE)/%.s: o/$(MODE)/%.i ; @$(COMPILE) -ACOMPILE.i $(COMPILE.i) $(OUTPUT_OPTION) $< o/$(MODE)/%.o: %.cc ; @$(COMPILE) -AOBJECTIFY.cxx $(OBJECTIFY.cxx) $(OUTPUT_OPTION) $< o/$(MODE)/%.lds: %.lds ; @$(COMPILE) -APREPROCESS $(PREPROCESS.lds) $(OUTPUT_OPTION) $< +o/$(MODE)/%.cxx.o: %.c ; @$(COMPILE) -AOBJECTIFY.cxx $(OBJECTIFY.cxx) -xc++ $(OUTPUT_OPTION) $< o/$(MODE)/%.o: %.greg.c ; @$(COMPILE) -AOBJECTIFY.greg $(OBJECTIFY.greg.c) $(OUTPUT_OPTION) $< o/$(MODE)/%.greg.o: %.greg.c ; @$(COMPILE) -AOBJECTIFY.greg $(OBJECTIFY.greg.c) $(OUTPUT_OPTION) $< +o/$(MODE)/%.ansi.o: %.ansi.c ; @$(COMPILE) -AOBJECTIFY.ansi $(OBJECTIFY.ansi.c) $(OUTPUT_OPTION) $< +o/$(MODE)/%.ansi.o: %.c ; @$(COMPILE) -AOBJECTIFY.ansi $(OBJECTIFY.ansi.c) $(OUTPUT_OPTION) $< +o/$(MODE)/%.c99.o: %.c99.c ; @$(COMPILE) -AOBJECTIFY.c99 $(OBJECTIFY.c99.c) $(OUTPUT_OPTION) $< +o/$(MODE)/%.c11.o: %.c11.c ; @$(COMPILE) -AOBJECTIFY.c11 $(OBJECTIFY.c11.c) $(OUTPUT_OPTION) $< +o/$(MODE)/%.c2x.o: %.c2x.c ; @$(COMPILE) -AOBJECTIFY.c2x $(OBJECTIFY.c2x.c) $(OUTPUT_OPTION) $< o/$(MODE)/%.initabi.o: %.initabi.c ; @$(COMPILE) -AOBJECTIFY.init $(OBJECTIFY.initabi.c) $(OUTPUT_OPTION) $< o/$(MODE)/%.ncabi.o: %.ncabi.c ; @$(COMPILE) -AOBJECTIFY.nc $(OBJECTIFY.ncabi.c) $(OUTPUT_OPTION) $< o/$(MODE)/%.real.o: %.c ; @$(COMPILE) -AOBJECTIFY.real $(OBJECTIFY.real.c) $(OUTPUT_OPTION) $< o/$(MODE)/%.runs: o/$(MODE)/% ; @$(COMPILE) -ACHECK -tT$@ $< $(TESTARGS) -o/$(MODE)/%.zip.o: % ; @$(COMPILE) -wAZIPOBJ $(ZIPOBJ) $(ZIPOBJ_FLAGS) $(OUTPUT_OPTION) $< +o/$(MODE)/%.zip.o: % ; @$(COMPILE) -AZIPOBJ $(ZIPOBJ) $(ZIPOBJ_FLAGS) $(OUTPUT_OPTION) $< o/$(MODE)/%-gcc.asm: %.c ; @$(COMPILE) -AOBJECTIFY.c $(OBJECTIFY.c) -S -g0 $(OUTPUT_OPTION) $< o/$(MODE)/%-gcc.asm: %.cc ; @$(COMPILE) -AOBJECTIFY.c $(OBJECTIFY.cxx) -S -g0 $(OUTPUT_OPTION) $< o/$(MODE)/%-clang.asm: %.c ; @$(COMPILE) -AOBJECTIFY.c $(OBJECTIFY.c) -S -g0 $(OUTPUT_OPTION) $< @@ -58,66 +73,66 @@ o/$(MODE)/%-clang.asm: CC = $(CLANG) o/%.o: %.cc @$(COMPILE) -AOBJECTIFY.cxx $(OBJECTIFY.cxx) $(OUTPUT_OPTION) $< - @$(COMPILE) -AFIXUPOBJ -wT$@ $(FIXUPOBJ) $@ + @$(COMPILE) -AFIXUPOBJ -T$@ $(FIXUPOBJ) $@ o/%.o: o/%.cc @$(COMPILE) -AOBJECTIFY.cxx $(OBJECTIFY.cxx) $(OUTPUT_OPTION) $< - @$(COMPILE) -AFIXUPOBJ -wT$@ $(FIXUPOBJ) $@ + @$(COMPILE) -AFIXUPOBJ -T$@ $(FIXUPOBJ) $@ o/$(MODE)/%.o: %.c @$(COMPILE) -AOBJECTIFY.c $(OBJECTIFY.c) $(OUTPUT_OPTION) $< - @$(COMPILE) -AFIXUPOBJ -wT$@ $(FIXUPOBJ) $@ + @$(COMPILE) -AFIXUPOBJ -T$@ $(FIXUPOBJ) $@ o/$(MODE)/%.o: o/$(MODE)/%.c @$(COMPILE) -AOBJECTIFY.c $(OBJECTIFY.c) $(OUTPUT_OPTION) $< - @$(COMPILE) -AFIXUPOBJ -wT$@ $(FIXUPOBJ) $@ + @$(COMPILE) -AFIXUPOBJ -T$@ $(FIXUPOBJ) $@ o/$(MODE)/%.o: o/$(MODE)/%.cc @$(COMPILE) -AOBJECTIFY.cxx $(OBJECTIFY.cxx) $(OUTPUT_OPTION) $< - @$(COMPILE) -AFIXUPOBJ -wT$@ $(FIXUPOBJ) $@ + @$(COMPILE) -AFIXUPOBJ -T$@ $(FIXUPOBJ) $@ o/%.a: $(file >$(TMPDIR)/$(subst /,_,$@),$^) - @$(COMPILE) -AARCHIVE -wT$@ $(AR) $(ARFLAGS) $@ @$(TMPDIR)/$(subst /,_,$@) + @$(COMPILE) -AARCHIVE -T$@ $(AR) $(ARFLAGS) $@ @$(TMPDIR)/$(subst /,_,$@) o/%.pkg: $(file >$(TMPDIR)/$(subst /,_,$@).args,$(filter %.o,$^)) - @$(COMPILE) -APACKAGE -wT$@ $(PKG) $(OUTPUT_OPTION) $(addprefix -d,$(filter %.pkg,$^)) @$(TMPDIR)/$(subst /,_,$@) + @$(COMPILE) -APACKAGE -T$@ $(PKG) $(OUTPUT_OPTION) $(addprefix -d,$(filter %.pkg,$^)) @$(TMPDIR)/$(subst /,_,$@) o/$(MODE)/%.pkg: $(file >$(TMPDIR)/$(subst /,_,$@),$(filter %.o,$^)) - @$(COMPILE) -APACKAGE -wT$@ $(PKG) $(OUTPUT_OPTION) $(addprefix -d,$(filter %.pkg,$^)) @$(TMPDIR)/$(subst /,_,$@) + @$(COMPILE) -APACKAGE -T$@ $(PKG) $(OUTPUT_OPTION) $(addprefix -d,$(filter %.pkg,$^)) @$(TMPDIR)/$(subst /,_,$@) o/$(MODE)/%.o: %.py o/$(MODE)/third_party/python/pyobj.com - @$(COMPILE) -wAPYOBJ o/$(MODE)/third_party/python/pyobj.com $(PYFLAGS) -o $@ $< + @$(COMPILE) -APYOBJ o/$(MODE)/third_party/python/pyobj.com $(PYFLAGS) -o $@ $< o/$(MODE)/%.pyc: %.py o/$(MODE)/third_party/python/pycomp.com - @$(COMPILE) -wAPYCOMP o/$(MODE)/third_party/python/pycomp.com $(PYCFLAGS) -o $@ $< + @$(COMPILE) -APYCOMP o/$(MODE)/third_party/python/pycomp.com $(PYCFLAGS) -o $@ $< o/$(MODE)/%.lua: %.lua o/$(MODE)/third_party/lua/luac.com - @$(COMPILE) -wALUAC o/$(MODE)/third_party/lua/luac.com -s -o $@ $< + @$(COMPILE) -ALUAC o/$(MODE)/third_party/lua/luac.com -s -o $@ $< o/$(MODE)/%.lua.runs: %.lua o/$(MODE)/tool/net/redbean.com - @$(COMPILE) -wALUA -tT$@ o/$(MODE)/tool/net/redbean.com $(LUAFLAGS) -i $< + @$(COMPILE) -ALUA -tT$@ o/$(MODE)/tool/net/redbean.com $(LUAFLAGS) -i $< o/$(MODE)/%: o/$(MODE)/%.com o/$(MODE)/tool/build/cp.com o/$(MODE)/tool/build/assimilate.com - @$(COMPILE) -wACP -wT$@ o/$(MODE)/tool/build/cp.com $< $@ - @$(COMPILE) -wAASSIMILATE -wT$@ o/$(MODE)/tool/build/assimilate.com $@ + @$(COMPILE) -ACP -T$@ o/$(MODE)/tool/build/cp.com $< $@ + @$(COMPILE) -AASSIMILATE -T$@ o/$(MODE)/tool/build/assimilate.com $@ # TODO(jart): find a way to generate dependencies # or alternatively disable sandboxing o/%.h.ok: %.h - @$(COMPILE) -wACHECK.h -T$@ build/bootstrap/touch.com $@ + @$(COMPILE) -ACHECK.h -T$@ build/bootstrap/touch.com $@ # @$(COMPILE) -ACHECK.h $(COMPILE.c) -xc -g0 -o $@ $< o/$(MODE)/%.h.ok: %.h - @$(COMPILE) -wACHECK.h -T$@ build/bootstrap/touch.com $@ + @$(COMPILE) -ACHECK.h -T$@ build/bootstrap/touch.com $@ # @$(COMPILE) -ACHECK.h $(COMPILE.c) -xc -g0 -o $@ $< o/$(MODE)/%.hh.ok: %.hh - @$(COMPILE) -wACHECK.h -T$@ build/bootstrap/touch.com $@ + @$(COMPILE) -ACHECK.h -T$@ build/bootstrap/touch.com $@ # @$(COMPILE) -ACHECK.h $(COMPILE.cxx) -xc++ -g0 -o $@ $< o/%.okk: % - @$(COMPILE) -wACHECK.h -T$@ build/bootstrap/touch.com $@ + @$(COMPILE) -ACHECK.h -T$@ build/bootstrap/touch.com $@ # @$(COMPILE) -ACHECK.h $(COMPILE.cxx) -xc++ -g0 -o $@ $< o/$(MODE)/%.okk: % - @$(COMPILE) -wACHECK.h -T$@ build/bootstrap/touch.com $@ + @$(COMPILE) -ACHECK.h -T$@ build/bootstrap/touch.com $@ # @$(COMPILE) -ACHECK.h $(COMPILE.cxx) -xc++ -g0 -o $@ $< diff --git a/dsp/tty/ident.c b/dsp/tty/ident.c index fad69d47c..2765743d3 100644 --- a/dsp/tty/ident.c +++ b/dsp/tty/ident.c @@ -21,7 +21,6 @@ #include "libc/bits/weaken.h" #include "libc/calls/calls.h" #include "libc/calls/termios.h" -#include "libc/dce.h" #include "libc/fmt/fmt.h" #include "libc/mem/mem.h" #include "libc/runtime/runtime.h" diff --git a/examples/cosh.c b/examples/cosh.c index 6fe9bb60d..1ebee1ed0 100644 --- a/examples/cosh.c +++ b/examples/cosh.c @@ -18,7 +18,6 @@ #include "libc/log/internal.h" #include "libc/log/log.h" #include "libc/macros.internal.h" -#include "libc/mem/mem.h" #include "libc/runtime/internal.h" #include "libc/runtime/runtime.h" #include "libc/stdio/append.internal.h" diff --git a/examples/decompress.c b/examples/decompress.c index e85f52901..5d21d99f6 100644 --- a/examples/decompress.c +++ b/examples/decompress.c @@ -12,7 +12,6 @@ #include "libc/mem/mem.h" #include "libc/runtime/gc.internal.h" #include "libc/stdio/stdio.h" -#include "libc/str/str.h" #include "third_party/zlib/zlib.h" #define CHUNK 32768 diff --git a/examples/panels.c b/examples/panels.c index 070276b9e..4e3361126 100644 --- a/examples/panels.c +++ b/examples/panels.c @@ -17,7 +17,6 @@ #include "libc/log/gdb.h" #include "libc/log/log.h" #include "libc/macros.internal.h" -#include "libc/mem/mem.h" #include "libc/runtime/gc.internal.h" #include "libc/runtime/runtime.h" #include "libc/str/str.h" diff --git a/examples/picol.c b/examples/picol.c index 767287b40..20e84e0d2 100644 --- a/examples/picol.c +++ b/examples/picol.c @@ -35,9 +35,7 @@ #include "libc/fmt/conv.h" #include "libc/fmt/fmt.h" #include "libc/log/log.h" -#include "libc/mem/mem.h" #include "libc/stdio/stdio.h" -#include "libc/str/str.h" enum { PICOL_OK, PICOL_ERR, PICOL_RETURN, PICOL_BREAK, PICOL_CONTINUE }; enum { PT_ESC, PT_STR, PT_CMD, PT_VAR, PT_SEP, PT_EOL, PT_EOF }; diff --git a/examples/pylife/pylife.mk b/examples/pylife/pylife.mk index a080dea09..7752dfa8c 100644 --- a/examples/pylife/pylife.mk +++ b/examples/pylife/pylife.mk @@ -96,7 +96,7 @@ o/$(MODE)/examples/pylife/pylife.com.dbg: \ o/$(MODE)/examples/pylife/pylife.o \ $(CRT) \ $(APE_NO_MODIFY_SELF) - @$(COMPILE) -ALINK.ape $(LINK) $(LINKARGS) -o $@ + $(LINK) $(LINKARGS) -o $@ # # Unwrap the APE .COM binary, that's embedded within the linked file # # NOTE: This line can be commented out, since it's in build/rules.mk diff --git a/examples/stat.c b/examples/stat.c index 9d85f4101..f5d6e2f12 100644 --- a/examples/stat.c +++ b/examples/stat.c @@ -16,7 +16,6 @@ #include "libc/log/log.h" #include "libc/runtime/gc.h" #include "libc/stdio/stdio.h" -#include "libc/str/str.h" #include "libc/sysv/consts/s.h" #include "libc/x/x.h" diff --git a/examples/stringbuffer.c b/examples/stringbuffer.c index 8838f91e4..aa6cb9b22 100644 --- a/examples/stringbuffer.c +++ b/examples/stringbuffer.c @@ -10,9 +10,7 @@ #include "libc/calls/calls.h" #include "libc/fmt/fmt.h" #include "libc/log/check.h" -#include "libc/mem/mem.h" #include "libc/stdio/append.internal.h" -#include "libc/str/str.h" /** * @fileoverview Fast Growable Strings Tutorial diff --git a/examples/ttyaudio.c b/examples/ttyaudio.c index 928fc48d1..326b0359d 100644 --- a/examples/ttyaudio.c +++ b/examples/ttyaudio.c @@ -14,11 +14,9 @@ #include "libc/fmt/nf32.h" #include "libc/log/check.h" #include "libc/macros.internal.h" -#include "libc/mem/mem.h" #include "libc/runtime/runtime.h" #include "libc/stdio/append.internal.h" #include "libc/stdio/stdio.h" -#include "libc/str/str.h" #include "libc/sysv/consts/itimer.h" #include "libc/sysv/consts/sig.h" #include "libc/time/time.h" diff --git a/libc/calls/_timespec_tomicros.c b/libc/calls/_timespec_tomicros.c index a44229cb0..88757de56 100644 --- a/libc/calls/_timespec_tomicros.c +++ b/libc/calls/_timespec_tomicros.c @@ -23,10 +23,9 @@ * Converts timespec interval to microseconds. */ int64_t _timespec_tomicros(struct timespec x) { - int64_t ns; - if (!__builtin_mul_overflow(x.tv_sec, 1000000ul, &ns) && - !__builtin_add_overflow(ns, x.tv_nsec / 1000, &ns)) { - return ns; + int64_t us; + if (!__builtin_add_overflow(x.tv_sec, x.tv_nsec / 1000, &us)) { + return us; } else { return INT64_MAX; } diff --git a/libc/calls/_timespec_tomillis.c b/libc/calls/_timespec_tomillis.c index c96482f8f..7d98127bf 100644 --- a/libc/calls/_timespec_tomillis.c +++ b/libc/calls/_timespec_tomillis.c @@ -23,10 +23,9 @@ * Converts timespec interval to milliseconds. */ int64_t _timespec_tomillis(struct timespec x) { - int64_t ns; - if (!__builtin_mul_overflow(x.tv_sec, 1000ul, &ns) && - !__builtin_add_overflow(ns, x.tv_nsec / 1000000, &ns)) { - return ns; + int64_t us; + if (!__builtin_add_overflow(x.tv_sec, x.tv_nsec / 1000000, &us)) { + return us; } else { return INT64_MAX; } diff --git a/libc/calls/_timespec_tonanos.c b/libc/calls/_timespec_tonanos.c deleted file mode 100644 index 4e80a0539..000000000 --- a/libc/calls/_timespec_tonanos.c +++ /dev/null @@ -1,33 +0,0 @@ -/*-*- mode:c;indent-tabs-mode:nil;c-basic-offset:2;tab-width:8;coding:utf-8 -*-│ -│vi: set net ft=c ts=2 sts=2 sw=2 fenc=utf-8 :vi│ -╞══════════════════════════════════════════════════════════════════════════════╡ -│ Copyright 2022 Justine Alexandra Roberts Tunney │ -│ │ -│ Permission to use, copy, modify, and/or distribute this software for │ -│ any purpose with or without fee is hereby granted, provided that the │ -│ above copyright notice and this permission notice appear in all copies. │ -│ │ -│ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL │ -│ WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED │ -│ WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE │ -│ AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL │ -│ DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR │ -│ PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER │ -│ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ -│ PERFORMANCE OF THIS SOFTWARE. │ -╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/calls/struct/timespec.h" -#include "libc/limits.h" - -/** - * Converts timespec interval to nanoseconds. - */ -int64_t _timespec_tonanos(struct timespec x) { - int64_t ns; - if (!__builtin_mul_overflow(x.tv_sec, 1000000000ul, &ns) && - !__builtin_add_overflow(ns, x.tv_nsec, &ns)) { - return ns; - } else { - return INT64_MAX; - } -} diff --git a/libc/calls/ktmppath.c b/libc/calls/ktmppath.c index 862a335ce..9daf87e2b 100644 --- a/libc/calls/ktmppath.c +++ b/libc/calls/ktmppath.c @@ -33,7 +33,6 @@ * - /tmp/ * * This guarantees trailing slash. - * We also guarantee `kTmpPath` won't be longer than `PATH_MAX / 2`. */ char kTmpPath[PATH_MAX]; @@ -47,7 +46,7 @@ __attribute__((__constructor__)) static void kTmpPathInit(void) { uint32_t n; char16_t path16[PATH_MAX]; - if ((s = getenv("TMPDIR")) && (n = strlen(s)) < PATH_MAX / 2) { + if ((s = getenv("TMPDIR")) && (n = strlen(s)) < PATH_MAX) { memcpy(kTmpPath, s, n); if (n && kTmpPath[n - 1] != '/') { kTmpPath[n + 0] = '/'; diff --git a/libc/calls/pledge-linux.c b/libc/calls/pledge-linux.c index 5b692849b..ad54ff580 100644 --- a/libc/calls/pledge-linux.c +++ b/libc/calls/pledge-linux.c @@ -47,9 +47,8 @@ #define Eperm 1 #define Sigabrt 6 -#define Einval 22 -#define Sigsys 31 #define Enosys 38 +#define Sigsys 31 #define Sig_Setmask 2 #define Sa_Siginfo 4 #define Sa_Restorer 0x04000000 @@ -85,356 +84,6 @@ struct Filter { struct sock_filter p[700]; }; -static const struct thatispacked SyscallName { - uint16_t n; - const char *const s; -} kSyscallName[] = { - {__NR_linux_exit, "exit"}, // - {__NR_linux_exit_group, "exit_group"}, // - {__NR_linux_read, "read"}, // - {__NR_linux_write, "write"}, // - {__NR_linux_open, "open"}, // - {__NR_linux_close, "close"}, // - {__NR_linux_stat, "stat"}, // - {__NR_linux_fstat, "fstat"}, // - {__NR_linux_lstat, "lstat"}, // - {__NR_linux_poll, "poll"}, // - {__NR_linux_ppoll, "ppoll"}, // - {__NR_linux_brk, "brk"}, // - {__NR_linux_sigreturn, "sigreturn"}, // - {__NR_linux_lseek, "lseek"}, // - {__NR_linux_mmap, "mmap"}, // - {__NR_linux_msync, "msync"}, // - {__NR_linux_mprotect, "mprotect"}, // - {__NR_linux_munmap, "munmap"}, // - {__NR_linux_sigaction, "sigaction"}, // - {__NR_linux_sigprocmask, "sigprocmask"}, // - {__NR_linux_ioctl, "ioctl"}, // - {__NR_linux_pread, "pread"}, // - {__NR_linux_pwrite, "pwrite"}, // - {__NR_linux_readv, "readv"}, // - {__NR_linux_writev, "writev"}, // - {__NR_linux_access, "access"}, // - {__NR_linux_pipe, "pipe"}, // - {__NR_linux_select, "select"}, // - {__NR_linux_pselect6, "pselect6"}, // - {__NR_linux_sched_yield, "sched_yield"}, // - {__NR_linux_mremap, "mremap"}, // - {__NR_linux_mincore, "mincore"}, // - {__NR_linux_madvise, "madvise"}, // - {__NR_linux_shmget, "shmget"}, // - {__NR_linux_shmat, "shmat"}, // - {__NR_linux_shmctl, "shmctl"}, // - {__NR_linux_dup, "dup"}, // - {__NR_linux_dup2, "dup2"}, // - {__NR_linux_pause, "pause"}, // - {__NR_linux_nanosleep, "nanosleep"}, // - {__NR_linux_getitimer, "getitimer"}, // - {__NR_linux_setitimer, "setitimer"}, // - {__NR_linux_alarm, "alarm"}, // - {__NR_linux_getpid, "getpid"}, // - {__NR_linux_sendfile, "sendfile"}, // - {__NR_linux_socket, "socket"}, // - {__NR_linux_connect, "connect"}, // - {__NR_linux_accept, "accept"}, // - {__NR_linux_sendto, "sendto"}, // - {__NR_linux_recvfrom, "recvfrom"}, // - {__NR_linux_sendmsg, "sendmsg"}, // - {__NR_linux_recvmsg, "recvmsg"}, // - {__NR_linux_shutdown, "shutdown"}, // - {__NR_linux_bind, "bind"}, // - {__NR_linux_listen, "listen"}, // - {__NR_linux_getsockname, "getsockname"}, // - {__NR_linux_getpeername, "getpeername"}, // - {__NR_linux_socketpair, "socketpair"}, // - {__NR_linux_setsockopt, "setsockopt"}, // - {__NR_linux_getsockopt, "getsockopt"}, // - {__NR_linux_fork, "fork"}, // - {__NR_linux_vfork, "vfork"}, // - {__NR_linux_execve, "execve"}, // - {__NR_linux_wait4, "wait4"}, // - {__NR_linux_kill, "kill"}, // - {__NR_linux_clone, "clone"}, // - {__NR_linux_tkill, "tkill"}, // - {__NR_linux_futex, "futex"}, // - {__NR_linux_set_robust_list, "set_robust_list"}, // - {__NR_linux_get_robust_list, "get_robust_list"}, // - {__NR_linux_uname, "uname"}, // - {__NR_linux_semget, "semget"}, // - {__NR_linux_semop, "semop"}, // - {__NR_linux_semctl, "semctl"}, // - {__NR_linux_shmdt, "shmdt"}, // - {__NR_linux_msgget, "msgget"}, // - {__NR_linux_msgsnd, "msgsnd"}, // - {__NR_linux_msgrcv, "msgrcv"}, // - {__NR_linux_msgctl, "msgctl"}, // - {__NR_linux_fcntl, "fcntl"}, // - {__NR_linux_flock, "flock"}, // - {__NR_linux_fsync, "fsync"}, // - {__NR_linux_fdatasync, "fdatasync"}, // - {__NR_linux_truncate, "truncate"}, // - {__NR_linux_ftruncate, "ftruncate"}, // - {__NR_linux_getcwd, "getcwd"}, // - {__NR_linux_chdir, "chdir"}, // - {__NR_linux_fchdir, "fchdir"}, // - {__NR_linux_rename, "rename"}, // - {__NR_linux_mkdir, "mkdir"}, // - {__NR_linux_rmdir, "rmdir"}, // - {__NR_linux_creat, "creat"}, // - {__NR_linux_link, "link"}, // - {__NR_linux_unlink, "unlink"}, // - {__NR_linux_symlink, "symlink"}, // - {__NR_linux_readlink, "readlink"}, // - {__NR_linux_chmod, "chmod"}, // - {__NR_linux_fchmod, "fchmod"}, // - {__NR_linux_chown, "chown"}, // - {__NR_linux_fchown, "fchown"}, // - {__NR_linux_lchown, "lchown"}, // - {__NR_linux_umask, "umask"}, // - {__NR_linux_gettimeofday, "gettimeofday"}, // - {__NR_linux_getrlimit, "getrlimit"}, // - {__NR_linux_getrusage, "getrusage"}, // - {__NR_linux_sysinfo, "sysinfo"}, // - {__NR_linux_times, "times"}, // - {__NR_linux_ptrace, "ptrace"}, // - {__NR_linux_syslog, "syslog"}, // - {__NR_linux_getuid, "getuid"}, // - {__NR_linux_getgid, "getgid"}, // - {__NR_linux_getppid, "getppid"}, // - {__NR_linux_getpgrp, "getpgrp"}, // - {__NR_linux_setsid, "setsid"}, // - {__NR_linux_getsid, "getsid"}, // - {__NR_linux_getpgid, "getpgid"}, // - {__NR_linux_setpgid, "setpgid"}, // - {__NR_linux_geteuid, "geteuid"}, // - {__NR_linux_getegid, "getegid"}, // - {__NR_linux_getgroups, "getgroups"}, // - {__NR_linux_setgroups, "setgroups"}, // - {__NR_linux_setreuid, "setreuid"}, // - {__NR_linux_setregid, "setregid"}, // - {__NR_linux_setuid, "setuid"}, // - {__NR_linux_setgid, "setgid"}, // - {__NR_linux_setresuid, "setresuid"}, // - {__NR_linux_setresgid, "setresgid"}, // - {__NR_linux_getresuid, "getresuid"}, // - {__NR_linux_getresgid, "getresgid"}, // - {__NR_linux_sigpending, "sigpending"}, // - {__NR_linux_sigsuspend, "sigsuspend"}, // - {__NR_linux_sigaltstack, "sigaltstack"}, // - {__NR_linux_mknod, "mknod"}, // - {__NR_linux_mknodat, "mknodat"}, // - {__NR_linux_statfs, "statfs"}, // - {__NR_linux_fstatfs, "fstatfs"}, // - {__NR_linux_getpriority, "getpriority"}, // - {__NR_linux_setpriority, "setpriority"}, // - {__NR_linux_mlock, "mlock"}, // - {__NR_linux_munlock, "munlock"}, // - {__NR_linux_mlockall, "mlockall"}, // - {__NR_linux_munlockall, "munlockall"}, // - {__NR_linux_setrlimit, "setrlimit"}, // - {__NR_linux_chroot, "chroot"}, // - {__NR_linux_sync, "sync"}, // - {__NR_linux_acct, "acct"}, // - {__NR_linux_settimeofday, "settimeofday"}, // - {__NR_linux_mount, "mount"}, // - {__NR_linux_reboot, "reboot"}, // - {__NR_linux_quotactl, "quotactl"}, // - {__NR_linux_setfsuid, "setfsuid"}, // - {__NR_linux_setfsgid, "setfsgid"}, // - {__NR_linux_capget, "capget"}, // - {__NR_linux_capset, "capset"}, // - {__NR_linux_sigtimedwait, "sigtimedwait"}, // - {__NR_linux_rt_sigqueueinfo, "rt_sigqueueinfo"}, // - {__NR_linux_personality, "personality"}, // - {__NR_linux_ustat, "ustat"}, // - {__NR_linux_sysfs, "sysfs"}, // - {__NR_linux_sched_setparam, "sched_setparam"}, // - {__NR_linux_sched_getparam, "sched_getparam"}, // - {__NR_linux_sched_setscheduler, "sched_setscheduler"}, // - {__NR_linux_sched_getscheduler, "sched_getscheduler"}, // - {__NR_linux_sched_get_priority_max, "sched_get_priority_max"}, // - {__NR_linux_sched_get_priority_min, "sched_get_priority_min"}, // - {__NR_linux_sched_rr_get_interval, "sched_rr_get_interval"}, // - {__NR_linux_vhangup, "vhangup"}, // - {__NR_linux_modify_ldt, "modify_ldt"}, // - {__NR_linux_pivot_root, "pivot_root"}, // - {__NR_linux__sysctl, "_sysctl"}, // - {__NR_linux_prctl, "prctl"}, // - {__NR_linux_arch_prctl, "arch_prctl"}, // - {__NR_linux_adjtimex, "adjtimex"}, // - {__NR_linux_umount2, "umount2"}, // - {__NR_linux_swapon, "swapon"}, // - {__NR_linux_swapoff, "swapoff"}, // - {__NR_linux_sethostname, "sethostname"}, // - {__NR_linux_setdomainname, "setdomainname"}, // - {__NR_linux_iopl, "iopl"}, // - {__NR_linux_ioperm, "ioperm"}, // - {__NR_linux_init_module, "init_module"}, // - {__NR_linux_delete_module, "delete_module"}, // - {__NR_linux_gettid, "gettid"}, // - {__NR_linux_readahead, "readahead"}, // - {__NR_linux_setxattr, "setxattr"}, // - {__NR_linux_fsetxattr, "fsetxattr"}, // - {__NR_linux_getxattr, "getxattr"}, // - {__NR_linux_fgetxattr, "fgetxattr"}, // - {__NR_linux_listxattr, "listxattr"}, // - {__NR_linux_flistxattr, "flistxattr"}, // - {__NR_linux_removexattr, "removexattr"}, // - {__NR_linux_fremovexattr, "fremovexattr"}, // - {__NR_linux_lsetxattr, "lsetxattr"}, // - {__NR_linux_lgetxattr, "lgetxattr"}, // - {__NR_linux_llistxattr, "llistxattr"}, // - {__NR_linux_lremovexattr, "lremovexattr"}, // - {__NR_linux_sched_setaffinity, "sched_setaffinity"}, // - {__NR_linux_sched_getaffinity, "sched_getaffinity"}, // - {__NR_linux_io_setup, "io_setup"}, // - {__NR_linux_io_destroy, "io_destroy"}, // - {__NR_linux_io_getevents, "io_getevents"}, // - {__NR_linux_io_submit, "io_submit"}, // - {__NR_linux_io_cancel, "io_cancel"}, // - {__NR_linux_lookup_dcookie, "lookup_dcookie"}, // - {__NR_linux_epoll_create, "epoll_create"}, // - {__NR_linux_epoll_wait, "epoll_wait"}, // - {__NR_linux_epoll_ctl, "epoll_ctl"}, // - {__NR_linux_getdents, "getdents"}, // - {__NR_linux_set_tid_address, "set_tid_address"}, // - {__NR_linux_restart_syscall, "restart_syscall"}, // - {__NR_linux_semtimedop, "semtimedop"}, // - {__NR_linux_fadvise, "fadvise"}, // - {__NR_linux_timer_create, "timer_create"}, // - {__NR_linux_timer_settime, "timer_settime"}, // - {__NR_linux_timer_gettime, "timer_gettime"}, // - {__NR_linux_timer_getoverrun, "timer_getoverrun"}, // - {__NR_linux_timer_delete, "timer_delete"}, // - {__NR_linux_clock_settime, "clock_settime"}, // - {__NR_linux_clock_gettime, "clock_gettime"}, // - {__NR_linux_clock_getres, "clock_getres"}, // - {__NR_linux_clock_nanosleep, "clock_nanosleep"}, // - {__NR_linux_tgkill, "tgkill"}, // - {__NR_linux_mbind, "mbind"}, // - {__NR_linux_set_mempolicy, "set_mempolicy"}, // - {__NR_linux_get_mempolicy, "get_mempolicy"}, // - {__NR_linux_mq_open, "mq_open"}, // - {__NR_linux_mq_unlink, "mq_unlink"}, // - {__NR_linux_mq_timedsend, "mq_timedsend"}, // - {__NR_linux_mq_timedreceive, "mq_timedreceive"}, // - {__NR_linux_mq_notify, "mq_notify"}, // - {__NR_linux_mq_getsetattr, "mq_getsetattr"}, // - {__NR_linux_kexec_load, "kexec_load"}, // - {__NR_linux_waitid, "waitid"}, // - {__NR_linux_add_key, "add_key"}, // - {__NR_linux_request_key, "request_key"}, // - {__NR_linux_keyctl, "keyctl"}, // - {__NR_linux_ioprio_set, "ioprio_set"}, // - {__NR_linux_ioprio_get, "ioprio_get"}, // - {__NR_linux_inotify_init, "inotify_init"}, // - {__NR_linux_inotify_add_watch, "inotify_add_watch"}, // - {__NR_linux_inotify_rm_watch, "inotify_rm_watch"}, // - {__NR_linux_openat, "openat"}, // - {__NR_linux_mkdirat, "mkdirat"}, // - {__NR_linux_fchownat, "fchownat"}, // - {__NR_linux_utime, "utime"}, // - {__NR_linux_utimes, "utimes"}, // - {__NR_linux_futimesat, "futimesat"}, // - {__NR_linux_fstatat, "fstatat"}, // - {__NR_linux_unlinkat, "unlinkat"}, // - {__NR_linux_renameat, "renameat"}, // - {__NR_linux_linkat, "linkat"}, // - {__NR_linux_symlinkat, "symlinkat"}, // - {__NR_linux_readlinkat, "readlinkat"}, // - {__NR_linux_fchmodat, "fchmodat"}, // - {__NR_linux_faccessat, "faccessat"}, // - {__NR_linux_unshare, "unshare"}, // - {__NR_linux_splice, "splice"}, // - {__NR_linux_tee, "tee"}, // - {__NR_linux_sync_file_range, "sync_file_range"}, // - {__NR_linux_vmsplice, "vmsplice"}, // - {__NR_linux_migrate_pages, "migrate_pages"}, // - {__NR_linux_move_pages, "move_pages"}, // - {__NR_linux_preadv, "preadv"}, // - {__NR_linux_pwritev, "pwritev"}, // - {__NR_linux_utimensat, "utimensat"}, // - {__NR_linux_fallocate, "fallocate"}, // - {__NR_linux_accept4, "accept4"}, // - {__NR_linux_dup3, "dup3"}, // - {__NR_linux_pipe2, "pipe2"}, // - {__NR_linux_epoll_pwait, "epoll_pwait"}, // - {__NR_linux_epoll_create1, "epoll_create1"}, // - {__NR_linux_perf_event_open, "perf_event_open"}, // - {__NR_linux_inotify_init1, "inotify_init1"}, // - {__NR_linux_rt_tgsigqueueinfo, "rt_tgsigqueueinfo"}, // - {__NR_linux_signalfd, "signalfd"}, // - {__NR_linux_signalfd4, "signalfd4"}, // - {__NR_linux_eventfd, "eventfd"}, // - {__NR_linux_eventfd2, "eventfd2"}, // - {__NR_linux_timerfd_create, "timerfd_create"}, // - {__NR_linux_timerfd_settime, "timerfd_settime"}, // - {__NR_linux_timerfd_gettime, "timerfd_gettime"}, // - {__NR_linux_recvmmsg, "recvmmsg"}, // - {__NR_linux_fanotify_init, "fanotify_init"}, // - {__NR_linux_fanotify_mark, "fanotify_mark"}, // - {__NR_linux_prlimit, "prlimit"}, // - {__NR_linux_name_to_handle_at, "name_to_handle_at"}, // - {__NR_linux_open_by_handle_at, "open_by_handle_at"}, // - {__NR_linux_clock_adjtime, "clock_adjtime"}, // - {__NR_linux_syncfs, "syncfs"}, // - {__NR_linux_sendmmsg, "sendmmsg"}, // - {__NR_linux_setns, "setns"}, // - {__NR_linux_getcpu, "getcpu"}, // - {__NR_linux_process_vm_readv, "process_vm_readv"}, // - {__NR_linux_process_vm_writev, "process_vm_writev"}, // - {__NR_linux_kcmp, "kcmp"}, // - {__NR_linux_finit_module, "finit_module"}, // - {__NR_linux_sched_setattr, "sched_setattr"}, // - {__NR_linux_sched_getattr, "sched_getattr"}, // - {__NR_linux_renameat2, "renameat2"}, // - {__NR_linux_seccomp, "seccomp"}, // - {__NR_linux_getrandom, "getrandom"}, // - {__NR_linux_memfd_create, "memfd_create"}, // - {__NR_linux_kexec_file_load, "kexec_file_load"}, // - {__NR_linux_bpf, "bpf"}, // - {__NR_linux_execveat, "execveat"}, // - {__NR_linux_userfaultfd, "userfaultfd"}, // - {__NR_linux_membarrier, "membarrier"}, // - {__NR_linux_mlock2, "mlock2"}, // - {__NR_linux_copy_file_range, "copy_file_range"}, // - {__NR_linux_preadv2, "preadv2"}, // - {__NR_linux_pwritev2, "pwritev2"}, // - {__NR_linux_pkey_mprotect, "pkey_mprotect"}, // - {__NR_linux_pkey_alloc, "pkey_alloc"}, // - {__NR_linux_pkey_free, "pkey_free"}, // - {__NR_linux_statx, "statx"}, // - {__NR_linux_io_pgetevents, "io_pgetevents"}, // - {__NR_linux_rseq, "rseq"}, // - {__NR_linux_pidfd_send_signal, "pidfd_send_signal"}, // - {__NR_linux_io_uring_setup, "io_uring_setup"}, // - {__NR_linux_io_uring_enter, "io_uring_enter"}, // - {__NR_linux_io_uring_register, "io_uring_register"}, // - {__NR_linux_open_tree, "open_tree"}, // - {__NR_linux_move_mount, "move_mount"}, // - {__NR_linux_fsopen, "fsopen"}, // - {__NR_linux_fsconfig, "fsconfig"}, // - {__NR_linux_fsmount, "fsmount"}, // - {__NR_linux_fspick, "fspick"}, // - {__NR_linux_pidfd_open, "pidfd_open"}, // - {__NR_linux_clone3, "clone3"}, // - {__NR_linux_close_range, "close_range"}, // - {__NR_linux_openat2, "openat2"}, // - {__NR_linux_pidfd_getfd, "pidfd_getfd"}, // - {__NR_linux_faccessat2, "faccessat2"}, // - {__NR_linux_process_madvise, "process_madvise"}, // - {__NR_linux_epoll_pwait2, "epoll_pwait2"}, // - {__NR_linux_mount_setattr, "mount_setattr"}, // - {__NR_linux_quotactl_fd, "quotactl_fd"}, // - {__NR_linux_landlock_create_ruleset, "landlock_create_ruleset"}, // - {__NR_linux_landlock_add_rule, "landlock_add_rule"}, // - {__NR_linux_landlock_restrict_self, "landlock_restrict_self"}, // - {__NR_linux_memfd_secret, "memfd_secret"}, // - {__NR_linux_process_mrelease, "process_mrelease"}, // - {__NR_linux_futex_waitv, "futex_waitv"}, // - {__NR_linux_set_mempolicy_home_node, "set_mempolicy_home_node"}, // -}; - static const uint16_t kPledgeDefault[] = { __NR_linux_exit, // thread return / exit() }; @@ -935,16 +584,6 @@ static privileged void KillThisThread(void) { : "rcx", "r11", "memory"); } -static privileged const char *GetSyscallName(uint16_t n) { - int i; - for (i = 0; i < ARRAYLEN(kSyscallName); ++i) { - if (kSyscallName[i].n == n) { - return kSyscallName[i].s; - } - } - return "unknown"; -} - static privileged int HasSyscall(struct Pledges *p, uint16_t n) { int i; for (i = 0; i < p->len; ++i) { @@ -967,16 +606,23 @@ static privileged void OnSigSys(int sig, siginfo_t *si, ucontext_t *ctx) { FixCpy(ord, si->si_syscall, 12); HexCpy(rip, ctx->uc_mcontext.rip); for (found = i = 0; i < ARRAYLEN(kPledge); ++i) { - if (HasSyscall(kPledge + i, si->si_syscall)) { - Log("error: pledge ", kPledge[i].name, " for ", - GetSyscallName(si->si_syscall), " (ord=", ord, " rip=", rip, ")\n", - 0); - found = true; + switch (HasSyscall(kPledge + i, si->si_syscall)) { + case 1: + Log("error: should pledge ", kPledge[i].name, // + " (ord=", ord, " rip=", rip, ")\n", 0); + found = true; + break; + case 2: + Log("error: maybe pledge ", kPledge[i].name, // + " (ord=", ord, " rip=", rip, ")\n", 0); + found = true; + break; + default: + break; } } if (!found) { - Log("error: bad syscall (", GetSyscallName(si->si_syscall), " ord=", ord, - " rip=", rip, ")\n", 0); + Log("error: bad syscall (ord=", ord, " rip=", rip, ")\n", 0); } switch (mode) { case kPledgeModeKillProcess: @@ -1908,8 +1554,8 @@ static privileged void AppendPledge(struct Filter *f, // privileged int sys_pledge_linux(unsigned long ipromises, // enum PledgeMode mode, // bool want_msyscall) { // + int i, rc = -1; struct Filter f; - int i, e, rc = -1; struct sock_filter sf[1] = {BPF_STMT(BPF_RET | BPF_K, 0)}; CheckLargeStackAllocation(&f, sizeof(f)); f.n = 0; @@ -1964,24 +1610,10 @@ privileged int sys_pledge_linux(unsigned long ipromises, // AppendFilter(&f, PLEDGE(sf)); } - // drop privileges - // - // PR_SET_SECCOMP (Linux 2.6.23+) will refuse to work if - // PR_SET_NO_NEW_PRIVS (Linux 3.5+) wasn't called so we punt the error - // detection to the seccomp system call below. - Prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0); - // register our seccomp filter with the kernel - struct sock_fprog sandbox = {.len = f.n, .filter = f.p}; - rc = Prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &sandbox, 0, 0); - - // the EINVAL error could mean a lot of things. it could mean the bpf - // code is broken. it could also mean we're running on RHEL5 which - // doesn't have SECCOMP support. since we don't consider lack of - // system support for security to be an error, we distinguish these - // two cases by running a simpler SECCOMP operation. - if (rc == -Einval && Prctl(PR_GET_SECCOMP, 0, 0, 0, 0) == -Einval) { - rc = 0; // -Enosys + if ((rc = Prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0)) != -1) { + struct sock_fprog sandbox = {.len = f.n, .filter = f.p}; + rc = Prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &sandbox, 0, 0); } return rc; diff --git a/libc/calls/pledge.c b/libc/calls/pledge.c index d4f2710a3..4232e5fec 100644 --- a/libc/calls/pledge.c +++ b/libc/calls/pledge.c @@ -28,20 +28,14 @@ #include "libc/sysv/errfuns.h" /** - * Permits system operations, e.g. + * Restricts system operations, e.g. * - * if (pledge("stdio rfile tty", 0)) { - * perror("pledge"); - * exit(1); - * } + * pledge("stdio rfile tty", 0); * * Pledging causes most system calls to become unavailable. Your system * call policy is enforced by the kernel (which means it can propagate * across execve() if permitted). Root access is not required. Support - * is limited to Linux 2.6.23+ (c. RHEL6) and OpenBSD. If your kernel - * isn't supported, then pledge() will return 0 and do nothing rather - * than raising ENOSYS. We don't consider lack of system support to be - * an error, because the specified operations will be permitted. + * is limited to Linux and OpenBSD. * * The promises you give pledge() define which system calls are allowed. * Error messages are logged when sandbox violations occur that well you @@ -219,13 +213,14 @@ * be weakened to have execute permissions too. * * @return 0 on success, or -1 w/ errno + * @raise ENOSYS if host os isn't Linux or OpenBSD * @raise EINVAL if `execpromises` on Linux isn't a subset of `promises` * @raise EINVAL if `promises` allows exec and `execpromises` is null * @threadsafe * @vforksafe */ int pledge(const char *promises, const char *execpromises) { - int e, rc; + int rc; unsigned long ipromises, iexecpromises; if (!ParsePromises(promises, &ipromises) && !ParsePromises(execpromises, &iexecpromises)) { @@ -244,12 +239,7 @@ int pledge(const char *promises, const char *execpromises) { if (rc > -4096u) errno = -rc, rc = -1; } } else { - e = errno; rc = sys_pledge(promises, execpromises); - if (rc && errno == ENOSYS) { - errno = e; - rc = 0; - } } if (!rc && !__vforked && (IsOpenbsd() || (IsLinux() && getpid() == gettid()))) { diff --git a/libc/calls/struct/timespec.h b/libc/calls/struct/timespec.h index 75d811200..6e9b454e2 100644 --- a/libc/calls/struct/timespec.h +++ b/libc/calls/struct/timespec.h @@ -8,7 +8,6 @@ struct timespec { }; int sys_futex(int *, int, int, const struct timespec *, int *); -int64_t _timespec_tonanos(struct timespec) pureconst; int64_t _timespec_tomicros(struct timespec) pureconst; int64_t _timespec_tomillis(struct timespec) pureconst; struct timespec _timespec_frommicros(int64_t) pureconst; diff --git a/libc/calls/unveil.c b/libc/calls/unveil.c index 3e8218b37..7e2b0b4b2 100644 --- a/libc/calls/unveil.c +++ b/libc/calls/unveil.c @@ -93,15 +93,13 @@ _Thread_local static struct { } State; static int unveil_final(void) { - int e, rc; + int rc; struct sock_fprog sandbox = { .filter = kUnveilBlacklist, .len = ARRAYLEN(kUnveilBlacklist), }; - e = errno; - prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0); - errno = e; - if ((rc = landlock_restrict_self(State.fd, 0)) != -1 && + if ((rc = prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0)) != -1 && + (rc = landlock_restrict_self(State.fd, 0)) != -1 && (rc = sys_close(State.fd)) != -1 && (rc = prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &sandbox)) != -1) { State.fd = 0; @@ -119,11 +117,9 @@ static int err_close(int rc, int fd) { static int unveil_init(void) { int rc, fd; State.fs_mask = UNVEIL_READ | UNVEIL_WRITE | UNVEIL_EXEC | UNVEIL_CREATE; - if ((rc = landlock_create_ruleset(0, 0, LANDLOCK_CREATE_RULESET_VERSION)) == - -1) { - if (errno == EOPNOTSUPP) { - errno = ENOSYS; - } + if ((rc = landlock_create_ruleset(0, 0, LANDLOCK_CREATE_RULESET_VERSION)) < + 0) { + if (errno == EOPNOTSUPP) errno = ENOSYS; return -1; } if (rc < 2) { @@ -254,7 +250,7 @@ int sys_unveil_linux(const char *path, const char *permissions) { } /** - * Makes files accessible, e.g. + * Restricts filesystem operations, e.g. * * unveil(".", "r"); // current directory + children are visible * unveil("/etc", "r"); // make /etc readable too @@ -268,10 +264,6 @@ int sys_unveil_linux(const char *path, const char *permissions) { * should become unhidden. When you're finished, you call `unveil(0,0)` * which commits your policy. * - * This function requires OpenBSD or Linux 5.13+. We don't consider lack - * of system support to be an ENOSYS error, because the files will still - * become unveiled. Therefore we return 0 in such cases. - * * There are some differences between unveil() on Linux versus OpenBSD. * * 1. Build your policy and lock it in one go. On OpenBSD, policies take @@ -341,6 +333,8 @@ int sys_unveil_linux(const char *path, const char *permissions) { * the pledge promise "cpath". * * @return 0 on success, or -1 w/ errno + * @raise ENOSYS if host os isn't Linux or OpenBSD + * @raise ENOSYS if Landlock isn't supported on this kernel * @raise EINVAL if one argument is set and the other is not * @raise EINVAL if an invalid character in `permissions` was found * @raise EPERM if unveil() is called after locking @@ -349,17 +343,12 @@ int sys_unveil_linux(const char *path, const char *permissions) { * @threadsafe */ int unveil(const char *path, const char *permissions) { - int e, rc; - e = errno; + int rc; if (IsLinux()) { rc = sys_unveil_linux(path, permissions); } else { rc = sys_unveil(path, permissions); } - if (rc == -1 && errno == ENOSYS) { - errno = e; - rc = 0; - } STRACE("unveil(%#s, %#s) → %d% m", path, permissions, rc); return rc; } diff --git a/libc/dns/getntprotocolstxtpath.c b/libc/dns/getntprotocolstxtpath.c index b369d3f91..8717b5ab8 100644 --- a/libc/dns/getntprotocolstxtpath.c +++ b/libc/dns/getntprotocolstxtpath.c @@ -26,7 +26,6 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/dns/prototxt.h" #include "libc/nt/systeminfo.h" -#include "libc/str/str.h" textwindows char *GetNtProtocolsTxtPath(char *pathbuf, uint32_t size) { /* protocol, not plural */ diff --git a/libc/dns/getntservicestxtpath.c b/libc/dns/getntservicestxtpath.c index 21249d111..7f02cac88 100644 --- a/libc/dns/getntservicestxtpath.c +++ b/libc/dns/getntservicestxtpath.c @@ -26,7 +26,6 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/dns/servicestxt.h" #include "libc/nt/systeminfo.h" -#include "libc/str/str.h" textwindows char *GetNtServicesTxtPath(char *pathbuf, uint32_t size) { const char *const kWinHostsPath = "\\drivers\\etc\\services"; diff --git a/libc/dns/getprotobyname.c b/libc/dns/getprotobyname.c index 631db7bb8..f15fd744c 100644 --- a/libc/dns/getprotobyname.c +++ b/libc/dns/getprotobyname.c @@ -26,7 +26,6 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/dns/ent.h" #include "libc/dns/prototxt.h" -#include "libc/mem/mem.h" struct protoent *getprotobyname(const char *name) { static struct protoent *ptr0, pe0; diff --git a/libc/dns/getprotobynumber.c b/libc/dns/getprotobynumber.c index 30c54face..9f92dbda2 100644 --- a/libc/dns/getprotobynumber.c +++ b/libc/dns/getprotobynumber.c @@ -26,7 +26,6 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/dns/ent.h" #include "libc/dns/prototxt.h" -#include "libc/mem/mem.h" struct protoent *getprotobynumber(int proto) { static struct protoent *ptr1, pe1; diff --git a/libc/dns/lookupprotobyname.c b/libc/dns/lookupprotobyname.c index 0df631fd9..f319d2ed6 100644 --- a/libc/dns/lookupprotobyname.c +++ b/libc/dns/lookupprotobyname.c @@ -25,13 +25,10 @@ │ OTHER DEALINGS IN THE SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/bits/safemacros.internal.h" -#include "libc/dce.h" #include "libc/dns/prototxt.h" #include "libc/errno.h" #include "libc/fmt/conv.h" #include "libc/macros.internal.h" -#include "libc/mem/mem.h" -#include "libc/str/str.h" /** * Opens and searches /etc/protocols to find number for a given name. diff --git a/libc/dns/lookupprotobynumber.c b/libc/dns/lookupprotobynumber.c index 23eb2da31..e86e1c4da 100644 --- a/libc/dns/lookupprotobynumber.c +++ b/libc/dns/lookupprotobynumber.c @@ -25,13 +25,10 @@ │ OTHER DEALINGS IN THE SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/bits/safemacros.internal.h" -#include "libc/dce.h" #include "libc/dns/prototxt.h" #include "libc/errno.h" #include "libc/fmt/conv.h" #include "libc/macros.internal.h" -#include "libc/mem/mem.h" -#include "libc/str/str.h" /** * Opens and searches /etc/protocols to find name for a given number. diff --git a/libc/dns/lookupservicesbyname.c b/libc/dns/lookupservicesbyname.c index 117730104..d6046fabf 100644 --- a/libc/dns/lookupservicesbyname.c +++ b/libc/dns/lookupservicesbyname.c @@ -25,13 +25,10 @@ │ OTHER DEALINGS IN THE SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/bits/safemacros.internal.h" -#include "libc/dce.h" #include "libc/dns/servicestxt.h" #include "libc/errno.h" #include "libc/fmt/conv.h" #include "libc/macros.internal.h" -#include "libc/mem/mem.h" -#include "libc/str/str.h" /** * Opens and searches /etc/services to find port for a given name. diff --git a/libc/dns/lookupservicesbyport.c b/libc/dns/lookupservicesbyport.c index 7895d7645..4fa9a364c 100644 --- a/libc/dns/lookupservicesbyport.c +++ b/libc/dns/lookupservicesbyport.c @@ -25,13 +25,10 @@ │ OTHER DEALINGS IN THE SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/bits/safemacros.internal.h" -#include "libc/dce.h" #include "libc/dns/servicestxt.h" #include "libc/errno.h" #include "libc/fmt/conv.h" #include "libc/macros.internal.h" -#include "libc/mem/mem.h" -#include "libc/str/str.h" /** * Opens and searches /etc/services to find name for a given port. diff --git a/libc/fmt/__xpg_strerror_r.c b/libc/fmt/__xpg_strerror_r.c index 80153c5ca..888619bc5 100644 --- a/libc/fmt/__xpg_strerror_r.c +++ b/libc/fmt/__xpg_strerror_r.c @@ -17,7 +17,6 @@ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/fmt/fmt.h" -#include "libc/str/str.h" int __xpg_strerror_r(int a, char *b, size_t c) { return strerror_r(a, b, c); diff --git a/libc/fmt/pflink.h b/libc/fmt/pflink.h index 396e5e499..4e7f2fb8b 100644 --- a/libc/fmt/pflink.h +++ b/libc/fmt/pflink.h @@ -1,5 +1,10 @@ #ifndef COSMOPOLITAN_LIBC_FMT_PFLINK_H_ #define COSMOPOLITAN_LIBC_FMT_PFLINK_H_ +#include "libc/dce.h" +#include "libc/mem/mem.h" +#include "libc/runtime/runtime.h" +#include "libc/str/str.h" +#include "libc/unicode/unicode.h" #if !(__ASSEMBLER__ + __LINKER__ + 0) #ifndef __STRICT_ANSI__ @@ -18,8 +23,8 @@ if (___PFLINK(FMT, strpbrk, "faAeg")) STATIC_YOINK("__fmt_dtoa"); \ if (___PFLINK(FMT, strpbrk, "cmrqs")) { \ if (___PFLINK(FMT, strstr, "%m")) STATIC_YOINK("strerror"); \ - if (___PFLINK(FMT, strstr, "%*") || \ - ___PFLINK(FMT, strpbrk, "0123456789")) { \ + if (!IsTiny() && (___PFLINK(FMT, strstr, "%*") || \ + ___PFLINK(FMT, strpbrk, "0123456789"))) { \ STATIC_YOINK("strnwidth"); \ STATIC_YOINK("strnwidth16"); \ STATIC_YOINK("wcsnwidth"); \ @@ -58,8 +63,36 @@ * respects by disabling all the esoteric tuning in headers like this. */ #pragma GCC diagnostic ignored "-Wformat-security" +#endif /* __GNUC__ + 0 < 6 */ +#else +#define PFLINK(FMT) FMT +#define SFLINK(FMT) FMT +#ifdef __GNUC__ +__asm__(".section .yoink\n\t" + "nopl\t__fmt_dtoa(%rip)\n\t" + "nopl\tkCp437(%rip)\n\t" + "nopl\tstrerror(%rip)\n\t" + "nopl\tstrnwidth(%rip)\n\t" + "nopl\tstrnwidth16(%rip)\n\t" + "nopl\twcsnwidth(%rip)\n\t" + "nopl\tmalloc(%rip)\n\t" + "nopl\tcalloc(%rip)\n\t" + "nopl\t__grow(%rip)\n\t" + ".previous"); +#else +static long __pflink(long x) { + x |= kCp437[0]; + x |= __fmt_dtoa(0, 0, 0, 0, 0, 0); + x |= strnwidth(0, 0, 0); + x |= strnwidth16(0, 0, 0); + x |= wcsnwidth(0, 0, 0); + x |= malloc(0); + x |= __grow(0, 0, 0, 0); + x |= (intptr_t)strerror(0); + x |= (intptr_t)calloc(0, 0); + return x; +} #endif - #endif /* __STRICT_ANSI__ */ #endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */ #endif /* COSMOPOLITAN_LIBC_FMT_PFLINK_H_ */ diff --git a/libc/fmt/sizetol.c b/libc/fmt/sizetol.c index d6006cf31..10ef06b8e 100644 --- a/libc/fmt/sizetol.c +++ b/libc/fmt/sizetol.c @@ -18,7 +18,6 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/fmt/conv.h" #include "libc/fmt/fmt.h" -#include "libc/str/str.h" static int GetExponent(int c) { switch (c) { diff --git a/libc/fmt/strerror.c b/libc/fmt/strerror.c index 1fad70bb9..8cfefe61b 100644 --- a/libc/fmt/strerror.c +++ b/libc/fmt/strerror.c @@ -17,9 +17,7 @@ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/bits/safemacros.internal.h" -#include "libc/dce.h" #include "libc/fmt/fmt.h" -#include "libc/str/str.h" /** * Converts errno value to string non-reentrantly. diff --git a/libc/fmt/strerror_r.c b/libc/fmt/strerror_r.c index 0671fec2a..bec848b21 100644 --- a/libc/fmt/strerror_r.c +++ b/libc/fmt/strerror_r.c @@ -18,7 +18,6 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/fmt/fmt.h" #include "libc/nt/runtime.h" -#include "libc/str/str.h" /** * Converts errno value to string. diff --git a/libc/fmt/vsnprintf.c b/libc/fmt/vsnprintf.c index c9e77ff86..9ad55b5a7 100644 --- a/libc/fmt/vsnprintf.c +++ b/libc/fmt/vsnprintf.c @@ -21,7 +21,6 @@ #include "libc/limits.h" #include "libc/macros.internal.h" #include "libc/runtime/runtime.h" -#include "libc/str/str.h" struct SprintfStr { char *p; diff --git a/libc/intrin/asan.c b/libc/intrin/asan.c index 32943bee4..d6b72422f 100644 --- a/libc/intrin/asan.c +++ b/libc/intrin/asan.c @@ -39,7 +39,6 @@ #include "libc/log/log.h" #include "libc/macros.internal.h" #include "libc/mem/hook/hook.internal.h" -#include "libc/mem/mem.h" #include "libc/nexgen32e/gc.internal.h" #include "libc/nexgen32e/stackframe.h" #include "libc/nt/enum/version.h" @@ -196,7 +195,8 @@ static uint64_t __asan_roundup2pow(uint64_t x) { static char *__asan_utf8cpy(char *p, unsigned c) { uint64_t z; z = tpenc(c); - do *p++ = z; + do + *p++ = z; while ((z >>= 8)); return p; } @@ -947,7 +947,8 @@ static void __asan_trace(struct AsanTrace *bt, const struct StackFrame *bp) { if (!__asan_checka(SHADOW(bp), sizeof(*bp) >> 3).kind) { addr = bp->addr; if (addr == weakaddr("__gc") && weakaddr("__gc")) { - do --gi; + do + --gi; while ((addr = garbage->p[gi].ret) == weakaddr("__gc")); } bt->p[i] = addr; diff --git a/libc/intrin/pthread.h b/libc/intrin/pthread.h index b3634986b..5d7d338e1 100644 --- a/libc/intrin/pthread.h +++ b/libc/intrin/pthread.h @@ -1,5 +1,7 @@ #ifndef COSMOPOLITAN_LIBC_RUNTIME_PTHREAD_H_ #define COSMOPOLITAN_LIBC_RUNTIME_PTHREAD_H_ +#include "libc/calls/struct/timespec.h" +#include "libc/dce.h" #define PTHREAD_KEYS_MAX 64 @@ -82,6 +84,7 @@ int pthread_mutex_init(pthread_mutex_t *, const pthread_mutexattr_t *); int pthread_mutex_lock(pthread_mutex_t *); int pthread_mutex_unlock(pthread_mutex_t *); int pthread_mutex_trylock(pthread_mutex_t *); +int pthread_mutex_timedlock(pthread_mutex_t *, const struct timespec *); int pthread_mutex_destroy(pthread_mutex_t *); int pthread_mutex_consistent(pthread_mutex_t *); int pthread_mutexattr_init(pthread_mutexattr_t *); @@ -91,6 +94,8 @@ int pthread_mutexattr_settype(pthread_mutexattr_t *, int); int pthread_cond_init(pthread_cond_t *, const pthread_condattr_t *); int pthread_cond_destroy(pthread_cond_t *); int pthread_cond_wait(pthread_cond_t *, pthread_mutex_t *); +int pthread_cond_timedwait(pthread_cond_t *, pthread_mutex_t *, + const struct timespec *); int pthread_cond_broadcast(pthread_cond_t *); int pthread_cancel(pthread_t); int pthread_cond_signal(pthread_cond_t *); @@ -98,8 +103,10 @@ int pthread_rwlock_init(pthread_rwlock_t *, const pthread_rwlockattr_t *); int pthread_rwlock_destroy(pthread_rwlock_t *); int pthread_rwlock_rdlock(pthread_rwlock_t *); int pthread_rwlock_tryrdlock(pthread_rwlock_t *); +int pthread_rwlock_timedrdlock(pthread_rwlock_t *, const struct timespec *); int pthread_rwlock_wrlock(pthread_rwlock_t *); int pthread_rwlock_trywrlock(pthread_rwlock_t *); +int pthread_rwlock_timedwrlock(pthread_rwlock_t *, const struct timespec *); int pthread_rwlock_unlock(pthread_rwlock_t *); int pthread_key_create(pthread_key_t *, pthread_key_dtor); int pthread_key_delete(pthread_key_t); @@ -132,8 +139,9 @@ void *pthread_getspecific(pthread_key_t); #define pthread_mutex_unlock(mutex) \ ((mutex)->attr == PTHREAD_MUTEX_NORMAL \ ? (__atomic_store_n(&(mutex)->lock, 0, __ATOMIC_RELAXED), \ - __atomic_load_n(&(mutex)->waits, __ATOMIC_RELAXED) && \ - _pthread_mutex_wake(mutex), \ + ((IsLinux() || IsOpenbsd()) && \ + __atomic_load_n(&(mutex)->waits, __ATOMIC_RELAXED) && \ + _pthread_mutex_wake(mutex)), \ 0) \ : pthread_mutex_unlock(mutex)) #endif diff --git a/libc/intrin/pthread_mutex_unlock.c b/libc/intrin/pthread_mutex_unlock.c index 092d43e37..f07181963 100644 --- a/libc/intrin/pthread_mutex_unlock.c +++ b/libc/intrin/pthread_mutex_unlock.c @@ -19,7 +19,6 @@ #include "libc/assert.h" #include "libc/bits/atomic.h" #include "libc/calls/calls.h" -#include "libc/dce.h" #include "libc/errno.h" #include "libc/intrin/kprintf.h" #include "libc/intrin/pthread.h" diff --git a/libc/intrin/pthread_mutex_wake.c b/libc/intrin/pthread_mutex_wake.c index beb7b3e17..0a2b5e3b0 100644 --- a/libc/intrin/pthread_mutex_wake.c +++ b/libc/intrin/pthread_mutex_wake.c @@ -17,15 +17,9 @@ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/bits/atomic.h" -#include "libc/dce.h" #include "libc/intrin/futex.internal.h" #include "libc/intrin/pthread.h" int _pthread_mutex_wake(pthread_mutex_t *mutex) { - if ((IsLinux() || IsOpenbsd()) && - atomic_load_explicit(&mutex->waits, memory_order_relaxed) > 0) { - return _futex_wake(&mutex->lock, 1); - } else { - return 0; - } + return _futex_wake(&mutex->lock, 1); } diff --git a/libc/intrin/strerror_wr.greg.c b/libc/intrin/strerror_wr.greg.c index 0038b1fc9..edcad2add 100644 --- a/libc/intrin/strerror_wr.greg.c +++ b/libc/intrin/strerror_wr.greg.c @@ -24,7 +24,6 @@ #include "libc/nt/enum/formatmessageflags.h" #include "libc/nt/enum/lang.h" #include "libc/nt/process.h" -#include "libc/str/str.h" /** * Converts errno value to string with explicit windows errno too. diff --git a/libc/isystem/stdio.h b/libc/isystem/stdio.h index 9e5d61618..5781a1259 100644 --- a/libc/isystem/stdio.h +++ b/libc/isystem/stdio.h @@ -2,7 +2,6 @@ #define LIBC_ISYSTEM_STDIO_H_ #include "libc/calls/calls.h" #include "libc/fmt/fmt.h" -#include "libc/stdio/lock.h" #include "libc/stdio/stdio.h" #include "libc/stdio/temp.h" #endif diff --git a/libc/log/countbranch_report.c b/libc/log/countbranch_report.c index 902b6b4bc..b3a1864ee 100644 --- a/libc/log/countbranch_report.c +++ b/libc/log/countbranch_report.c @@ -24,7 +24,6 @@ #include "libc/math.h" #include "libc/runtime/runtime.h" #include "libc/stdio/stdio.h" -#include "libc/str/str.h" static double GetTotal(const struct countbranch *p) { return p->total; diff --git a/libc/log/perror.c b/libc/log/perror.c index 18429f8c3..bb5a9c25f 100644 --- a/libc/log/perror.c +++ b/libc/log/perror.c @@ -19,7 +19,6 @@ #include "libc/errno.h" #include "libc/log/log.h" #include "libc/stdio/stdio.h" -#include "libc/str/str.h" /** * Writes error messages to standard error. diff --git a/libc/log/showcrashreports.c b/libc/log/showcrashreports.c index 0b8559857..416e7bc04 100644 --- a/libc/log/showcrashreports.c +++ b/libc/log/showcrashreports.c @@ -24,7 +24,6 @@ #include "libc/macros.internal.h" #include "libc/runtime/stack.h" #include "libc/runtime/symbols.internal.h" -#include "libc/str/str.h" #include "libc/sysv/consts/map.h" #include "libc/sysv/consts/prot.h" #include "libc/sysv/consts/sa.h" diff --git a/libc/log/vflogf.c b/libc/log/vflogf.c index 35c2eae7a..6307bcb81 100644 --- a/libc/log/vflogf.c +++ b/libc/log/vflogf.c @@ -33,7 +33,6 @@ #include "libc/math.h" #include "libc/nexgen32e/nexgen32e.h" #include "libc/runtime/runtime.h" -#include "libc/stdio/lock.h" #include "libc/stdio/stdio.h" #include "libc/str/str.h" #include "libc/sysv/consts/fileno.h" diff --git a/libc/nt/gdi32/GdiCurrentProcessSplWow64.s b/libc/nt/gdi32/GdiCurrentProcessSplWow64.s new file mode 100644 index 000000000..69abaefc3 --- /dev/null +++ b/libc/nt/gdi32/GdiCurrentProcessSplWow64.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp gdi32,__imp_GdiCurrentProcessSplWow64,GdiCurrentProcessSplWow64,1510 diff --git a/libc/nt/kernel32/GetSystemWow64DirectoryA.s b/libc/nt/kernel32/GetSystemWow64DirectoryA.s new file mode 100644 index 000000000..434aa4fbc --- /dev/null +++ b/libc/nt/kernel32/GetSystemWow64DirectoryA.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp kernel32,__imp_GetSystemWow64DirectoryA,GetSystemWow64DirectoryA,0 diff --git a/libc/nt/kernel32/GetSystemWow64DirectoryW.s b/libc/nt/kernel32/GetSystemWow64DirectoryW.s new file mode 100644 index 000000000..bff1de903 --- /dev/null +++ b/libc/nt/kernel32/GetSystemWow64DirectoryW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp kernel32,__imp_GetSystemWow64DirectoryW,GetSystemWow64DirectoryW,0 diff --git a/libc/nt/kernel32/IsWow64Process.s b/libc/nt/kernel32/IsWow64Process.s new file mode 100644 index 000000000..9e8d97817 --- /dev/null +++ b/libc/nt/kernel32/IsWow64Process.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp kernel32,__imp_IsWow64Process,IsWow64Process,0 diff --git a/libc/nt/kernel32/Wow64DisableWow64FsRedirection.s b/libc/nt/kernel32/Wow64DisableWow64FsRedirection.s new file mode 100644 index 000000000..daf2eae15 --- /dev/null +++ b/libc/nt/kernel32/Wow64DisableWow64FsRedirection.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp kernel32,__imp_Wow64DisableWow64FsRedirection,Wow64DisableWow64FsRedirection,0 diff --git a/libc/nt/kernel32/Wow64EnableWow64FsRedirection.s b/libc/nt/kernel32/Wow64EnableWow64FsRedirection.s new file mode 100644 index 000000000..bc60272e4 --- /dev/null +++ b/libc/nt/kernel32/Wow64EnableWow64FsRedirection.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp kernel32,__imp_Wow64EnableWow64FsRedirection,Wow64EnableWow64FsRedirection,1545 diff --git a/libc/nt/kernel32/Wow64GetThreadContext.s b/libc/nt/kernel32/Wow64GetThreadContext.s new file mode 100644 index 000000000..154fa9f2b --- /dev/null +++ b/libc/nt/kernel32/Wow64GetThreadContext.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp kernel32,__imp_Wow64GetThreadContext,Wow64GetThreadContext,1546 diff --git a/libc/nt/kernel32/Wow64GetThreadSelectorEntry.s b/libc/nt/kernel32/Wow64GetThreadSelectorEntry.s new file mode 100644 index 000000000..d7f21dc0f --- /dev/null +++ b/libc/nt/kernel32/Wow64GetThreadSelectorEntry.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp kernel32,__imp_Wow64GetThreadSelectorEntry,Wow64GetThreadSelectorEntry,1547 diff --git a/libc/nt/kernel32/Wow64RevertWow64FsRedirection.s b/libc/nt/kernel32/Wow64RevertWow64FsRedirection.s new file mode 100644 index 000000000..bf16b863a --- /dev/null +++ b/libc/nt/kernel32/Wow64RevertWow64FsRedirection.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp kernel32,__imp_Wow64RevertWow64FsRedirection,Wow64RevertWow64FsRedirection,0 diff --git a/libc/nt/kernel32/Wow64SetThreadContext.s b/libc/nt/kernel32/Wow64SetThreadContext.s new file mode 100644 index 000000000..4733945d5 --- /dev/null +++ b/libc/nt/kernel32/Wow64SetThreadContext.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp kernel32,__imp_Wow64SetThreadContext,Wow64SetThreadContext,1549 diff --git a/libc/nt/kernel32/Wow64SuspendThread.s b/libc/nt/kernel32/Wow64SuspendThread.s new file mode 100644 index 000000000..3507d21a7 --- /dev/null +++ b/libc/nt/kernel32/Wow64SuspendThread.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp kernel32,__imp_Wow64SuspendThread,Wow64SuspendThread,1550 diff --git a/libc/nt/master.sh b/libc/nt/master.sh index ea9a6b029..a91abed63 100755 --- a/libc/nt/master.sh +++ b/libc/nt/master.sh @@ -667,6 +667,8 @@ imp 'GetSystemTimePreciseAsFileTime' GetSystemTimePreciseAsFileTime kernel3 imp 'GetSystemTimes' GetSystemTimes kernel32 0 3 imp 'GetSystemWindowsDirectory' GetSystemWindowsDirectoryW kernel32 0 imp 'GetSystemWindowsDirectoryA' GetSystemWindowsDirectoryA kernel32 0 +imp 'GetSystemWow64Directory' GetSystemWow64DirectoryW kernel32 0 +imp 'GetSystemWow64DirectoryA' GetSystemWow64DirectoryA kernel32 0 imp 'GetTapeParameters' GetTapeParameters kernel32 756 imp 'GetTapePosition' GetTapePosition kernel32 757 imp 'GetTapeStatus' GetTapeStatus kernel32 758 @@ -807,6 +809,7 @@ imp 'IsValidLanguageGroup' IsValidLanguageGroup kernel32 0 imp 'IsValidLocale' IsValidLocale kernel32 0 imp 'IsValidLocaleName' IsValidLocaleName kernel32 0 imp 'IsValidNLSVersion' IsValidNLSVersion kernel32 0 +imp 'IsWow64Process' IsWow64Process kernel32 0 imp 'K32EmptyWorkingSet' K32EmptyWorkingSet kernel32 0 imp 'K32EnumDeviceDrivers' K32EnumDeviceDrivers kernel32 0 imp 'K32EnumPageFiles' K32EnumPageFilesW kernel32 0 @@ -1302,6 +1305,13 @@ imp 'WerpNotifyLoadStringResourceWorker' WerpNotifyLoadStringResourceWorker imp 'WerpNotifyUseStringResourceWorker' WerpNotifyUseStringResourceWorker kernel32 1541 imp 'WideCharToMultiByte' WideCharToMultiByte kernel32 1553 8 imp 'WinExec' WinExec kernel32 1543 +imp 'Wow64DisableWow64FsRedirection' Wow64DisableWow64FsRedirection kernel32 0 +imp 'Wow64EnableWow64FsRedirection' Wow64EnableWow64FsRedirection kernel32 1545 +imp 'Wow64GetThreadContext' Wow64GetThreadContext kernel32 1546 +imp 'Wow64GetThreadSelectorEntry' Wow64GetThreadSelectorEntry kernel32 1547 +imp 'Wow64RevertWow64FsRedirection' Wow64RevertWow64FsRedirection kernel32 0 +imp 'Wow64SetThreadContext' Wow64SetThreadContext kernel32 1549 +imp 'Wow64SuspendThread' Wow64SuspendThread kernel32 1550 imp 'WriteConsole' WriteConsoleW kernel32 0 5 imp 'WriteConsoleA' WriteConsoleA kernel32 0 5 imp 'WriteConsoleInput' WriteConsoleInputW kernel32 0 4 @@ -2588,6 +2598,7 @@ imp 'IsWindowInDestroy' IsWindowInDestroy user32 2087 imp 'IsWindowRedirectedForPrint' IsWindowRedirectedForPrint user32 2088 imp 'IsWindowUnicode' IsWindowUnicode user32 2089 imp 'IsWindowVisible' IsWindowVisible user32 2090 1 +imp 'IsWow64Message' IsWow64Message user32 2091 imp 'IsZoomed' IsZoomed user32 2092 1 imp 'KillTimer' KillTimer user32 2093 2 imp 'LoadAccelerators' LoadAcceleratorsW user32 2095 @@ -3365,6 +3376,7 @@ imp 'GdiConvertRegion' GdiConvertRegion gdi32 1506 imp 'GdiConvertToDevmode' GdiConvertToDevmodeW gdi32 1507 imp 'GdiCreateLocalEnhMetaFile' GdiCreateLocalEnhMetaFile gdi32 1508 imp 'GdiCreateLocalMetaFilePict' GdiCreateLocalMetaFilePict gdi32 1509 +imp 'GdiCurrentProcessSplWow64' GdiCurrentProcessSplWow64 gdi32 1510 imp 'GdiDeleteLocalDC' GdiDeleteLocalDC gdi32 1511 imp 'GdiDeleteSpoolFileHandle' GdiDeleteSpoolFileHandle gdi32 1512 imp 'GdiDescribePixelFormat' GdiDescribePixelFormat gdi32 1513 @@ -4083,6 +4095,89 @@ imp 'InitializeProcessForWsWatch' InitializeProcessForWsWatch psapi 0 imp 'QueryWorkingSet' QueryWorkingSet psapi 0 imp 'QueryWorkingSetEx' QueryWorkingSetEx psapi 0 +# NETAPI32.DLL +# +# Name Actual DLL Hint Arity +imp 'I_BrowserSetNetlogonState' I_BrowserSetNetlogonState netapi32 34 +imp 'NetAccessAdd' NetAccessAdd netapi32 71 +imp 'NetAccessDel' NetAccessDel netapi32 72 +imp 'NetAccessEnum' NetAccessEnum netapi32 73 +imp 'NetAccessGetInfo' NetAccessGetInfo netapi32 74 +imp 'NetAccessGetUserPerms' NetAccessGetUserPerms netapi32 75 +imp 'NetAccessSetInfo' NetAccessSetInfo netapi32 76 +imp 'NetAlertRaise' NetAlertRaise netapi32 79 +imp 'NetAlertRaiseEx' NetAlertRaiseEx netapi32 80 +imp 'NetAuditClear' NetAuditClear netapi32 85 +imp 'NetAuditRead' NetAuditRead netapi32 86 +imp 'NetAuditWrite' NetAuditWrite netapi32 87 +imp 'NetConfigGet' NetConfigGet netapi32 88 +imp 'NetConfigGetAll' NetConfigGetAll netapi32 89 +imp 'NetConfigSet' NetConfigSet netapi32 90 +imp 'NetErrorLogClear' NetErrorLogClear netapi32 124 +imp 'NetErrorLogRead' NetErrorLogRead netapi32 125 +imp 'NetErrorLogWrite' NetErrorLogWrite netapi32 126 +imp 'NetMessageBufferSend' NetMessageBufferSend netapi32 161 +imp 'NetMessageNameAdd' NetMessageNameAdd netapi32 162 +imp 'NetMessageNameDel' NetMessageNameDel netapi32 163 +imp 'NetMessageNameEnum' NetMessageNameEnum netapi32 164 +imp 'NetMessageNameGetInfo' NetMessageNameGetInfo netapi32 165 +imp 'NetRegisterDomainNameChangeNotification' NetRegisterDomainNameChangeNotification netapi32 169 +imp 'NetReplExportDirAdd' NetReplExportDirAdd netapi32 175 +imp 'NetReplExportDirDel' NetReplExportDirDel netapi32 176 +imp 'NetReplExportDirEnum' NetReplExportDirEnum netapi32 177 +imp 'NetReplExportDirGetInfo' NetReplExportDirGetInfo netapi32 178 +imp 'NetReplExportDirLock' NetReplExportDirLock netapi32 179 +imp 'NetReplExportDirSetInfo' NetReplExportDirSetInfo netapi32 180 +imp 'NetReplExportDirUnlock' NetReplExportDirUnlock netapi32 181 +imp 'NetReplGetInfo' NetReplGetInfo netapi32 182 +imp 'NetReplImportDirAdd' NetReplImportDirAdd netapi32 183 +imp 'NetReplImportDirDel' NetReplImportDirDel netapi32 184 +imp 'NetReplImportDirEnum' NetReplImportDirEnum netapi32 185 +imp 'NetReplImportDirGetInfo' NetReplImportDirGetInfo netapi32 186 +imp 'NetReplImportDirLock' NetReplImportDirLock netapi32 187 +imp 'NetReplImportDirUnlock' NetReplImportDirUnlock netapi32 188 +imp 'NetReplSetInfo' NetReplSetInfo netapi32 189 +imp 'NetServerEnum' NetServerEnum netapi32 202 +imp 'NetServerEnumEx' NetServerEnumEx netapi32 203 +imp 'NetServiceControl' NetServiceControl netapi32 210 +imp 'NetServiceEnum' NetServiceEnum netapi32 211 +imp 'NetServiceGetInfo' NetServiceGetInfo netapi32 212 +imp 'NetServiceInstall' NetServiceInstall netapi32 213 +imp 'NetStatisticsGet' NetStatisticsGet netapi32 227 +imp 'NetUnregisterDomainNameChangeNotification' NetUnregisterDomainNameChangeNotification netapi32 229 +imp 'NetWkstaGetInfo' NetWkstaGetInfo netapi32 248 +imp 'NetWkstaSetInfo' NetWkstaSetInfo netapi32 249 +imp 'Netbios' Netbios netapi32 257 +imp 'NetpAddTlnFtinfoEntry' NetpAddTlnFtinfoEntry netapi32 258 +imp 'NetpAllocFtinfoEntry' NetpAllocFtinfoEntry netapi32 259 +imp 'NetpAssertFailed' NetpAssertFailed netapi32 260 +imp 'NetpCleanFtinfoContext' NetpCleanFtinfoContext netapi32 261 +imp 'NetpCloseConfigData' NetpCloseConfigData netapi32 262 +imp 'NetpCopyFtinfoContext' NetpCopyFtinfoContext netapi32 263 +imp 'NetpDbgPrint' NetpDbgPrint netapi32 264 +imp 'NetpGetConfigBool' NetpGetConfigBool netapi32 265 +imp 'NetpGetConfigDword' NetpGetConfigDword netapi32 266 +imp 'NetpGetConfigTStrArray' NetpGetConfigTStrArray netapi32 267 +imp 'NetpGetConfigValue' NetpGetConfigValue netapi32 268 +imp 'NetpGetFileSecurity' NetpGetFileSecurity netapi32 269 +imp 'NetpHexDump' NetpHexDump netapi32 270 +imp 'NetpInitFtinfoContext' NetpInitFtinfoContext netapi32 271 +imp 'NetpIsUncComputerNameValid' NetpIsUncComputerNameValid netapi32 273 +imp 'NetpMergeFtinfo' NetpMergeFtinfo netapi32 274 +imp 'NetpNetBiosReset' NetpNetBiosReset netapi32 275 +imp 'NetpNetBiosStatusToApiStatus' NetpNetBiosStatusToApiStatus netapi32 276 +imp 'NetpOpenConfigData' NetpOpenConfigData netapi32 277 +imp 'NetpSetFileSecurity' NetpSetFileSecurity netapi32 278 +imp 'RxNetAccessAdd' RxNetAccessAdd netapi32 288 +imp 'RxNetAccessDel' RxNetAccessDel netapi32 289 +imp 'RxNetAccessEnum' RxNetAccessEnum netapi32 290 +imp 'RxNetAccessGetInfo' RxNetAccessGetInfo netapi32 291 +imp 'RxNetAccessGetUserPerms' RxNetAccessGetUserPerms netapi32 292 +imp 'RxNetAccessSetInfo' RxNetAccessSetInfo netapi32 293 +imp 'RxNetServerEnum' RxNetServerEnum netapi32 294 +imp 'RxNetUserPasswordSet' RxNetUserPasswordSet netapi32 295 +imp 'RxRemoteApi' RxRemoteApi netapi32 296 + # URL.DLL # # Name Actual DLL Hint Arity @@ -4097,6 +4192,265 @@ imp 'InetIsOffline' InetIsOffline url 106 imp 'MIMEAssociationDialog' MIMEAssociationDialogW url 108 imp 'MailToProtocolHandler' MailToProtocolHandler url 109 +# SHELL32.DLL +# +# Name Actual DLL Hint Arity +imp 'AppCompat_RunDLLW' AppCompat_RunDLLW shell32 255 +imp 'AssocCreateForClasses' AssocCreateForClasses shell32 263 +imp 'AssocGetDetailsOfPropKey' AssocGetDetailsOfPropKey shell32 267 +imp 'CDefFolderMenu_Create2' CDefFolderMenu_Create2 shell32 701 +imp 'CIDLData_CreateFromIDArray' CIDLData_CreateFromIDArray shell32 83 +imp 'CStorageItem_GetValidatedStorageItemObject' CStorageItem_GetValidatedStorageItemObject shell32 937 +imp 'CheckEscapes' CheckEscapesW shell32 268 +imp 'CommandLineToArgv' CommandLineToArgvW shell32 269 +imp 'Control_RunDLL' Control_RunDLL shell32 272 +imp 'Control_RunDLLAsUser' Control_RunDLLAsUserW shell32 274 +imp 'Control_RunDLLW' Control_RunDLLW shell32 275 +imp 'DAD_AutoScroll' DAD_AutoScroll shell32 129 +imp 'DAD_DragEnterEx' DAD_DragEnterEx shell32 131 +imp 'DAD_DragEnterEx2' DAD_DragEnterEx2 shell32 22 +imp 'DAD_DragLeave' DAD_DragLeave shell32 132 +imp 'DAD_DragMove' DAD_DragMove shell32 134 +imp 'DAD_SetDragImage' DAD_SetDragImage shell32 136 +imp 'DAD_ShowDragImage' DAD_ShowDragImage shell32 137 +imp 'DllGetActivationFactory' DllGetActivationFactory shell32 277 +imp 'DllGetVersion' DllGetVersion shell32 279 +imp 'DllInstall' DllInstall shell32 280 +imp 'DllRegisterServer' DllRegisterServer shell32 281 +imp 'DllUnregisterServer' DllUnregisterServer shell32 282 +imp 'DoEnvironmentSubst' DoEnvironmentSubstW shell32 284 +imp 'DragAcceptFiles' DragAcceptFiles shell32 285 +imp 'DragFinish' DragFinish shell32 286 +imp 'DragQueryFile' DragQueryFileW shell32 290 +imp 'DragQueryFileAor' DragQueryFileAorW shell32 289 +imp 'DragQueryPoint' DragQueryPoint shell32 291 +imp 'DriveType' DriveType shell32 64 +imp 'DuplicateIcon' DuplicateIcon shell32 292 +imp 'ExtractAssociatedIcon' ExtractAssociatedIconW shell32 296 +imp 'ExtractAssociatedIconEx' ExtractAssociatedIconExW shell32 295 +imp 'ExtractIcon' ExtractIconW shell32 301 +imp 'ExtractIconEx' ExtractIconExW shell32 300 +imp 'FindExecutable' FindExecutableW shell32 303 +imp 'FreeIconList' FreeIconList shell32 304 +imp 'GetCurrentProcessExplicitAppUserModelID' GetCurrentProcessExplicitAppUserModelID shell32 305 +imp 'GetFileNameFromBrowse' GetFileNameFromBrowse shell32 63 +imp 'GetSystemPersistedStorageItemList' GetSystemPersistedStorageItemList shell32 919 +imp 'ILAppendID' ILAppendID shell32 154 +imp 'ILClone' ILClone shell32 18 +imp 'ILCloneFirst' ILCloneFirst shell32 19 +imp 'ILCombine' ILCombine shell32 25 +imp 'ILCreateFromPath' ILCreateFromPathW shell32 190 +imp 'ILFindChild' ILFindChild shell32 24 +imp 'ILFindLastID' ILFindLastID shell32 16 +imp 'ILFree' ILFree shell32 155 +imp 'ILGetNext' ILGetNext shell32 153 +imp 'ILGetSize' ILGetSize shell32 152 +imp 'ILIsEqual' ILIsEqual shell32 21 +imp 'ILIsParent' ILIsParent shell32 23 +imp 'ILLoadFromStreamEx' ILLoadFromStreamEx shell32 846 +imp 'ILRemoveLastID' ILRemoveLastID shell32 17 +imp 'ILSaveToStream' ILSaveToStream shell32 27 +imp 'InitNetworkAddressControl' InitNetworkAddressControl shell32 306 +imp 'InternalExtractIconList' InternalExtractIconListW shell32 308 +imp 'IsDesktopExplorerProcess' IsDesktopExplorerProcess shell32 942 +imp 'IsLFNDrive' IsLFNDriveW shell32 42 +imp 'IsNetDrive' IsNetDrive shell32 66 +imp 'IsProcessAnExplorer' IsProcessAnExplorer shell32 941 +imp 'IsUserAnAdmin' IsUserAnAdmin shell32 680 +imp 'LaunchMSHelp_RunDLLW' LaunchMSHelp_RunDLLW shell32 309 +imp 'OpenAs_RunDLL' OpenAs_RunDLL shell32 81 +imp 'OpenAs_RunDLLW' OpenAs_RunDLLW shell32 133 +imp 'OpenRegStream' OpenRegStream shell32 85 +imp 'Options_RunDLL' Options_RunDLL shell32 310 +imp 'Options_RunDLLW' Options_RunDLLW shell32 312 +imp 'PathCleanupSpec' PathCleanupSpec shell32 171 +imp 'PathGetShortPath' PathGetShortPath shell32 92 +imp 'PathIsExe' PathIsExe shell32 43 +imp 'PathIsSlow' PathIsSlowW shell32 239 +imp 'PathMakeUniqueName' PathMakeUniqueName shell32 47 +imp 'PathQualify' PathQualify shell32 49 +imp 'PathResolve' PathResolve shell32 51 +imp 'PathYetAnotherMakeUniqueName' PathYetAnotherMakeUniqueName shell32 75 +imp 'PickIconDlg' PickIconDlg shell32 62 +imp 'PifMgr_CloseProperties' PifMgr_CloseProperties shell32 13 +imp 'PifMgr_GetProperties' PifMgr_GetProperties shell32 10 +imp 'PifMgr_OpenProperties' PifMgr_OpenProperties shell32 9 +imp 'PifMgr_SetProperties' PifMgr_SetProperties shell32 11 +imp 'PrepareDiscForBurnRunDll' PrepareDiscForBurnRunDllW shell32 135 +imp 'PrintersGetCommand_RunDLL' PrintersGetCommand_RunDLL shell32 138 +imp 'PrintersGetCommand_RunDLLW' PrintersGetCommand_RunDLLW shell32 150 +imp 'ReadCabinetState' ReadCabinetState shell32 654 +imp 'RealDriveType' RealDriveType shell32 524 +imp 'RealShellExecute' RealShellExecuteW shell32 226 +imp 'RealShellExecuteEx' RealShellExecuteExW shell32 208 +imp 'RegenerateUserEnvironment' RegenerateUserEnvironment shell32 313 +imp 'RestartDialog' RestartDialog shell32 59 +imp 'RestartDialogEx' RestartDialogEx shell32 730 +imp 'RunAsNewUser_RunDLLW' RunAsNewUser_RunDLLW shell32 314 +imp 'SHAddDefaultPropertiesByExt' SHAddDefaultPropertiesByExt shell32 315 +imp 'SHAddFromPropSheetExtArray' SHAddFromPropSheetExtArray shell32 167 +imp 'SHAddToRecentDocs' SHAddToRecentDocs shell32 316 +imp 'SHAlloc' SHAlloc shell32 196 +imp 'SHAppBarMessage' SHAppBarMessage shell32 317 +imp 'SHAssocEnumHandlers' SHAssocEnumHandlers shell32 318 +imp 'SHAssocEnumHandlersForProtocolByApplication' SHAssocEnumHandlersForProtocolByApplication shell32 319 +imp 'SHBindToFolderIDListParent' SHBindToFolderIDListParent shell32 320 +imp 'SHBindToFolderIDListParentEx' SHBindToFolderIDListParentEx shell32 321 +imp 'SHBindToObject' SHBindToObject shell32 322 +imp 'SHBindToParent' SHBindToParent shell32 323 +imp 'SHBrowseForFolder' SHBrowseForFolderW shell32 326 +imp 'SHCLSIDFromString' SHCLSIDFromString shell32 147 +imp 'SHChangeNotification_Lock' SHChangeNotification_Lock shell32 644 +imp 'SHChangeNotification_Unlock' SHChangeNotification_Unlock shell32 645 +imp 'SHChangeNotify' SHChangeNotify shell32 327 +imp 'SHChangeNotifyDeregister' SHChangeNotifyDeregister shell32 4 +imp 'SHChangeNotifyRegister' SHChangeNotifyRegister shell32 2 +imp 'SHChangeNotifyRegisterThread' SHChangeNotifyRegisterThread shell32 328 +imp 'SHChangeNotifySuspendResume' SHChangeNotifySuspendResume shell32 329 +imp 'SHCloneSpecialIDList' SHCloneSpecialIDList shell32 89 +imp 'SHCoCreateInstanceWorker' SHCoCreateInstanceWorker shell32 330 +imp 'SHCreateAssociationRegistration' SHCreateAssociationRegistration shell32 331 +imp 'SHCreateCategoryEnum' SHCreateCategoryEnum shell32 332 +imp 'SHCreateDataObject' SHCreateDataObject shell32 333 +imp 'SHCreateDefaultContextMenu' SHCreateDefaultContextMenu shell32 334 +imp 'SHCreateDefaultExtractIcon' SHCreateDefaultExtractIcon shell32 335 +imp 'SHCreateDefaultPropertiesOp' SHCreateDefaultPropertiesOp shell32 336 +imp 'SHCreateDirectory' SHCreateDirectory shell32 165 +imp 'SHCreateDirectoryEx' SHCreateDirectoryExW shell32 338 +imp 'SHCreateDrvExtIcon' SHCreateDrvExtIcon shell32 339 +imp 'SHCreateFileExtractIcon' SHCreateFileExtractIconW shell32 743 +imp 'SHCreateItemFromIDList' SHCreateItemFromIDList shell32 340 +imp 'SHCreateItemFromParsingName' SHCreateItemFromParsingName shell32 341 +imp 'SHCreateItemFromRelativeName' SHCreateItemFromRelativeName shell32 342 +imp 'SHCreateItemInKnownFolder' SHCreateItemInKnownFolder shell32 343 +imp 'SHCreateItemWithParent' SHCreateItemWithParent shell32 344 +imp 'SHCreateLocalServerRunDll' SHCreateLocalServerRunDll shell32 345 +imp 'SHCreateProcessAsUser' SHCreateProcessAsUserW shell32 346 +imp 'SHCreatePropSheetExtArray' SHCreatePropSheetExtArray shell32 168 +imp 'SHCreateQueryCancelAutoPlayMoniker' SHCreateQueryCancelAutoPlayMoniker shell32 347 +imp 'SHCreateShellFolderView' SHCreateShellFolderView shell32 256 +imp 'SHCreateShellFolderViewEx' SHCreateShellFolderViewEx shell32 174 +imp 'SHCreateShellItem' SHCreateShellItem shell32 348 +imp 'SHCreateShellItemArray' SHCreateShellItemArray shell32 349 +imp 'SHCreateShellItemArrayFromDataObject' SHCreateShellItemArrayFromDataObject shell32 350 +imp 'SHCreateShellItemArrayFromIDLists' SHCreateShellItemArrayFromIDLists shell32 351 +imp 'SHCreateShellItemArrayFromShellItem' SHCreateShellItemArrayFromShellItem shell32 352 +imp 'SHCreateStdEnumFmtEtc' SHCreateStdEnumFmtEtc shell32 74 +imp 'SHDefExtractIcon' SHDefExtractIconW shell32 6 +imp 'SHDestroyPropSheetExtArray' SHDestroyPropSheetExtArray shell32 169 +imp 'SHDoDragDrop' SHDoDragDrop shell32 88 +imp 'SHEmptyRecycleBin' SHEmptyRecycleBinW shell32 487 +imp 'SHEnableServiceObject' SHEnableServiceObject shell32 488 +imp 'SHEnumerateUnreadMailAccounts' SHEnumerateUnreadMailAccountsW shell32 489 +imp 'SHEvaluateSystemCommandTemplate' SHEvaluateSystemCommandTemplate shell32 490 +imp 'SHExtractIcons' SHExtractIconsW shell32 491 +imp 'SHFileOperation' SHFileOperationW shell32 494 +imp 'SHFindFiles' SHFindFiles shell32 90 +imp 'SHFind_InitMenuPopup' SHFind_InitMenuPopup shell32 149 +imp 'SHFlushSFCache' SHFlushSFCache shell32 526 +imp 'SHFormatDrive' SHFormatDrive shell32 495 +imp 'SHFree' SHFree shell32 195 +imp 'SHFreeNameMappings' SHFreeNameMappings shell32 496 +imp 'SHGetAttributesFromDataObject' SHGetAttributesFromDataObject shell32 750 +imp 'SHGetDataFromIDList' SHGetDataFromIDListW shell32 498 +imp 'SHGetDesktopFolder' SHGetDesktopFolder shell32 499 +imp 'SHGetDiskFreeSpaceEx' SHGetDiskFreeSpaceExW shell32 502 +imp 'SHGetDriveMedia' SHGetDriveMedia shell32 503 +imp 'SHGetFileInfo' SHGetFileInfoW shell32 506 +imp 'SHGetFolderLocation' SHGetFolderLocation shell32 507 +imp 'SHGetFolderPath' SHGetFolderPathW shell32 512 +imp 'SHGetFolderPathAndSubDir' SHGetFolderPathAndSubDirW shell32 510 +imp 'SHGetFolderPathEx' SHGetFolderPathEx shell32 511 +imp 'SHGetIDListFromObject' SHGetIDListFromObject shell32 513 +imp 'SHGetIconOverlayIndex' SHGetIconOverlayIndexW shell32 515 +imp 'SHGetImageList' SHGetImageList shell32 727 +imp 'SHGetInstanceExplorer' SHGetInstanceExplorer shell32 516 +imp 'SHGetItemFromDataObject' SHGetItemFromDataObject shell32 517 +imp 'SHGetItemFromObject' SHGetItemFromObject shell32 518 +imp 'SHGetKnownFolderIDList' SHGetKnownFolderIDList shell32 519 +imp 'SHGetKnownFolderItem' SHGetKnownFolderItem shell32 527 +imp 'SHGetKnownFolderPath' SHGetKnownFolderPath shell32 528 +imp 'SHGetLocalizedName' SHGetLocalizedName shell32 529 +imp 'SHGetMalloc' SHGetMalloc shell32 530 +imp 'SHGetNameFromIDList' SHGetNameFromIDList shell32 531 +imp 'SHGetNewLinkInfo' SHGetNewLinkInfoW shell32 180 +imp 'SHGetPathFromIDList' SHGetPathFromIDListW shell32 536 +imp 'SHGetPathFromIDListEx' SHGetPathFromIDListEx shell32 535 +imp 'SHGetPropertyStoreForWindow' SHGetPropertyStoreForWindow shell32 537 +imp 'SHGetPropertyStoreFromIDList' SHGetPropertyStoreFromIDList shell32 538 +imp 'SHGetPropertyStoreFromParsingName' SHGetPropertyStoreFromParsingName shell32 539 +imp 'SHGetRealIDL' SHGetRealIDL shell32 98 +imp 'SHGetSetFolderCustomSettings' SHGetSetFolderCustomSettings shell32 709 +imp 'SHGetSetSettings' SHGetSetSettings shell32 68 +imp 'SHGetSettings' SHGetSettings shell32 540 +imp 'SHGetSpecialFolderLocation' SHGetSpecialFolderLocation shell32 541 +imp 'SHGetSpecialFolderPath' SHGetSpecialFolderPathW shell32 543 +imp 'SHGetStockIconInfo' SHGetStockIconInfo shell32 544 +imp 'SHGetTemporaryPropertyForItem' SHGetTemporaryPropertyForItem shell32 545 +imp 'SHGetUnreadMailCount' SHGetUnreadMailCountW shell32 546 +imp 'SHHandleUpdateImage' SHHandleUpdateImage shell32 193 +imp 'SHHelpShortcuts_RunDLL' SHHelpShortcuts_RunDLL shell32 228 +imp 'SHHelpShortcuts_RunDLLW' SHHelpShortcuts_RunDLLW shell32 238 +imp 'SHILCreateFromPath' SHILCreateFromPath shell32 28 +imp 'SHInvokePrinterCommand' SHInvokePrinterCommandW shell32 548 +imp 'SHIsFileAvailableOffline' SHIsFileAvailableOffline shell32 549 +imp 'SHLimitInputEdit' SHLimitInputEdit shell32 747 +imp 'SHLoadInProc' SHLoadInProc shell32 550 +imp 'SHLoadNonloadedIconOverlayIdentifiers' SHLoadNonloadedIconOverlayIdentifiers shell32 551 +imp 'SHMapPIDLToSystemImageListIndex' SHMapPIDLToSystemImageListIndex shell32 77 +imp 'SHMultiFileProperties' SHMultiFileProperties shell32 716 +imp 'SHObjectProperties' SHObjectProperties shell32 178 +imp 'SHOpenFolderAndSelectItems' SHOpenFolderAndSelectItems shell32 552 +imp 'SHOpenPropSheet' SHOpenPropSheetW shell32 80 +imp 'SHOpenWithDialog' SHOpenWithDialog shell32 553 +imp 'SHParseDisplayName' SHParseDisplayName shell32 554 +imp 'SHPathPrepareForWrite' SHPathPrepareForWriteW shell32 556 +imp 'SHPropStgCreate' SHPropStgCreate shell32 685 +imp 'SHPropStgReadMultiple' SHPropStgReadMultiple shell32 688 +imp 'SHPropStgWriteMultiple' SHPropStgWriteMultiple shell32 689 +imp 'SHQueryRecycleBin' SHQueryRecycleBinW shell32 558 +imp 'SHQueryUserNotificationState' SHQueryUserNotificationState shell32 559 +imp 'SHRemoveLocalizedName' SHRemoveLocalizedName shell32 560 +imp 'SHReplaceFromPropSheetExtArray' SHReplaceFromPropSheetExtArray shell32 170 +imp 'SHResolveLibrary' SHResolveLibrary shell32 561 +imp 'SHRestricted' SHRestricted shell32 100 +imp 'SHSetDefaultProperties' SHSetDefaultProperties shell32 562 +imp 'SHSetFolderPath' SHSetFolderPathW shell32 232 +imp 'SHSetInstanceExplorer' SHSetInstanceExplorer shell32 176 +imp 'SHSetKnownFolderPath' SHSetKnownFolderPath shell32 563 +imp 'SHSetLocalizedName' SHSetLocalizedName shell32 564 +imp 'SHSetTemporaryPropertyForItem' SHSetTemporaryPropertyForItem shell32 565 +imp 'SHSetUnreadMailCount' SHSetUnreadMailCountW shell32 566 +imp 'SHShellFolderView_Message' SHShellFolderView_Message shell32 73 +imp 'SHShowManageLibraryUI' SHShowManageLibraryUI shell32 567 +imp 'SHSimpleIDListFromPath' SHSimpleIDListFromPath shell32 162 +imp 'SHStartNetConnectionDialog' SHStartNetConnectionDialogW shell32 14 +imp 'SHTestTokenMembership' SHTestTokenMembership shell32 245 +imp 'SHUpdateImage' SHUpdateImageW shell32 192 +imp 'SHUpdateRecycleBinIcon' SHUpdateRecycleBinIcon shell32 568 +imp 'SHValidateUNC' SHValidateUNC shell32 173 +imp 'SetCurrentProcessExplicitAppUserModelID' SetCurrentProcessExplicitAppUserModelID shell32 569 +imp 'SheChangeDirEx' SheChangeDirExW shell32 571 +imp 'SheSetCurDrive' SheSetCurDrive shell32 573 +imp 'ShellAbout' ShellAboutW shell32 575 +imp 'ShellExec_RunDLL' ShellExec_RunDLL shell32 576 +imp 'ShellExec_RunDLLW' ShellExec_RunDLLW shell32 578 +imp 'ShellExecute' ShellExecuteW shell32 583 +imp 'ShellExecuteEx' ShellExecuteExW shell32 582 +imp 'ShellHookProc' ShellHookProc shell32 584 +imp 'Shell_GetCachedImageIndex' Shell_GetCachedImageIndexW shell32 586 +imp 'Shell_GetImageLists' Shell_GetImageLists shell32 71 +imp 'Shell_MergeMenus' Shell_MergeMenus shell32 67 +imp 'Shell_NotifyIcon' Shell_NotifyIconW shell32 590 +imp 'Shell_NotifyIconGetRect' Shell_NotifyIconGetRect shell32 589 +imp 'SignalFileOpen' SignalFileOpen shell32 103 +imp 'StgMakeUniqueName' StgMakeUniqueName shell32 682 +imp 'UsersLibrariesFolderUI_CreateInstance' UsersLibrariesFolderUI_CreateInstance shell32 615 +imp 'WOWShellExecute' WOWShellExecute shell32 616 +imp 'WaitForExplorerRestart' WaitForExplorerRestartW shell32 617 +imp 'Win32DeleteFile' Win32DeleteFile shell32 164 +imp 'WriteCabinetState' WriteCabinetState shell32 652 + # NTDLL.DLL # BEYOND THE PALE # @@ -5394,6 +5748,7 @@ imp 'RtlQueryValidationRunlevel' RtlQueryValidationRunlevel ntdll 1311 imp 'RtlQueryWnfMetaNotification' RtlQueryWnfMetaNotification ntdll 1312 imp 'RtlQueryWnfStateData' RtlQueryWnfStateData ntdll 1313 imp 'RtlQueryWnfStateDataWithExplicitScope' RtlQueryWnfStateDataWithExplicitScope ntdll 1314 +imp 'RtlQueueApcWow64Thread' RtlQueueApcWow64Thread ntdll 1315 imp 'RtlQueueWorkItem' RtlQueueWorkItem ntdll 1316 imp 'RtlRaiseCustomSystemEventTrigger' RtlRaiseCustomSystemEventTrigger ntdll 1317 imp 'RtlRaiseException' RtlRaiseException ntdll 1318 @@ -5616,6 +5971,24 @@ imp 'RtlWeaklyEnumerateEntryHashTable' RtlWeaklyEnumerateEntryHashTable ntdl imp 'RtlWerpReportException' RtlWerpReportException ntdll 1535 imp 'RtlWnfCompareChangeStamp' RtlWnfCompareChangeStamp ntdll 1536 imp 'RtlWnfDllUnloadCallback' RtlWnfDllUnloadCallback ntdll 1537 +imp 'RtlWow64CallFunction64' RtlWow64CallFunction64 ntdll 1538 +imp 'RtlWow64EnableFsRedirection' RtlWow64EnableFsRedirection ntdll 1539 +imp 'RtlWow64EnableFsRedirectionEx' RtlWow64EnableFsRedirectionEx ntdll 1540 +imp 'RtlWow64GetCpuAreaInfo' RtlWow64GetCpuAreaInfo ntdll 1541 +imp 'RtlWow64GetCurrentCpuArea' RtlWow64GetCurrentCpuArea ntdll 1542 +imp 'RtlWow64GetCurrentMachine' RtlWow64GetCurrentMachine ntdll 1543 +imp 'RtlWow64GetEquivalentMachineCHPE' RtlWow64GetEquivalentMachineCHPE ntdll 1544 +imp 'RtlWow64GetProcessMachines' RtlWow64GetProcessMachines ntdll 1545 +imp 'RtlWow64GetSharedInfoProcess' RtlWow64GetSharedInfoProcess ntdll 1546 +imp 'RtlWow64GetThreadContext' RtlWow64GetThreadContext ntdll 1547 +imp 'RtlWow64GetThreadSelectorEntry' RtlWow64GetThreadSelectorEntry ntdll 1548 +imp 'RtlWow64IsWowGuestMachineSupported' RtlWow64IsWowGuestMachineSupported ntdll 1549 +imp 'RtlWow64LogMessageInEventLogger' RtlWow64LogMessageInEventLogger ntdll 1550 +imp 'RtlWow64PopAllCrossProcessWork' RtlWow64PopAllCrossProcessWork ntdll 1551 +imp 'RtlWow64PopCrossProcessWork' RtlWow64PopCrossProcessWork ntdll 1552 +imp 'RtlWow64PushCrossProcessWork' RtlWow64PushCrossProcessWork ntdll 1553 +imp 'RtlWow64SetThreadContext' RtlWow64SetThreadContext ntdll 1554 +imp 'RtlWow64SuspendThread' RtlWow64SuspendThread ntdll 1555 imp 'RtlWriteMemoryStream' RtlWriteMemoryStream ntdll 1556 imp 'RtlWriteNonVolatileMemory' RtlWriteNonVolatileMemory ntdll 1557 imp 'RtlWriteRegistryValue' RtlWriteRegistryValue ntdll 1558 @@ -5655,6 +6028,7 @@ imp 'RtlpNtOpenKey' RtlpNtOpenKey ntdll 1591 imp 'RtlpNtQueryValueKey' RtlpNtQueryValueKey ntdll 1592 imp 'RtlpNtSetValueKey' RtlpNtSetValueKey ntdll 1593 imp 'RtlpQueryDefaultUILanguage' RtlpQueryDefaultUILanguage ntdll 1594 +imp 'RtlpQueryProcessDebugInformationFromWow64' RtlpQueryProcessDebugInformationFromWow64 ntdll 1595 imp 'RtlpQueryProcessDebugInformationRemote' RtlpQueryProcessDebugInformationRemote ntdll 1596 imp 'RtlpRefreshCachedUILanguage' RtlpRefreshCachedUILanguage ntdll 1597 imp 'RtlpSetInstallLanguage' RtlpSetInstallLanguage ntdll 1598 diff --git a/libc/nt/netapi32/I_BrowserSetNetlogonState.s b/libc/nt/netapi32/I_BrowserSetNetlogonState.s new file mode 100644 index 000000000..21fd5a354 --- /dev/null +++ b/libc/nt/netapi32/I_BrowserSetNetlogonState.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_I_BrowserSetNetlogonState,I_BrowserSetNetlogonState,34 diff --git a/libc/nt/netapi32/NetAccessAdd.s b/libc/nt/netapi32/NetAccessAdd.s new file mode 100644 index 000000000..58641fe9e --- /dev/null +++ b/libc/nt/netapi32/NetAccessAdd.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetAccessAdd,NetAccessAdd,71 diff --git a/libc/nt/netapi32/NetAccessDel.s b/libc/nt/netapi32/NetAccessDel.s new file mode 100644 index 000000000..2d586fde9 --- /dev/null +++ b/libc/nt/netapi32/NetAccessDel.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetAccessDel,NetAccessDel,72 diff --git a/libc/nt/netapi32/NetAccessEnum.s b/libc/nt/netapi32/NetAccessEnum.s new file mode 100644 index 000000000..39ae27832 --- /dev/null +++ b/libc/nt/netapi32/NetAccessEnum.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetAccessEnum,NetAccessEnum,73 diff --git a/libc/nt/netapi32/NetAccessGetInfo.s b/libc/nt/netapi32/NetAccessGetInfo.s new file mode 100644 index 000000000..fa21f71ee --- /dev/null +++ b/libc/nt/netapi32/NetAccessGetInfo.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetAccessGetInfo,NetAccessGetInfo,74 diff --git a/libc/nt/netapi32/NetAccessGetUserPerms.s b/libc/nt/netapi32/NetAccessGetUserPerms.s new file mode 100644 index 000000000..d00b357c1 --- /dev/null +++ b/libc/nt/netapi32/NetAccessGetUserPerms.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetAccessGetUserPerms,NetAccessGetUserPerms,75 diff --git a/libc/nt/netapi32/NetAccessSetInfo.s b/libc/nt/netapi32/NetAccessSetInfo.s new file mode 100644 index 000000000..0ce411762 --- /dev/null +++ b/libc/nt/netapi32/NetAccessSetInfo.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetAccessSetInfo,NetAccessSetInfo,76 diff --git a/libc/nt/netapi32/NetAlertRaise.s b/libc/nt/netapi32/NetAlertRaise.s new file mode 100644 index 000000000..a5e3b5158 --- /dev/null +++ b/libc/nt/netapi32/NetAlertRaise.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetAlertRaise,NetAlertRaise,79 diff --git a/libc/nt/netapi32/NetAlertRaiseEx.s b/libc/nt/netapi32/NetAlertRaiseEx.s new file mode 100644 index 000000000..898ebc6d0 --- /dev/null +++ b/libc/nt/netapi32/NetAlertRaiseEx.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetAlertRaiseEx,NetAlertRaiseEx,80 diff --git a/libc/nt/netapi32/NetAuditClear.s b/libc/nt/netapi32/NetAuditClear.s new file mode 100644 index 000000000..8d19d51a0 --- /dev/null +++ b/libc/nt/netapi32/NetAuditClear.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetAuditClear,NetAuditClear,85 diff --git a/libc/nt/netapi32/NetAuditRead.s b/libc/nt/netapi32/NetAuditRead.s new file mode 100644 index 000000000..96641ff19 --- /dev/null +++ b/libc/nt/netapi32/NetAuditRead.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetAuditRead,NetAuditRead,86 diff --git a/libc/nt/netapi32/NetAuditWrite.s b/libc/nt/netapi32/NetAuditWrite.s new file mode 100644 index 000000000..a496bfc68 --- /dev/null +++ b/libc/nt/netapi32/NetAuditWrite.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetAuditWrite,NetAuditWrite,87 diff --git a/libc/nt/netapi32/NetConfigGet.s b/libc/nt/netapi32/NetConfigGet.s new file mode 100644 index 000000000..ceac04320 --- /dev/null +++ b/libc/nt/netapi32/NetConfigGet.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetConfigGet,NetConfigGet,88 diff --git a/libc/nt/netapi32/NetConfigGetAll.s b/libc/nt/netapi32/NetConfigGetAll.s new file mode 100644 index 000000000..48276209e --- /dev/null +++ b/libc/nt/netapi32/NetConfigGetAll.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetConfigGetAll,NetConfigGetAll,89 diff --git a/libc/nt/netapi32/NetConfigSet.s b/libc/nt/netapi32/NetConfigSet.s new file mode 100644 index 000000000..1a1ff4c9a --- /dev/null +++ b/libc/nt/netapi32/NetConfigSet.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetConfigSet,NetConfigSet,90 diff --git a/libc/nt/netapi32/NetErrorLogClear.s b/libc/nt/netapi32/NetErrorLogClear.s new file mode 100644 index 000000000..eb49eaae1 --- /dev/null +++ b/libc/nt/netapi32/NetErrorLogClear.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetErrorLogClear,NetErrorLogClear,124 diff --git a/libc/nt/netapi32/NetErrorLogRead.s b/libc/nt/netapi32/NetErrorLogRead.s new file mode 100644 index 000000000..287f6d12f --- /dev/null +++ b/libc/nt/netapi32/NetErrorLogRead.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetErrorLogRead,NetErrorLogRead,125 diff --git a/libc/nt/netapi32/NetErrorLogWrite.s b/libc/nt/netapi32/NetErrorLogWrite.s new file mode 100644 index 000000000..3b2ae9592 --- /dev/null +++ b/libc/nt/netapi32/NetErrorLogWrite.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetErrorLogWrite,NetErrorLogWrite,126 diff --git a/libc/nt/netapi32/NetMessageBufferSend.s b/libc/nt/netapi32/NetMessageBufferSend.s new file mode 100644 index 000000000..b536f6626 --- /dev/null +++ b/libc/nt/netapi32/NetMessageBufferSend.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetMessageBufferSend,NetMessageBufferSend,161 diff --git a/libc/nt/netapi32/NetMessageNameAdd.s b/libc/nt/netapi32/NetMessageNameAdd.s new file mode 100644 index 000000000..10bf3bd8f --- /dev/null +++ b/libc/nt/netapi32/NetMessageNameAdd.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetMessageNameAdd,NetMessageNameAdd,162 diff --git a/libc/nt/netapi32/NetMessageNameDel.s b/libc/nt/netapi32/NetMessageNameDel.s new file mode 100644 index 000000000..74a42a6ae --- /dev/null +++ b/libc/nt/netapi32/NetMessageNameDel.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetMessageNameDel,NetMessageNameDel,163 diff --git a/libc/nt/netapi32/NetMessageNameEnum.s b/libc/nt/netapi32/NetMessageNameEnum.s new file mode 100644 index 000000000..438a63393 --- /dev/null +++ b/libc/nt/netapi32/NetMessageNameEnum.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetMessageNameEnum,NetMessageNameEnum,164 diff --git a/libc/nt/netapi32/NetMessageNameGetInfo.s b/libc/nt/netapi32/NetMessageNameGetInfo.s new file mode 100644 index 000000000..03c162d98 --- /dev/null +++ b/libc/nt/netapi32/NetMessageNameGetInfo.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetMessageNameGetInfo,NetMessageNameGetInfo,165 diff --git a/libc/nt/netapi32/NetRegisterDomainNameChangeNotification.s b/libc/nt/netapi32/NetRegisterDomainNameChangeNotification.s new file mode 100644 index 000000000..740b7c88a --- /dev/null +++ b/libc/nt/netapi32/NetRegisterDomainNameChangeNotification.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetRegisterDomainNameChangeNotification,NetRegisterDomainNameChangeNotification,169 diff --git a/libc/nt/netapi32/NetReplExportDirAdd.s b/libc/nt/netapi32/NetReplExportDirAdd.s new file mode 100644 index 000000000..6b9dfa181 --- /dev/null +++ b/libc/nt/netapi32/NetReplExportDirAdd.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetReplExportDirAdd,NetReplExportDirAdd,175 diff --git a/libc/nt/netapi32/NetReplExportDirDel.s b/libc/nt/netapi32/NetReplExportDirDel.s new file mode 100644 index 000000000..31c0d35d1 --- /dev/null +++ b/libc/nt/netapi32/NetReplExportDirDel.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetReplExportDirDel,NetReplExportDirDel,176 diff --git a/libc/nt/netapi32/NetReplExportDirEnum.s b/libc/nt/netapi32/NetReplExportDirEnum.s new file mode 100644 index 000000000..918e4e8cb --- /dev/null +++ b/libc/nt/netapi32/NetReplExportDirEnum.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetReplExportDirEnum,NetReplExportDirEnum,177 diff --git a/libc/nt/netapi32/NetReplExportDirGetInfo.s b/libc/nt/netapi32/NetReplExportDirGetInfo.s new file mode 100644 index 000000000..2a48f7f23 --- /dev/null +++ b/libc/nt/netapi32/NetReplExportDirGetInfo.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetReplExportDirGetInfo,NetReplExportDirGetInfo,178 diff --git a/libc/nt/netapi32/NetReplExportDirLock.s b/libc/nt/netapi32/NetReplExportDirLock.s new file mode 100644 index 000000000..6d3864767 --- /dev/null +++ b/libc/nt/netapi32/NetReplExportDirLock.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetReplExportDirLock,NetReplExportDirLock,179 diff --git a/libc/nt/netapi32/NetReplExportDirSetInfo.s b/libc/nt/netapi32/NetReplExportDirSetInfo.s new file mode 100644 index 000000000..a755c0d98 --- /dev/null +++ b/libc/nt/netapi32/NetReplExportDirSetInfo.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetReplExportDirSetInfo,NetReplExportDirSetInfo,180 diff --git a/libc/nt/netapi32/NetReplExportDirUnlock.s b/libc/nt/netapi32/NetReplExportDirUnlock.s new file mode 100644 index 000000000..0f027c795 --- /dev/null +++ b/libc/nt/netapi32/NetReplExportDirUnlock.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetReplExportDirUnlock,NetReplExportDirUnlock,181 diff --git a/libc/nt/netapi32/NetReplGetInfo.s b/libc/nt/netapi32/NetReplGetInfo.s new file mode 100644 index 000000000..823f8ea9d --- /dev/null +++ b/libc/nt/netapi32/NetReplGetInfo.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetReplGetInfo,NetReplGetInfo,182 diff --git a/libc/nt/netapi32/NetReplImportDirAdd.s b/libc/nt/netapi32/NetReplImportDirAdd.s new file mode 100644 index 000000000..5a4aba81c --- /dev/null +++ b/libc/nt/netapi32/NetReplImportDirAdd.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetReplImportDirAdd,NetReplImportDirAdd,183 diff --git a/libc/nt/netapi32/NetReplImportDirDel.s b/libc/nt/netapi32/NetReplImportDirDel.s new file mode 100644 index 000000000..10a41cbdc --- /dev/null +++ b/libc/nt/netapi32/NetReplImportDirDel.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetReplImportDirDel,NetReplImportDirDel,184 diff --git a/libc/nt/netapi32/NetReplImportDirEnum.s b/libc/nt/netapi32/NetReplImportDirEnum.s new file mode 100644 index 000000000..d94d65b87 --- /dev/null +++ b/libc/nt/netapi32/NetReplImportDirEnum.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetReplImportDirEnum,NetReplImportDirEnum,185 diff --git a/libc/nt/netapi32/NetReplImportDirGetInfo.s b/libc/nt/netapi32/NetReplImportDirGetInfo.s new file mode 100644 index 000000000..2092fb07d --- /dev/null +++ b/libc/nt/netapi32/NetReplImportDirGetInfo.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetReplImportDirGetInfo,NetReplImportDirGetInfo,186 diff --git a/libc/nt/netapi32/NetReplImportDirLock.s b/libc/nt/netapi32/NetReplImportDirLock.s new file mode 100644 index 000000000..3f0a861cf --- /dev/null +++ b/libc/nt/netapi32/NetReplImportDirLock.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetReplImportDirLock,NetReplImportDirLock,187 diff --git a/libc/nt/netapi32/NetReplImportDirUnlock.s b/libc/nt/netapi32/NetReplImportDirUnlock.s new file mode 100644 index 000000000..0bfc94c01 --- /dev/null +++ b/libc/nt/netapi32/NetReplImportDirUnlock.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetReplImportDirUnlock,NetReplImportDirUnlock,188 diff --git a/libc/nt/netapi32/NetReplSetInfo.s b/libc/nt/netapi32/NetReplSetInfo.s new file mode 100644 index 000000000..07865ac95 --- /dev/null +++ b/libc/nt/netapi32/NetReplSetInfo.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetReplSetInfo,NetReplSetInfo,189 diff --git a/libc/nt/netapi32/NetServerEnum.s b/libc/nt/netapi32/NetServerEnum.s new file mode 100644 index 000000000..7ae85e1e3 --- /dev/null +++ b/libc/nt/netapi32/NetServerEnum.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetServerEnum,NetServerEnum,202 diff --git a/libc/nt/netapi32/NetServerEnumEx.s b/libc/nt/netapi32/NetServerEnumEx.s new file mode 100644 index 000000000..fee871833 --- /dev/null +++ b/libc/nt/netapi32/NetServerEnumEx.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetServerEnumEx,NetServerEnumEx,203 diff --git a/libc/nt/netapi32/NetServiceControl.s b/libc/nt/netapi32/NetServiceControl.s new file mode 100644 index 000000000..6e447ae6e --- /dev/null +++ b/libc/nt/netapi32/NetServiceControl.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetServiceControl,NetServiceControl,210 diff --git a/libc/nt/netapi32/NetServiceEnum.s b/libc/nt/netapi32/NetServiceEnum.s new file mode 100644 index 000000000..8eaca1c3f --- /dev/null +++ b/libc/nt/netapi32/NetServiceEnum.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetServiceEnum,NetServiceEnum,211 diff --git a/libc/nt/netapi32/NetServiceGetInfo.s b/libc/nt/netapi32/NetServiceGetInfo.s new file mode 100644 index 000000000..861e164ba --- /dev/null +++ b/libc/nt/netapi32/NetServiceGetInfo.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetServiceGetInfo,NetServiceGetInfo,212 diff --git a/libc/nt/netapi32/NetServiceInstall.s b/libc/nt/netapi32/NetServiceInstall.s new file mode 100644 index 000000000..06666a4d9 --- /dev/null +++ b/libc/nt/netapi32/NetServiceInstall.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetServiceInstall,NetServiceInstall,213 diff --git a/libc/nt/netapi32/NetStatisticsGet.s b/libc/nt/netapi32/NetStatisticsGet.s new file mode 100644 index 000000000..03bf556af --- /dev/null +++ b/libc/nt/netapi32/NetStatisticsGet.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetStatisticsGet,NetStatisticsGet,227 diff --git a/libc/nt/netapi32/NetUnregisterDomainNameChangeNotification.s b/libc/nt/netapi32/NetUnregisterDomainNameChangeNotification.s new file mode 100644 index 000000000..f0fb782ba --- /dev/null +++ b/libc/nt/netapi32/NetUnregisterDomainNameChangeNotification.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetUnregisterDomainNameChangeNotification,NetUnregisterDomainNameChangeNotification,229 diff --git a/libc/nt/netapi32/NetWkstaGetInfo.s b/libc/nt/netapi32/NetWkstaGetInfo.s new file mode 100644 index 000000000..aded82e69 --- /dev/null +++ b/libc/nt/netapi32/NetWkstaGetInfo.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetWkstaGetInfo,NetWkstaGetInfo,248 diff --git a/libc/nt/netapi32/NetWkstaSetInfo.s b/libc/nt/netapi32/NetWkstaSetInfo.s new file mode 100644 index 000000000..6e4b0de33 --- /dev/null +++ b/libc/nt/netapi32/NetWkstaSetInfo.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetWkstaSetInfo,NetWkstaSetInfo,249 diff --git a/libc/nt/netapi32/Netbios.s b/libc/nt/netapi32/Netbios.s new file mode 100644 index 000000000..6609c0002 --- /dev/null +++ b/libc/nt/netapi32/Netbios.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_Netbios,Netbios,257 diff --git a/libc/nt/netapi32/NetpAddTlnFtinfoEntry.s b/libc/nt/netapi32/NetpAddTlnFtinfoEntry.s new file mode 100644 index 000000000..c0a91661d --- /dev/null +++ b/libc/nt/netapi32/NetpAddTlnFtinfoEntry.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetpAddTlnFtinfoEntry,NetpAddTlnFtinfoEntry,258 diff --git a/libc/nt/netapi32/NetpAllocFtinfoEntry.s b/libc/nt/netapi32/NetpAllocFtinfoEntry.s new file mode 100644 index 000000000..1df7637be --- /dev/null +++ b/libc/nt/netapi32/NetpAllocFtinfoEntry.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetpAllocFtinfoEntry,NetpAllocFtinfoEntry,259 diff --git a/libc/nt/netapi32/NetpAssertFailed.s b/libc/nt/netapi32/NetpAssertFailed.s new file mode 100644 index 000000000..a88f62242 --- /dev/null +++ b/libc/nt/netapi32/NetpAssertFailed.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetpAssertFailed,NetpAssertFailed,260 diff --git a/libc/nt/netapi32/NetpCleanFtinfoContext.s b/libc/nt/netapi32/NetpCleanFtinfoContext.s new file mode 100644 index 000000000..d9bf47a96 --- /dev/null +++ b/libc/nt/netapi32/NetpCleanFtinfoContext.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetpCleanFtinfoContext,NetpCleanFtinfoContext,261 diff --git a/libc/nt/netapi32/NetpCloseConfigData.s b/libc/nt/netapi32/NetpCloseConfigData.s new file mode 100644 index 000000000..852086714 --- /dev/null +++ b/libc/nt/netapi32/NetpCloseConfigData.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetpCloseConfigData,NetpCloseConfigData,262 diff --git a/libc/nt/netapi32/NetpCopyFtinfoContext.s b/libc/nt/netapi32/NetpCopyFtinfoContext.s new file mode 100644 index 000000000..daf86ce11 --- /dev/null +++ b/libc/nt/netapi32/NetpCopyFtinfoContext.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetpCopyFtinfoContext,NetpCopyFtinfoContext,263 diff --git a/libc/nt/netapi32/NetpDbgPrint.s b/libc/nt/netapi32/NetpDbgPrint.s new file mode 100644 index 000000000..fc1e43748 --- /dev/null +++ b/libc/nt/netapi32/NetpDbgPrint.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetpDbgPrint,NetpDbgPrint,264 diff --git a/libc/nt/netapi32/NetpGetConfigBool.s b/libc/nt/netapi32/NetpGetConfigBool.s new file mode 100644 index 000000000..e7e7dfd24 --- /dev/null +++ b/libc/nt/netapi32/NetpGetConfigBool.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetpGetConfigBool,NetpGetConfigBool,265 diff --git a/libc/nt/netapi32/NetpGetConfigDword.s b/libc/nt/netapi32/NetpGetConfigDword.s new file mode 100644 index 000000000..ca17c618d --- /dev/null +++ b/libc/nt/netapi32/NetpGetConfigDword.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetpGetConfigDword,NetpGetConfigDword,266 diff --git a/libc/nt/netapi32/NetpGetConfigTStrArray.s b/libc/nt/netapi32/NetpGetConfigTStrArray.s new file mode 100644 index 000000000..982c51659 --- /dev/null +++ b/libc/nt/netapi32/NetpGetConfigTStrArray.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetpGetConfigTStrArray,NetpGetConfigTStrArray,267 diff --git a/libc/nt/netapi32/NetpGetConfigValue.s b/libc/nt/netapi32/NetpGetConfigValue.s new file mode 100644 index 000000000..fde794677 --- /dev/null +++ b/libc/nt/netapi32/NetpGetConfigValue.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetpGetConfigValue,NetpGetConfigValue,268 diff --git a/libc/nt/netapi32/NetpGetFileSecurity.s b/libc/nt/netapi32/NetpGetFileSecurity.s new file mode 100644 index 000000000..b9b027bc8 --- /dev/null +++ b/libc/nt/netapi32/NetpGetFileSecurity.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetpGetFileSecurity,NetpGetFileSecurity,269 diff --git a/libc/nt/netapi32/NetpHexDump.s b/libc/nt/netapi32/NetpHexDump.s new file mode 100644 index 000000000..245ac3b18 --- /dev/null +++ b/libc/nt/netapi32/NetpHexDump.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetpHexDump,NetpHexDump,270 diff --git a/libc/nt/netapi32/NetpInitFtinfoContext.s b/libc/nt/netapi32/NetpInitFtinfoContext.s new file mode 100644 index 000000000..a9f585543 --- /dev/null +++ b/libc/nt/netapi32/NetpInitFtinfoContext.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetpInitFtinfoContext,NetpInitFtinfoContext,271 diff --git a/libc/nt/netapi32/NetpIsUncComputerNameValid.s b/libc/nt/netapi32/NetpIsUncComputerNameValid.s new file mode 100644 index 000000000..44be4bbef --- /dev/null +++ b/libc/nt/netapi32/NetpIsUncComputerNameValid.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetpIsUncComputerNameValid,NetpIsUncComputerNameValid,273 diff --git a/libc/nt/netapi32/NetpMergeFtinfo.s b/libc/nt/netapi32/NetpMergeFtinfo.s new file mode 100644 index 000000000..e1e9d93bb --- /dev/null +++ b/libc/nt/netapi32/NetpMergeFtinfo.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetpMergeFtinfo,NetpMergeFtinfo,274 diff --git a/libc/nt/netapi32/NetpNetBiosReset.s b/libc/nt/netapi32/NetpNetBiosReset.s new file mode 100644 index 000000000..8e196bae1 --- /dev/null +++ b/libc/nt/netapi32/NetpNetBiosReset.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetpNetBiosReset,NetpNetBiosReset,275 diff --git a/libc/nt/netapi32/NetpNetBiosStatusToApiStatus.s b/libc/nt/netapi32/NetpNetBiosStatusToApiStatus.s new file mode 100644 index 000000000..41ac7f710 --- /dev/null +++ b/libc/nt/netapi32/NetpNetBiosStatusToApiStatus.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetpNetBiosStatusToApiStatus,NetpNetBiosStatusToApiStatus,276 diff --git a/libc/nt/netapi32/NetpOpenConfigData.s b/libc/nt/netapi32/NetpOpenConfigData.s new file mode 100644 index 000000000..264c088e4 --- /dev/null +++ b/libc/nt/netapi32/NetpOpenConfigData.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetpOpenConfigData,NetpOpenConfigData,277 diff --git a/libc/nt/netapi32/NetpSetFileSecurity.s b/libc/nt/netapi32/NetpSetFileSecurity.s new file mode 100644 index 000000000..99d5e3744 --- /dev/null +++ b/libc/nt/netapi32/NetpSetFileSecurity.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_NetpSetFileSecurity,NetpSetFileSecurity,278 diff --git a/libc/nt/netapi32/RxNetAccessAdd.s b/libc/nt/netapi32/RxNetAccessAdd.s new file mode 100644 index 000000000..ea3d3db99 --- /dev/null +++ b/libc/nt/netapi32/RxNetAccessAdd.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_RxNetAccessAdd,RxNetAccessAdd,288 diff --git a/libc/nt/netapi32/RxNetAccessDel.s b/libc/nt/netapi32/RxNetAccessDel.s new file mode 100644 index 000000000..726e9e771 --- /dev/null +++ b/libc/nt/netapi32/RxNetAccessDel.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_RxNetAccessDel,RxNetAccessDel,289 diff --git a/libc/nt/netapi32/RxNetAccessEnum.s b/libc/nt/netapi32/RxNetAccessEnum.s new file mode 100644 index 000000000..ee99b7682 --- /dev/null +++ b/libc/nt/netapi32/RxNetAccessEnum.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_RxNetAccessEnum,RxNetAccessEnum,290 diff --git a/libc/nt/netapi32/RxNetAccessGetInfo.s b/libc/nt/netapi32/RxNetAccessGetInfo.s new file mode 100644 index 000000000..1b9f5a829 --- /dev/null +++ b/libc/nt/netapi32/RxNetAccessGetInfo.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_RxNetAccessGetInfo,RxNetAccessGetInfo,291 diff --git a/libc/nt/netapi32/RxNetAccessGetUserPerms.s b/libc/nt/netapi32/RxNetAccessGetUserPerms.s new file mode 100644 index 000000000..d0bd31ba2 --- /dev/null +++ b/libc/nt/netapi32/RxNetAccessGetUserPerms.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_RxNetAccessGetUserPerms,RxNetAccessGetUserPerms,292 diff --git a/libc/nt/netapi32/RxNetAccessSetInfo.s b/libc/nt/netapi32/RxNetAccessSetInfo.s new file mode 100644 index 000000000..44c5db7e7 --- /dev/null +++ b/libc/nt/netapi32/RxNetAccessSetInfo.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_RxNetAccessSetInfo,RxNetAccessSetInfo,293 diff --git a/libc/nt/netapi32/RxNetServerEnum.s b/libc/nt/netapi32/RxNetServerEnum.s new file mode 100644 index 000000000..e94802e58 --- /dev/null +++ b/libc/nt/netapi32/RxNetServerEnum.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_RxNetServerEnum,RxNetServerEnum,294 diff --git a/libc/nt/netapi32/RxNetUserPasswordSet.s b/libc/nt/netapi32/RxNetUserPasswordSet.s new file mode 100644 index 000000000..3a8b31a39 --- /dev/null +++ b/libc/nt/netapi32/RxNetUserPasswordSet.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_RxNetUserPasswordSet,RxNetUserPasswordSet,295 diff --git a/libc/nt/netapi32/RxRemoteApi.s b/libc/nt/netapi32/RxRemoteApi.s new file mode 100644 index 000000000..cdb316f32 --- /dev/null +++ b/libc/nt/netapi32/RxRemoteApi.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp netapi32,__imp_RxRemoteApi,RxRemoteApi,296 diff --git a/libc/nt/nt.mk b/libc/nt/nt.mk index e56812ce6..c4eb6f747 100644 --- a/libc/nt/nt.mk +++ b/libc/nt/nt.mk @@ -148,6 +148,27 @@ o/libc/nt/ntdllimport.inc: \ #─────────────────────────────────────────────────────────────────────────────── +LIBC_NT_ARTIFACTS += LIBC_NT_NETAPI32_A +LIBC_NT_NETAPI32 = $(LIBC_NT_NETAPI32_A_DEPS) $(LIBC_NT_NETAPI32_A) +LIBC_NT_NETAPI32_A = o/$(MODE)/libc/nt/netapi32.a +LIBC_NT_NETAPI32_A_SRCS := $(wildcard libc/nt/netapi32/*.s) +LIBC_NT_NETAPI32_A_OBJS = $(LIBC_NT_NETAPI32_A_SRCS:%.s=o/$(MODE)/%.o) +LIBC_NT_NETAPI32_A_CHECKS = $(LIBC_NT_NETAPI32_A).pkg +LIBC_NT_NETAPI32_A_DIRECTDEPS = LIBC_NT_KERNEL32 +LIBC_NT_NETAPI32_A_DEPS := \ + $(call uniq,$(foreach x,$(LIBC_NT_NETAPI32_A_DIRECTDEPS),$($(x)))) + +$(LIBC_NT_NETAPI32_A): \ + libc/nt/netapi32/ \ + $(LIBC_NT_NETAPI32_A).pkg \ + $(LIBC_NT_NETAPI32_A_OBJS) + +$(LIBC_NT_NETAPI32_A).pkg: \ + $(LIBC_NT_NETAPI32_A_OBJS) \ + $(foreach x,$(LIBC_NT_NETAPI32_A_DIRECTDEPS),$($(x)_A).pkg) + +#─────────────────────────────────────────────────────────────────────────────── + LIBC_NT_ARTIFACTS += LIBC_NT_URL_A LIBC_NT_URL = $(LIBC_NT_URL_A_DEPS) $(LIBC_NT_URL_A) LIBC_NT_URL_A = o/$(MODE)/libc/nt/url.a @@ -253,6 +274,25 @@ $(LIBC_NT_MSWSOCK_A).pkg: \ #─────────────────────────────────────────────────────────────────────────────── +LIBC_NT_ARTIFACTS += LIBC_NT_SHELL32_A +LIBC_NT_SHELL32 = $(LIBC_NT_SHELL32_A_DEPS) $(LIBC_NT_SHELL32_A) +LIBC_NT_SHELL32_A = o/$(MODE)/libc/nt/shell32.a +LIBC_NT_SHELL32_A_SRCS := $(wildcard libc/nt/shell32/*.s) +LIBC_NT_SHELL32_A_OBJS = $(LIBC_NT_SHELL32_A_SRCS:%.s=o/$(MODE)/%.o) +LIBC_NT_SHELL32_A_CHECKS = $(LIBC_NT_SHELL32_A).pkg +LIBC_NT_SHELL32_A_DIRECTDEPS = LIBC_NT_KERNEL32 +LIBC_NT_SHELL32_A_DEPS := \ + $(call uniq,$(foreach x,$(LIBC_NT_SHELL32_A_DIRECTDEPS),$($(x)))) +$(LIBC_NT_SHELL32_A): \ + libc/nt/shell32/ \ + $(LIBC_NT_SHELL32_A).pkg \ + $(LIBC_NT_SHELL32_A_OBJS) +$(LIBC_NT_SHELL32_A).pkg: \ + $(LIBC_NT_SHELL32_A_OBJS) \ + $(foreach x,$(LIBC_NT_SHELL32_A_DIRECTDEPS),$($(x)_A).pkg) + +#─────────────────────────────────────────────────────────────────────────────── + LIBC_NT_ARTIFACTS += LIBC_NT_IPHLPAPI_A LIBC_NT_IPHLPAPI = $(LIBC_NT_IPHLPAPI_A_DEPS) $(LIBC_NT_IPHLPAPI_A) LIBC_NT_IPHLPAPI_A = o/$(MODE)/libc/nt/iphlpapi.a diff --git a/libc/nt/ntdll/RtlQueueApcWow64Thread.s b/libc/nt/ntdll/RtlQueueApcWow64Thread.s new file mode 100644 index 000000000..5605eca2c --- /dev/null +++ b/libc/nt/ntdll/RtlQueueApcWow64Thread.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/ntdllimport.inc" +.ntimp RtlQueueApcWow64Thread diff --git a/libc/nt/ntdll/RtlWow64CallFunction64.s b/libc/nt/ntdll/RtlWow64CallFunction64.s new file mode 100644 index 000000000..33fc58835 --- /dev/null +++ b/libc/nt/ntdll/RtlWow64CallFunction64.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/ntdllimport.inc" +.ntimp RtlWow64CallFunction64 diff --git a/libc/nt/ntdll/RtlWow64EnableFsRedirection.s b/libc/nt/ntdll/RtlWow64EnableFsRedirection.s new file mode 100644 index 000000000..dd622350b --- /dev/null +++ b/libc/nt/ntdll/RtlWow64EnableFsRedirection.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/ntdllimport.inc" +.ntimp RtlWow64EnableFsRedirection diff --git a/libc/nt/ntdll/RtlWow64EnableFsRedirectionEx.s b/libc/nt/ntdll/RtlWow64EnableFsRedirectionEx.s new file mode 100644 index 000000000..31e1874c6 --- /dev/null +++ b/libc/nt/ntdll/RtlWow64EnableFsRedirectionEx.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/ntdllimport.inc" +.ntimp RtlWow64EnableFsRedirectionEx diff --git a/libc/nt/ntdll/RtlWow64GetCpuAreaInfo.s b/libc/nt/ntdll/RtlWow64GetCpuAreaInfo.s new file mode 100644 index 000000000..1baf76e10 --- /dev/null +++ b/libc/nt/ntdll/RtlWow64GetCpuAreaInfo.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/ntdllimport.inc" +.ntimp RtlWow64GetCpuAreaInfo diff --git a/libc/nt/ntdll/RtlWow64GetCurrentCpuArea.s b/libc/nt/ntdll/RtlWow64GetCurrentCpuArea.s new file mode 100644 index 000000000..584169952 --- /dev/null +++ b/libc/nt/ntdll/RtlWow64GetCurrentCpuArea.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/ntdllimport.inc" +.ntimp RtlWow64GetCurrentCpuArea diff --git a/libc/nt/ntdll/RtlWow64GetCurrentMachine.s b/libc/nt/ntdll/RtlWow64GetCurrentMachine.s new file mode 100644 index 000000000..2dfcd11e1 --- /dev/null +++ b/libc/nt/ntdll/RtlWow64GetCurrentMachine.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/ntdllimport.inc" +.ntimp RtlWow64GetCurrentMachine diff --git a/libc/nt/ntdll/RtlWow64GetEquivalentMachineCHPE.s b/libc/nt/ntdll/RtlWow64GetEquivalentMachineCHPE.s new file mode 100644 index 000000000..b2c91c5bb --- /dev/null +++ b/libc/nt/ntdll/RtlWow64GetEquivalentMachineCHPE.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/ntdllimport.inc" +.ntimp RtlWow64GetEquivalentMachineCHPE diff --git a/libc/nt/ntdll/RtlWow64GetProcessMachines.s b/libc/nt/ntdll/RtlWow64GetProcessMachines.s new file mode 100644 index 000000000..11b1bb3c9 --- /dev/null +++ b/libc/nt/ntdll/RtlWow64GetProcessMachines.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/ntdllimport.inc" +.ntimp RtlWow64GetProcessMachines diff --git a/libc/nt/ntdll/RtlWow64GetSharedInfoProcess.s b/libc/nt/ntdll/RtlWow64GetSharedInfoProcess.s new file mode 100644 index 000000000..f974d314f --- /dev/null +++ b/libc/nt/ntdll/RtlWow64GetSharedInfoProcess.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/ntdllimport.inc" +.ntimp RtlWow64GetSharedInfoProcess diff --git a/libc/nt/ntdll/RtlWow64GetThreadContext.s b/libc/nt/ntdll/RtlWow64GetThreadContext.s new file mode 100644 index 000000000..b22502980 --- /dev/null +++ b/libc/nt/ntdll/RtlWow64GetThreadContext.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/ntdllimport.inc" +.ntimp RtlWow64GetThreadContext diff --git a/libc/nt/ntdll/RtlWow64GetThreadSelectorEntry.s b/libc/nt/ntdll/RtlWow64GetThreadSelectorEntry.s new file mode 100644 index 000000000..a825354ab --- /dev/null +++ b/libc/nt/ntdll/RtlWow64GetThreadSelectorEntry.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/ntdllimport.inc" +.ntimp RtlWow64GetThreadSelectorEntry diff --git a/libc/nt/ntdll/RtlWow64IsWowGuestMachineSupported.s b/libc/nt/ntdll/RtlWow64IsWowGuestMachineSupported.s new file mode 100644 index 000000000..4ea47ad74 --- /dev/null +++ b/libc/nt/ntdll/RtlWow64IsWowGuestMachineSupported.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/ntdllimport.inc" +.ntimp RtlWow64IsWowGuestMachineSupported diff --git a/libc/nt/ntdll/RtlWow64LogMessageInEventLogger.s b/libc/nt/ntdll/RtlWow64LogMessageInEventLogger.s new file mode 100644 index 000000000..0d79f31ba --- /dev/null +++ b/libc/nt/ntdll/RtlWow64LogMessageInEventLogger.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/ntdllimport.inc" +.ntimp RtlWow64LogMessageInEventLogger diff --git a/libc/nt/ntdll/RtlWow64PopAllCrossProcessWork.s b/libc/nt/ntdll/RtlWow64PopAllCrossProcessWork.s new file mode 100644 index 000000000..4b133ab5c --- /dev/null +++ b/libc/nt/ntdll/RtlWow64PopAllCrossProcessWork.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/ntdllimport.inc" +.ntimp RtlWow64PopAllCrossProcessWork diff --git a/libc/nt/ntdll/RtlWow64PopCrossProcessWork.s b/libc/nt/ntdll/RtlWow64PopCrossProcessWork.s new file mode 100644 index 000000000..8c96ebd03 --- /dev/null +++ b/libc/nt/ntdll/RtlWow64PopCrossProcessWork.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/ntdllimport.inc" +.ntimp RtlWow64PopCrossProcessWork diff --git a/libc/nt/ntdll/RtlWow64PushCrossProcessWork.s b/libc/nt/ntdll/RtlWow64PushCrossProcessWork.s new file mode 100644 index 000000000..edc05e246 --- /dev/null +++ b/libc/nt/ntdll/RtlWow64PushCrossProcessWork.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/ntdllimport.inc" +.ntimp RtlWow64PushCrossProcessWork diff --git a/libc/nt/ntdll/RtlWow64SetThreadContext.s b/libc/nt/ntdll/RtlWow64SetThreadContext.s new file mode 100644 index 000000000..d4cbe94dc --- /dev/null +++ b/libc/nt/ntdll/RtlWow64SetThreadContext.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/ntdllimport.inc" +.ntimp RtlWow64SetThreadContext diff --git a/libc/nt/ntdll/RtlWow64SuspendThread.s b/libc/nt/ntdll/RtlWow64SuspendThread.s new file mode 100644 index 000000000..cef3bfd11 --- /dev/null +++ b/libc/nt/ntdll/RtlWow64SuspendThread.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/ntdllimport.inc" +.ntimp RtlWow64SuspendThread diff --git a/libc/nt/ntdll/RtlpQueryProcessDebugInformationFromWow64.s b/libc/nt/ntdll/RtlpQueryProcessDebugInformationFromWow64.s new file mode 100644 index 000000000..0a960344d --- /dev/null +++ b/libc/nt/ntdll/RtlpQueryProcessDebugInformationFromWow64.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/ntdllimport.inc" +.ntimp RtlpQueryProcessDebugInformationFromWow64 diff --git a/libc/nt/shell32/AppCompat_RunDLLW.s b/libc/nt/shell32/AppCompat_RunDLLW.s new file mode 100644 index 000000000..ce1119de6 --- /dev/null +++ b/libc/nt/shell32/AppCompat_RunDLLW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_AppCompat_RunDLLW,AppCompat_RunDLLW,255 diff --git a/libc/nt/shell32/AssocCreateForClasses.s b/libc/nt/shell32/AssocCreateForClasses.s new file mode 100644 index 000000000..de2128953 --- /dev/null +++ b/libc/nt/shell32/AssocCreateForClasses.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_AssocCreateForClasses,AssocCreateForClasses,263 diff --git a/libc/nt/shell32/AssocGetDetailsOfPropKey.s b/libc/nt/shell32/AssocGetDetailsOfPropKey.s new file mode 100644 index 000000000..71c703895 --- /dev/null +++ b/libc/nt/shell32/AssocGetDetailsOfPropKey.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_AssocGetDetailsOfPropKey,AssocGetDetailsOfPropKey,267 diff --git a/libc/nt/shell32/CDefFolderMenu_Create2.s b/libc/nt/shell32/CDefFolderMenu_Create2.s new file mode 100644 index 000000000..17ed31644 --- /dev/null +++ b/libc/nt/shell32/CDefFolderMenu_Create2.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_CDefFolderMenu_Create2,CDefFolderMenu_Create2,701 diff --git a/libc/nt/shell32/CIDLData_CreateFromIDArray.s b/libc/nt/shell32/CIDLData_CreateFromIDArray.s new file mode 100644 index 000000000..cf84c0079 --- /dev/null +++ b/libc/nt/shell32/CIDLData_CreateFromIDArray.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_CIDLData_CreateFromIDArray,CIDLData_CreateFromIDArray,83 diff --git a/libc/nt/shell32/CStorageItem_GetValidatedStorageItemObject.s b/libc/nt/shell32/CStorageItem_GetValidatedStorageItemObject.s new file mode 100644 index 000000000..cb1435023 --- /dev/null +++ b/libc/nt/shell32/CStorageItem_GetValidatedStorageItemObject.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_CStorageItem_GetValidatedStorageItemObject,CStorageItem_GetValidatedStorageItemObject,937 diff --git a/libc/nt/shell32/CheckEscapesW.s b/libc/nt/shell32/CheckEscapesW.s new file mode 100644 index 000000000..425e35bcc --- /dev/null +++ b/libc/nt/shell32/CheckEscapesW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_CheckEscapesW,CheckEscapesW,268 diff --git a/libc/nt/shell32/CommandLineToArgvW.s b/libc/nt/shell32/CommandLineToArgvW.s new file mode 100644 index 000000000..aca5c648c --- /dev/null +++ b/libc/nt/shell32/CommandLineToArgvW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_CommandLineToArgvW,CommandLineToArgvW,269 diff --git a/libc/nt/shell32/Control_RunDLL.s b/libc/nt/shell32/Control_RunDLL.s new file mode 100644 index 000000000..df79b3e05 --- /dev/null +++ b/libc/nt/shell32/Control_RunDLL.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_Control_RunDLL,Control_RunDLL,272 diff --git a/libc/nt/shell32/Control_RunDLLAsUserW.s b/libc/nt/shell32/Control_RunDLLAsUserW.s new file mode 100644 index 000000000..d363943d6 --- /dev/null +++ b/libc/nt/shell32/Control_RunDLLAsUserW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_Control_RunDLLAsUserW,Control_RunDLLAsUserW,274 diff --git a/libc/nt/shell32/Control_RunDLLW.s b/libc/nt/shell32/Control_RunDLLW.s new file mode 100644 index 000000000..9e918cffb --- /dev/null +++ b/libc/nt/shell32/Control_RunDLLW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_Control_RunDLLW,Control_RunDLLW,275 diff --git a/libc/nt/shell32/DAD_AutoScroll.s b/libc/nt/shell32/DAD_AutoScroll.s new file mode 100644 index 000000000..a2762c27b --- /dev/null +++ b/libc/nt/shell32/DAD_AutoScroll.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_DAD_AutoScroll,DAD_AutoScroll,129 diff --git a/libc/nt/shell32/DAD_DragEnterEx.s b/libc/nt/shell32/DAD_DragEnterEx.s new file mode 100644 index 000000000..1b5ff54ea --- /dev/null +++ b/libc/nt/shell32/DAD_DragEnterEx.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_DAD_DragEnterEx,DAD_DragEnterEx,131 diff --git a/libc/nt/shell32/DAD_DragEnterEx2.s b/libc/nt/shell32/DAD_DragEnterEx2.s new file mode 100644 index 000000000..b90073b58 --- /dev/null +++ b/libc/nt/shell32/DAD_DragEnterEx2.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_DAD_DragEnterEx2,DAD_DragEnterEx2,22 diff --git a/libc/nt/shell32/DAD_DragLeave.s b/libc/nt/shell32/DAD_DragLeave.s new file mode 100644 index 000000000..cce330cf0 --- /dev/null +++ b/libc/nt/shell32/DAD_DragLeave.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_DAD_DragLeave,DAD_DragLeave,132 diff --git a/libc/nt/shell32/DAD_DragMove.s b/libc/nt/shell32/DAD_DragMove.s new file mode 100644 index 000000000..731617220 --- /dev/null +++ b/libc/nt/shell32/DAD_DragMove.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_DAD_DragMove,DAD_DragMove,134 diff --git a/libc/nt/shell32/DAD_SetDragImage.s b/libc/nt/shell32/DAD_SetDragImage.s new file mode 100644 index 000000000..725a644ff --- /dev/null +++ b/libc/nt/shell32/DAD_SetDragImage.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_DAD_SetDragImage,DAD_SetDragImage,136 diff --git a/libc/nt/shell32/DAD_ShowDragImage.s b/libc/nt/shell32/DAD_ShowDragImage.s new file mode 100644 index 000000000..aeead5cab --- /dev/null +++ b/libc/nt/shell32/DAD_ShowDragImage.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_DAD_ShowDragImage,DAD_ShowDragImage,137 diff --git a/libc/nt/shell32/DllGetActivationFactory.s b/libc/nt/shell32/DllGetActivationFactory.s new file mode 100644 index 000000000..9ef53e481 --- /dev/null +++ b/libc/nt/shell32/DllGetActivationFactory.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_DllGetActivationFactory,DllGetActivationFactory,277 diff --git a/libc/nt/shell32/DllGetVersion.s b/libc/nt/shell32/DllGetVersion.s new file mode 100644 index 000000000..58f5d2275 --- /dev/null +++ b/libc/nt/shell32/DllGetVersion.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_DllGetVersion,DllGetVersion,279 diff --git a/libc/nt/shell32/DllInstall.s b/libc/nt/shell32/DllInstall.s new file mode 100644 index 000000000..08736498f --- /dev/null +++ b/libc/nt/shell32/DllInstall.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_DllInstall,DllInstall,280 diff --git a/libc/nt/shell32/DllRegisterServer.s b/libc/nt/shell32/DllRegisterServer.s new file mode 100644 index 000000000..d041bcc25 --- /dev/null +++ b/libc/nt/shell32/DllRegisterServer.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_DllRegisterServer,DllRegisterServer,281 diff --git a/libc/nt/shell32/DllUnregisterServer.s b/libc/nt/shell32/DllUnregisterServer.s new file mode 100644 index 000000000..9b58f38a0 --- /dev/null +++ b/libc/nt/shell32/DllUnregisterServer.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_DllUnregisterServer,DllUnregisterServer,282 diff --git a/libc/nt/shell32/DoEnvironmentSubstW.s b/libc/nt/shell32/DoEnvironmentSubstW.s new file mode 100644 index 000000000..5a115e113 --- /dev/null +++ b/libc/nt/shell32/DoEnvironmentSubstW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_DoEnvironmentSubstW,DoEnvironmentSubstW,284 diff --git a/libc/nt/shell32/DragAcceptFiles.s b/libc/nt/shell32/DragAcceptFiles.s new file mode 100644 index 000000000..e4407b24c --- /dev/null +++ b/libc/nt/shell32/DragAcceptFiles.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_DragAcceptFiles,DragAcceptFiles,285 diff --git a/libc/nt/shell32/DragFinish.s b/libc/nt/shell32/DragFinish.s new file mode 100644 index 000000000..bbc74a550 --- /dev/null +++ b/libc/nt/shell32/DragFinish.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_DragFinish,DragFinish,286 diff --git a/libc/nt/shell32/DragQueryFileAorW.s b/libc/nt/shell32/DragQueryFileAorW.s new file mode 100644 index 000000000..f61208042 --- /dev/null +++ b/libc/nt/shell32/DragQueryFileAorW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_DragQueryFileAorW,DragQueryFileAorW,289 diff --git a/libc/nt/shell32/DragQueryFileW.s b/libc/nt/shell32/DragQueryFileW.s new file mode 100644 index 000000000..bc577274b --- /dev/null +++ b/libc/nt/shell32/DragQueryFileW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_DragQueryFileW,DragQueryFileW,290 diff --git a/libc/nt/shell32/DragQueryPoint.s b/libc/nt/shell32/DragQueryPoint.s new file mode 100644 index 000000000..74f4aaa37 --- /dev/null +++ b/libc/nt/shell32/DragQueryPoint.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_DragQueryPoint,DragQueryPoint,291 diff --git a/libc/nt/shell32/DriveType.s b/libc/nt/shell32/DriveType.s new file mode 100644 index 000000000..865240ff8 --- /dev/null +++ b/libc/nt/shell32/DriveType.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_DriveType,DriveType,64 diff --git a/libc/nt/shell32/DuplicateIcon.s b/libc/nt/shell32/DuplicateIcon.s new file mode 100644 index 000000000..e948ad17d --- /dev/null +++ b/libc/nt/shell32/DuplicateIcon.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_DuplicateIcon,DuplicateIcon,292 diff --git a/libc/nt/shell32/ExtractAssociatedIconExW.s b/libc/nt/shell32/ExtractAssociatedIconExW.s new file mode 100644 index 000000000..efca3a1c1 --- /dev/null +++ b/libc/nt/shell32/ExtractAssociatedIconExW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_ExtractAssociatedIconExW,ExtractAssociatedIconExW,295 diff --git a/libc/nt/shell32/ExtractAssociatedIconW.s b/libc/nt/shell32/ExtractAssociatedIconW.s new file mode 100644 index 000000000..bc5444fc7 --- /dev/null +++ b/libc/nt/shell32/ExtractAssociatedIconW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_ExtractAssociatedIconW,ExtractAssociatedIconW,296 diff --git a/libc/nt/shell32/ExtractIconExW.s b/libc/nt/shell32/ExtractIconExW.s new file mode 100644 index 000000000..08ff5754d --- /dev/null +++ b/libc/nt/shell32/ExtractIconExW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_ExtractIconExW,ExtractIconExW,300 diff --git a/libc/nt/shell32/ExtractIconW.s b/libc/nt/shell32/ExtractIconW.s new file mode 100644 index 000000000..7b6754320 --- /dev/null +++ b/libc/nt/shell32/ExtractIconW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_ExtractIconW,ExtractIconW,301 diff --git a/libc/nt/shell32/FindExecutableW.s b/libc/nt/shell32/FindExecutableW.s new file mode 100644 index 000000000..54a849274 --- /dev/null +++ b/libc/nt/shell32/FindExecutableW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_FindExecutableW,FindExecutableW,303 diff --git a/libc/nt/shell32/FreeIconList.s b/libc/nt/shell32/FreeIconList.s new file mode 100644 index 000000000..741c27b27 --- /dev/null +++ b/libc/nt/shell32/FreeIconList.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_FreeIconList,FreeIconList,304 diff --git a/libc/nt/shell32/GetCurrentProcessExplicitAppUserModelID.s b/libc/nt/shell32/GetCurrentProcessExplicitAppUserModelID.s new file mode 100644 index 000000000..449479311 --- /dev/null +++ b/libc/nt/shell32/GetCurrentProcessExplicitAppUserModelID.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_GetCurrentProcessExplicitAppUserModelID,GetCurrentProcessExplicitAppUserModelID,305 diff --git a/libc/nt/shell32/GetFileNameFromBrowse.s b/libc/nt/shell32/GetFileNameFromBrowse.s new file mode 100644 index 000000000..b88a0e9b0 --- /dev/null +++ b/libc/nt/shell32/GetFileNameFromBrowse.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_GetFileNameFromBrowse,GetFileNameFromBrowse,63 diff --git a/libc/nt/shell32/GetSystemPersistedStorageItemList.s b/libc/nt/shell32/GetSystemPersistedStorageItemList.s new file mode 100644 index 000000000..5e624653b --- /dev/null +++ b/libc/nt/shell32/GetSystemPersistedStorageItemList.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_GetSystemPersistedStorageItemList,GetSystemPersistedStorageItemList,919 diff --git a/libc/nt/shell32/ILAppendID.s b/libc/nt/shell32/ILAppendID.s new file mode 100644 index 000000000..7d4acc8d1 --- /dev/null +++ b/libc/nt/shell32/ILAppendID.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_ILAppendID,ILAppendID,154 diff --git a/libc/nt/shell32/ILClone.s b/libc/nt/shell32/ILClone.s new file mode 100644 index 000000000..e77f46b42 --- /dev/null +++ b/libc/nt/shell32/ILClone.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_ILClone,ILClone,18 diff --git a/libc/nt/shell32/ILCloneFirst.s b/libc/nt/shell32/ILCloneFirst.s new file mode 100644 index 000000000..1841c475b --- /dev/null +++ b/libc/nt/shell32/ILCloneFirst.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_ILCloneFirst,ILCloneFirst,19 diff --git a/libc/nt/shell32/ILCombine.s b/libc/nt/shell32/ILCombine.s new file mode 100644 index 000000000..7dbf9f9f3 --- /dev/null +++ b/libc/nt/shell32/ILCombine.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_ILCombine,ILCombine,25 diff --git a/libc/nt/shell32/ILCreateFromPathW.s b/libc/nt/shell32/ILCreateFromPathW.s new file mode 100644 index 000000000..f514fc4f3 --- /dev/null +++ b/libc/nt/shell32/ILCreateFromPathW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_ILCreateFromPathW,ILCreateFromPathW,190 diff --git a/libc/nt/shell32/ILFindChild.s b/libc/nt/shell32/ILFindChild.s new file mode 100644 index 000000000..8a6886426 --- /dev/null +++ b/libc/nt/shell32/ILFindChild.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_ILFindChild,ILFindChild,24 diff --git a/libc/nt/shell32/ILFindLastID.s b/libc/nt/shell32/ILFindLastID.s new file mode 100644 index 000000000..62b7cdadb --- /dev/null +++ b/libc/nt/shell32/ILFindLastID.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_ILFindLastID,ILFindLastID,16 diff --git a/libc/nt/shell32/ILFree.s b/libc/nt/shell32/ILFree.s new file mode 100644 index 000000000..6a1cfb51b --- /dev/null +++ b/libc/nt/shell32/ILFree.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_ILFree,ILFree,155 diff --git a/libc/nt/shell32/ILGetNext.s b/libc/nt/shell32/ILGetNext.s new file mode 100644 index 000000000..a1565256c --- /dev/null +++ b/libc/nt/shell32/ILGetNext.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_ILGetNext,ILGetNext,153 diff --git a/libc/nt/shell32/ILGetSize.s b/libc/nt/shell32/ILGetSize.s new file mode 100644 index 000000000..7063072dc --- /dev/null +++ b/libc/nt/shell32/ILGetSize.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_ILGetSize,ILGetSize,152 diff --git a/libc/nt/shell32/ILIsEqual.s b/libc/nt/shell32/ILIsEqual.s new file mode 100644 index 000000000..2c374ccac --- /dev/null +++ b/libc/nt/shell32/ILIsEqual.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_ILIsEqual,ILIsEqual,21 diff --git a/libc/nt/shell32/ILIsParent.s b/libc/nt/shell32/ILIsParent.s new file mode 100644 index 000000000..b53111d52 --- /dev/null +++ b/libc/nt/shell32/ILIsParent.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_ILIsParent,ILIsParent,23 diff --git a/libc/nt/shell32/ILLoadFromStreamEx.s b/libc/nt/shell32/ILLoadFromStreamEx.s new file mode 100644 index 000000000..78371b173 --- /dev/null +++ b/libc/nt/shell32/ILLoadFromStreamEx.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_ILLoadFromStreamEx,ILLoadFromStreamEx,846 diff --git a/libc/nt/shell32/ILRemoveLastID.s b/libc/nt/shell32/ILRemoveLastID.s new file mode 100644 index 000000000..c51ab1a99 --- /dev/null +++ b/libc/nt/shell32/ILRemoveLastID.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_ILRemoveLastID,ILRemoveLastID,17 diff --git a/libc/nt/shell32/ILSaveToStream.s b/libc/nt/shell32/ILSaveToStream.s new file mode 100644 index 000000000..4ea8520f5 --- /dev/null +++ b/libc/nt/shell32/ILSaveToStream.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_ILSaveToStream,ILSaveToStream,27 diff --git a/libc/nt/shell32/InitNetworkAddressControl.s b/libc/nt/shell32/InitNetworkAddressControl.s new file mode 100644 index 000000000..c28b1eafd --- /dev/null +++ b/libc/nt/shell32/InitNetworkAddressControl.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_InitNetworkAddressControl,InitNetworkAddressControl,306 diff --git a/libc/nt/shell32/InternalExtractIconListW.s b/libc/nt/shell32/InternalExtractIconListW.s new file mode 100644 index 000000000..e0c68f125 --- /dev/null +++ b/libc/nt/shell32/InternalExtractIconListW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_InternalExtractIconListW,InternalExtractIconListW,308 diff --git a/libc/nt/shell32/IsDesktopExplorerProcess.s b/libc/nt/shell32/IsDesktopExplorerProcess.s new file mode 100644 index 000000000..158ac44d5 --- /dev/null +++ b/libc/nt/shell32/IsDesktopExplorerProcess.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_IsDesktopExplorerProcess,IsDesktopExplorerProcess,942 diff --git a/libc/nt/shell32/IsLFNDriveW.s b/libc/nt/shell32/IsLFNDriveW.s new file mode 100644 index 000000000..fe8b67090 --- /dev/null +++ b/libc/nt/shell32/IsLFNDriveW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_IsLFNDriveW,IsLFNDriveW,42 diff --git a/libc/nt/shell32/IsNetDrive.s b/libc/nt/shell32/IsNetDrive.s new file mode 100644 index 000000000..d5623837d --- /dev/null +++ b/libc/nt/shell32/IsNetDrive.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_IsNetDrive,IsNetDrive,66 diff --git a/libc/nt/shell32/IsProcessAnExplorer.s b/libc/nt/shell32/IsProcessAnExplorer.s new file mode 100644 index 000000000..04e05a618 --- /dev/null +++ b/libc/nt/shell32/IsProcessAnExplorer.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_IsProcessAnExplorer,IsProcessAnExplorer,941 diff --git a/libc/nt/shell32/IsUserAnAdmin.s b/libc/nt/shell32/IsUserAnAdmin.s new file mode 100644 index 000000000..cc3602583 --- /dev/null +++ b/libc/nt/shell32/IsUserAnAdmin.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_IsUserAnAdmin,IsUserAnAdmin,680 diff --git a/libc/nt/shell32/LaunchMSHelp_RunDLLW.s b/libc/nt/shell32/LaunchMSHelp_RunDLLW.s new file mode 100644 index 000000000..db55f4801 --- /dev/null +++ b/libc/nt/shell32/LaunchMSHelp_RunDLLW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_LaunchMSHelp_RunDLLW,LaunchMSHelp_RunDLLW,309 diff --git a/libc/nt/shell32/OpenAs_RunDLL.s b/libc/nt/shell32/OpenAs_RunDLL.s new file mode 100644 index 000000000..994ac6d83 --- /dev/null +++ b/libc/nt/shell32/OpenAs_RunDLL.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_OpenAs_RunDLL,OpenAs_RunDLL,81 diff --git a/libc/nt/shell32/OpenAs_RunDLLW.s b/libc/nt/shell32/OpenAs_RunDLLW.s new file mode 100644 index 000000000..be2fe39d3 --- /dev/null +++ b/libc/nt/shell32/OpenAs_RunDLLW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_OpenAs_RunDLLW,OpenAs_RunDLLW,133 diff --git a/libc/nt/shell32/OpenRegStream.s b/libc/nt/shell32/OpenRegStream.s new file mode 100644 index 000000000..2498dfa07 --- /dev/null +++ b/libc/nt/shell32/OpenRegStream.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_OpenRegStream,OpenRegStream,85 diff --git a/libc/nt/shell32/Options_RunDLL.s b/libc/nt/shell32/Options_RunDLL.s new file mode 100644 index 000000000..4d228482e --- /dev/null +++ b/libc/nt/shell32/Options_RunDLL.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_Options_RunDLL,Options_RunDLL,310 diff --git a/libc/nt/shell32/Options_RunDLLW.s b/libc/nt/shell32/Options_RunDLLW.s new file mode 100644 index 000000000..6e3e70cbe --- /dev/null +++ b/libc/nt/shell32/Options_RunDLLW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_Options_RunDLLW,Options_RunDLLW,312 diff --git a/libc/nt/shell32/PathCleanupSpec.s b/libc/nt/shell32/PathCleanupSpec.s new file mode 100644 index 000000000..17479546c --- /dev/null +++ b/libc/nt/shell32/PathCleanupSpec.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_PathCleanupSpec,PathCleanupSpec,171 diff --git a/libc/nt/shell32/PathGetShortPath.s b/libc/nt/shell32/PathGetShortPath.s new file mode 100644 index 000000000..aff92c957 --- /dev/null +++ b/libc/nt/shell32/PathGetShortPath.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_PathGetShortPath,PathGetShortPath,92 diff --git a/libc/nt/shell32/PathIsExe.s b/libc/nt/shell32/PathIsExe.s new file mode 100644 index 000000000..6c4bfa026 --- /dev/null +++ b/libc/nt/shell32/PathIsExe.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_PathIsExe,PathIsExe,43 diff --git a/libc/nt/shell32/PathIsSlowW.s b/libc/nt/shell32/PathIsSlowW.s new file mode 100644 index 000000000..df31cc39a --- /dev/null +++ b/libc/nt/shell32/PathIsSlowW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_PathIsSlowW,PathIsSlowW,239 diff --git a/libc/nt/shell32/PathMakeUniqueName.s b/libc/nt/shell32/PathMakeUniqueName.s new file mode 100644 index 000000000..61cf19c85 --- /dev/null +++ b/libc/nt/shell32/PathMakeUniqueName.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_PathMakeUniqueName,PathMakeUniqueName,47 diff --git a/libc/nt/shell32/PathQualify.s b/libc/nt/shell32/PathQualify.s new file mode 100644 index 000000000..c51e5afff --- /dev/null +++ b/libc/nt/shell32/PathQualify.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_PathQualify,PathQualify,49 diff --git a/libc/nt/shell32/PathResolve.s b/libc/nt/shell32/PathResolve.s new file mode 100644 index 000000000..2415c9d05 --- /dev/null +++ b/libc/nt/shell32/PathResolve.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_PathResolve,PathResolve,51 diff --git a/libc/nt/shell32/PathYetAnotherMakeUniqueName.s b/libc/nt/shell32/PathYetAnotherMakeUniqueName.s new file mode 100644 index 000000000..70be47e5b --- /dev/null +++ b/libc/nt/shell32/PathYetAnotherMakeUniqueName.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_PathYetAnotherMakeUniqueName,PathYetAnotherMakeUniqueName,75 diff --git a/libc/nt/shell32/PickIconDlg.s b/libc/nt/shell32/PickIconDlg.s new file mode 100644 index 000000000..22c54ec45 --- /dev/null +++ b/libc/nt/shell32/PickIconDlg.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_PickIconDlg,PickIconDlg,62 diff --git a/libc/nt/shell32/PifMgr_CloseProperties.s b/libc/nt/shell32/PifMgr_CloseProperties.s new file mode 100644 index 000000000..e0879d22e --- /dev/null +++ b/libc/nt/shell32/PifMgr_CloseProperties.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_PifMgr_CloseProperties,PifMgr_CloseProperties,13 diff --git a/libc/nt/shell32/PifMgr_GetProperties.s b/libc/nt/shell32/PifMgr_GetProperties.s new file mode 100644 index 000000000..4e5207e0e --- /dev/null +++ b/libc/nt/shell32/PifMgr_GetProperties.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_PifMgr_GetProperties,PifMgr_GetProperties,10 diff --git a/libc/nt/shell32/PifMgr_OpenProperties.s b/libc/nt/shell32/PifMgr_OpenProperties.s new file mode 100644 index 000000000..654829430 --- /dev/null +++ b/libc/nt/shell32/PifMgr_OpenProperties.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_PifMgr_OpenProperties,PifMgr_OpenProperties,9 diff --git a/libc/nt/shell32/PifMgr_SetProperties.s b/libc/nt/shell32/PifMgr_SetProperties.s new file mode 100644 index 000000000..52c403542 --- /dev/null +++ b/libc/nt/shell32/PifMgr_SetProperties.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_PifMgr_SetProperties,PifMgr_SetProperties,11 diff --git a/libc/nt/shell32/PrepareDiscForBurnRunDllW.s b/libc/nt/shell32/PrepareDiscForBurnRunDllW.s new file mode 100644 index 000000000..b839f8957 --- /dev/null +++ b/libc/nt/shell32/PrepareDiscForBurnRunDllW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_PrepareDiscForBurnRunDllW,PrepareDiscForBurnRunDllW,135 diff --git a/libc/nt/shell32/PrintersGetCommand_RunDLL.s b/libc/nt/shell32/PrintersGetCommand_RunDLL.s new file mode 100644 index 000000000..f7ed2f731 --- /dev/null +++ b/libc/nt/shell32/PrintersGetCommand_RunDLL.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_PrintersGetCommand_RunDLL,PrintersGetCommand_RunDLL,138 diff --git a/libc/nt/shell32/PrintersGetCommand_RunDLLW.s b/libc/nt/shell32/PrintersGetCommand_RunDLLW.s new file mode 100644 index 000000000..5f1ef2757 --- /dev/null +++ b/libc/nt/shell32/PrintersGetCommand_RunDLLW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_PrintersGetCommand_RunDLLW,PrintersGetCommand_RunDLLW,150 diff --git a/libc/nt/shell32/ReadCabinetState.s b/libc/nt/shell32/ReadCabinetState.s new file mode 100644 index 000000000..aa0b86320 --- /dev/null +++ b/libc/nt/shell32/ReadCabinetState.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_ReadCabinetState,ReadCabinetState,654 diff --git a/libc/nt/shell32/RealDriveType.s b/libc/nt/shell32/RealDriveType.s new file mode 100644 index 000000000..1f895229b --- /dev/null +++ b/libc/nt/shell32/RealDriveType.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_RealDriveType,RealDriveType,524 diff --git a/libc/nt/shell32/RealShellExecuteExW.s b/libc/nt/shell32/RealShellExecuteExW.s new file mode 100644 index 000000000..d6836cd53 --- /dev/null +++ b/libc/nt/shell32/RealShellExecuteExW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_RealShellExecuteExW,RealShellExecuteExW,208 diff --git a/libc/nt/shell32/RealShellExecuteW.s b/libc/nt/shell32/RealShellExecuteW.s new file mode 100644 index 000000000..247669af6 --- /dev/null +++ b/libc/nt/shell32/RealShellExecuteW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_RealShellExecuteW,RealShellExecuteW,226 diff --git a/libc/nt/shell32/RegenerateUserEnvironment.s b/libc/nt/shell32/RegenerateUserEnvironment.s new file mode 100644 index 000000000..56851c0ff --- /dev/null +++ b/libc/nt/shell32/RegenerateUserEnvironment.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_RegenerateUserEnvironment,RegenerateUserEnvironment,313 diff --git a/libc/nt/shell32/RestartDialog.s b/libc/nt/shell32/RestartDialog.s new file mode 100644 index 000000000..738c1d894 --- /dev/null +++ b/libc/nt/shell32/RestartDialog.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_RestartDialog,RestartDialog,59 diff --git a/libc/nt/shell32/RestartDialogEx.s b/libc/nt/shell32/RestartDialogEx.s new file mode 100644 index 000000000..16fadf48c --- /dev/null +++ b/libc/nt/shell32/RestartDialogEx.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_RestartDialogEx,RestartDialogEx,730 diff --git a/libc/nt/shell32/RunAsNewUser_RunDLLW.s b/libc/nt/shell32/RunAsNewUser_RunDLLW.s new file mode 100644 index 000000000..9ed51c5d3 --- /dev/null +++ b/libc/nt/shell32/RunAsNewUser_RunDLLW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_RunAsNewUser_RunDLLW,RunAsNewUser_RunDLLW,314 diff --git a/libc/nt/shell32/SHAddDefaultPropertiesByExt.s b/libc/nt/shell32/SHAddDefaultPropertiesByExt.s new file mode 100644 index 000000000..619ac1651 --- /dev/null +++ b/libc/nt/shell32/SHAddDefaultPropertiesByExt.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHAddDefaultPropertiesByExt,SHAddDefaultPropertiesByExt,315 diff --git a/libc/nt/shell32/SHAddFromPropSheetExtArray.s b/libc/nt/shell32/SHAddFromPropSheetExtArray.s new file mode 100644 index 000000000..9e68a8ec5 --- /dev/null +++ b/libc/nt/shell32/SHAddFromPropSheetExtArray.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHAddFromPropSheetExtArray,SHAddFromPropSheetExtArray,167 diff --git a/libc/nt/shell32/SHAddToRecentDocs.s b/libc/nt/shell32/SHAddToRecentDocs.s new file mode 100644 index 000000000..70b66db33 --- /dev/null +++ b/libc/nt/shell32/SHAddToRecentDocs.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHAddToRecentDocs,SHAddToRecentDocs,316 diff --git a/libc/nt/shell32/SHAlloc.s b/libc/nt/shell32/SHAlloc.s new file mode 100644 index 000000000..a3f7d019f --- /dev/null +++ b/libc/nt/shell32/SHAlloc.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHAlloc,SHAlloc,196 diff --git a/libc/nt/shell32/SHAppBarMessage.s b/libc/nt/shell32/SHAppBarMessage.s new file mode 100644 index 000000000..86b01b4d2 --- /dev/null +++ b/libc/nt/shell32/SHAppBarMessage.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHAppBarMessage,SHAppBarMessage,317 diff --git a/libc/nt/shell32/SHAssocEnumHandlers.s b/libc/nt/shell32/SHAssocEnumHandlers.s new file mode 100644 index 000000000..5019a3ea8 --- /dev/null +++ b/libc/nt/shell32/SHAssocEnumHandlers.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHAssocEnumHandlers,SHAssocEnumHandlers,318 diff --git a/libc/nt/shell32/SHAssocEnumHandlersForProtocolByApplication.s b/libc/nt/shell32/SHAssocEnumHandlersForProtocolByApplication.s new file mode 100644 index 000000000..d5bce1681 --- /dev/null +++ b/libc/nt/shell32/SHAssocEnumHandlersForProtocolByApplication.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHAssocEnumHandlersForProtocolByApplication,SHAssocEnumHandlersForProtocolByApplication,319 diff --git a/libc/nt/shell32/SHBindToFolderIDListParent.s b/libc/nt/shell32/SHBindToFolderIDListParent.s new file mode 100644 index 000000000..1d0978847 --- /dev/null +++ b/libc/nt/shell32/SHBindToFolderIDListParent.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHBindToFolderIDListParent,SHBindToFolderIDListParent,320 diff --git a/libc/nt/shell32/SHBindToFolderIDListParentEx.s b/libc/nt/shell32/SHBindToFolderIDListParentEx.s new file mode 100644 index 000000000..19d3374f5 --- /dev/null +++ b/libc/nt/shell32/SHBindToFolderIDListParentEx.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHBindToFolderIDListParentEx,SHBindToFolderIDListParentEx,321 diff --git a/libc/nt/shell32/SHBindToObject.s b/libc/nt/shell32/SHBindToObject.s new file mode 100644 index 000000000..021ecedd2 --- /dev/null +++ b/libc/nt/shell32/SHBindToObject.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHBindToObject,SHBindToObject,322 diff --git a/libc/nt/shell32/SHBindToParent.s b/libc/nt/shell32/SHBindToParent.s new file mode 100644 index 000000000..614c16587 --- /dev/null +++ b/libc/nt/shell32/SHBindToParent.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHBindToParent,SHBindToParent,323 diff --git a/libc/nt/shell32/SHBrowseForFolderW.s b/libc/nt/shell32/SHBrowseForFolderW.s new file mode 100644 index 000000000..036908c6e --- /dev/null +++ b/libc/nt/shell32/SHBrowseForFolderW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHBrowseForFolderW,SHBrowseForFolderW,326 diff --git a/libc/nt/shell32/SHCLSIDFromString.s b/libc/nt/shell32/SHCLSIDFromString.s new file mode 100644 index 000000000..e2c26a1dc --- /dev/null +++ b/libc/nt/shell32/SHCLSIDFromString.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHCLSIDFromString,SHCLSIDFromString,147 diff --git a/libc/nt/shell32/SHChangeNotification_Lock.s b/libc/nt/shell32/SHChangeNotification_Lock.s new file mode 100644 index 000000000..930ef7d48 --- /dev/null +++ b/libc/nt/shell32/SHChangeNotification_Lock.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHChangeNotification_Lock,SHChangeNotification_Lock,644 diff --git a/libc/nt/shell32/SHChangeNotification_Unlock.s b/libc/nt/shell32/SHChangeNotification_Unlock.s new file mode 100644 index 000000000..175eca587 --- /dev/null +++ b/libc/nt/shell32/SHChangeNotification_Unlock.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHChangeNotification_Unlock,SHChangeNotification_Unlock,645 diff --git a/libc/nt/shell32/SHChangeNotify.s b/libc/nt/shell32/SHChangeNotify.s new file mode 100644 index 000000000..c15a67b74 --- /dev/null +++ b/libc/nt/shell32/SHChangeNotify.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHChangeNotify,SHChangeNotify,327 diff --git a/libc/nt/shell32/SHChangeNotifyDeregister.s b/libc/nt/shell32/SHChangeNotifyDeregister.s new file mode 100644 index 000000000..96f7d177f --- /dev/null +++ b/libc/nt/shell32/SHChangeNotifyDeregister.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHChangeNotifyDeregister,SHChangeNotifyDeregister,4 diff --git a/libc/nt/shell32/SHChangeNotifyRegister.s b/libc/nt/shell32/SHChangeNotifyRegister.s new file mode 100644 index 000000000..47597afab --- /dev/null +++ b/libc/nt/shell32/SHChangeNotifyRegister.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHChangeNotifyRegister,SHChangeNotifyRegister,2 diff --git a/libc/nt/shell32/SHChangeNotifyRegisterThread.s b/libc/nt/shell32/SHChangeNotifyRegisterThread.s new file mode 100644 index 000000000..43ad789a8 --- /dev/null +++ b/libc/nt/shell32/SHChangeNotifyRegisterThread.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHChangeNotifyRegisterThread,SHChangeNotifyRegisterThread,328 diff --git a/libc/nt/shell32/SHChangeNotifySuspendResume.s b/libc/nt/shell32/SHChangeNotifySuspendResume.s new file mode 100644 index 000000000..1a471b3fa --- /dev/null +++ b/libc/nt/shell32/SHChangeNotifySuspendResume.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHChangeNotifySuspendResume,SHChangeNotifySuspendResume,329 diff --git a/libc/nt/shell32/SHCloneSpecialIDList.s b/libc/nt/shell32/SHCloneSpecialIDList.s new file mode 100644 index 000000000..db9a143e5 --- /dev/null +++ b/libc/nt/shell32/SHCloneSpecialIDList.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHCloneSpecialIDList,SHCloneSpecialIDList,89 diff --git a/libc/nt/shell32/SHCoCreateInstanceWorker.s b/libc/nt/shell32/SHCoCreateInstanceWorker.s new file mode 100644 index 000000000..c1966b0da --- /dev/null +++ b/libc/nt/shell32/SHCoCreateInstanceWorker.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHCoCreateInstanceWorker,SHCoCreateInstanceWorker,330 diff --git a/libc/nt/shell32/SHCreateAssociationRegistration.s b/libc/nt/shell32/SHCreateAssociationRegistration.s new file mode 100644 index 000000000..28d28529b --- /dev/null +++ b/libc/nt/shell32/SHCreateAssociationRegistration.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHCreateAssociationRegistration,SHCreateAssociationRegistration,331 diff --git a/libc/nt/shell32/SHCreateCategoryEnum.s b/libc/nt/shell32/SHCreateCategoryEnum.s new file mode 100644 index 000000000..11e6a3a80 --- /dev/null +++ b/libc/nt/shell32/SHCreateCategoryEnum.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHCreateCategoryEnum,SHCreateCategoryEnum,332 diff --git a/libc/nt/shell32/SHCreateDataObject.s b/libc/nt/shell32/SHCreateDataObject.s new file mode 100644 index 000000000..a4599effb --- /dev/null +++ b/libc/nt/shell32/SHCreateDataObject.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHCreateDataObject,SHCreateDataObject,333 diff --git a/libc/nt/shell32/SHCreateDefaultContextMenu.s b/libc/nt/shell32/SHCreateDefaultContextMenu.s new file mode 100644 index 000000000..e955c0770 --- /dev/null +++ b/libc/nt/shell32/SHCreateDefaultContextMenu.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHCreateDefaultContextMenu,SHCreateDefaultContextMenu,334 diff --git a/libc/nt/shell32/SHCreateDefaultExtractIcon.s b/libc/nt/shell32/SHCreateDefaultExtractIcon.s new file mode 100644 index 000000000..8866eae98 --- /dev/null +++ b/libc/nt/shell32/SHCreateDefaultExtractIcon.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHCreateDefaultExtractIcon,SHCreateDefaultExtractIcon,335 diff --git a/libc/nt/shell32/SHCreateDefaultPropertiesOp.s b/libc/nt/shell32/SHCreateDefaultPropertiesOp.s new file mode 100644 index 000000000..d15642a7e --- /dev/null +++ b/libc/nt/shell32/SHCreateDefaultPropertiesOp.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHCreateDefaultPropertiesOp,SHCreateDefaultPropertiesOp,336 diff --git a/libc/nt/shell32/SHCreateDirectory.s b/libc/nt/shell32/SHCreateDirectory.s new file mode 100644 index 000000000..93af63854 --- /dev/null +++ b/libc/nt/shell32/SHCreateDirectory.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHCreateDirectory,SHCreateDirectory,165 diff --git a/libc/nt/shell32/SHCreateDirectoryExW.s b/libc/nt/shell32/SHCreateDirectoryExW.s new file mode 100644 index 000000000..9509b8cc4 --- /dev/null +++ b/libc/nt/shell32/SHCreateDirectoryExW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHCreateDirectoryExW,SHCreateDirectoryExW,338 diff --git a/libc/nt/shell32/SHCreateDrvExtIcon.s b/libc/nt/shell32/SHCreateDrvExtIcon.s new file mode 100644 index 000000000..539835446 --- /dev/null +++ b/libc/nt/shell32/SHCreateDrvExtIcon.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHCreateDrvExtIcon,SHCreateDrvExtIcon,339 diff --git a/libc/nt/shell32/SHCreateFileExtractIconW.s b/libc/nt/shell32/SHCreateFileExtractIconW.s new file mode 100644 index 000000000..91e0630e1 --- /dev/null +++ b/libc/nt/shell32/SHCreateFileExtractIconW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHCreateFileExtractIconW,SHCreateFileExtractIconW,743 diff --git a/libc/nt/shell32/SHCreateItemFromIDList.s b/libc/nt/shell32/SHCreateItemFromIDList.s new file mode 100644 index 000000000..a7f993090 --- /dev/null +++ b/libc/nt/shell32/SHCreateItemFromIDList.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHCreateItemFromIDList,SHCreateItemFromIDList,340 diff --git a/libc/nt/shell32/SHCreateItemFromParsingName.s b/libc/nt/shell32/SHCreateItemFromParsingName.s new file mode 100644 index 000000000..48725bd94 --- /dev/null +++ b/libc/nt/shell32/SHCreateItemFromParsingName.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHCreateItemFromParsingName,SHCreateItemFromParsingName,341 diff --git a/libc/nt/shell32/SHCreateItemFromRelativeName.s b/libc/nt/shell32/SHCreateItemFromRelativeName.s new file mode 100644 index 000000000..d8135b184 --- /dev/null +++ b/libc/nt/shell32/SHCreateItemFromRelativeName.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHCreateItemFromRelativeName,SHCreateItemFromRelativeName,342 diff --git a/libc/nt/shell32/SHCreateItemInKnownFolder.s b/libc/nt/shell32/SHCreateItemInKnownFolder.s new file mode 100644 index 000000000..867598131 --- /dev/null +++ b/libc/nt/shell32/SHCreateItemInKnownFolder.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHCreateItemInKnownFolder,SHCreateItemInKnownFolder,343 diff --git a/libc/nt/shell32/SHCreateItemWithParent.s b/libc/nt/shell32/SHCreateItemWithParent.s new file mode 100644 index 000000000..a7d3096b1 --- /dev/null +++ b/libc/nt/shell32/SHCreateItemWithParent.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHCreateItemWithParent,SHCreateItemWithParent,344 diff --git a/libc/nt/shell32/SHCreateLocalServerRunDll.s b/libc/nt/shell32/SHCreateLocalServerRunDll.s new file mode 100644 index 000000000..228e1cabe --- /dev/null +++ b/libc/nt/shell32/SHCreateLocalServerRunDll.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHCreateLocalServerRunDll,SHCreateLocalServerRunDll,345 diff --git a/libc/nt/shell32/SHCreateProcessAsUserW.s b/libc/nt/shell32/SHCreateProcessAsUserW.s new file mode 100644 index 000000000..08d45e6c9 --- /dev/null +++ b/libc/nt/shell32/SHCreateProcessAsUserW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHCreateProcessAsUserW,SHCreateProcessAsUserW,346 diff --git a/libc/nt/shell32/SHCreatePropSheetExtArray.s b/libc/nt/shell32/SHCreatePropSheetExtArray.s new file mode 100644 index 000000000..07c81e577 --- /dev/null +++ b/libc/nt/shell32/SHCreatePropSheetExtArray.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHCreatePropSheetExtArray,SHCreatePropSheetExtArray,168 diff --git a/libc/nt/shell32/SHCreateQueryCancelAutoPlayMoniker.s b/libc/nt/shell32/SHCreateQueryCancelAutoPlayMoniker.s new file mode 100644 index 000000000..e1ec6c21a --- /dev/null +++ b/libc/nt/shell32/SHCreateQueryCancelAutoPlayMoniker.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHCreateQueryCancelAutoPlayMoniker,SHCreateQueryCancelAutoPlayMoniker,347 diff --git a/libc/nt/shell32/SHCreateShellFolderView.s b/libc/nt/shell32/SHCreateShellFolderView.s new file mode 100644 index 000000000..eb433ff03 --- /dev/null +++ b/libc/nt/shell32/SHCreateShellFolderView.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHCreateShellFolderView,SHCreateShellFolderView,256 diff --git a/libc/nt/shell32/SHCreateShellFolderViewEx.s b/libc/nt/shell32/SHCreateShellFolderViewEx.s new file mode 100644 index 000000000..ceee0cc85 --- /dev/null +++ b/libc/nt/shell32/SHCreateShellFolderViewEx.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHCreateShellFolderViewEx,SHCreateShellFolderViewEx,174 diff --git a/libc/nt/shell32/SHCreateShellItem.s b/libc/nt/shell32/SHCreateShellItem.s new file mode 100644 index 000000000..c95fdc255 --- /dev/null +++ b/libc/nt/shell32/SHCreateShellItem.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHCreateShellItem,SHCreateShellItem,348 diff --git a/libc/nt/shell32/SHCreateShellItemArray.s b/libc/nt/shell32/SHCreateShellItemArray.s new file mode 100644 index 000000000..8a30d9543 --- /dev/null +++ b/libc/nt/shell32/SHCreateShellItemArray.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHCreateShellItemArray,SHCreateShellItemArray,349 diff --git a/libc/nt/shell32/SHCreateShellItemArrayFromDataObject.s b/libc/nt/shell32/SHCreateShellItemArrayFromDataObject.s new file mode 100644 index 000000000..ff5b9dd38 --- /dev/null +++ b/libc/nt/shell32/SHCreateShellItemArrayFromDataObject.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHCreateShellItemArrayFromDataObject,SHCreateShellItemArrayFromDataObject,350 diff --git a/libc/nt/shell32/SHCreateShellItemArrayFromIDLists.s b/libc/nt/shell32/SHCreateShellItemArrayFromIDLists.s new file mode 100644 index 000000000..70473a053 --- /dev/null +++ b/libc/nt/shell32/SHCreateShellItemArrayFromIDLists.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHCreateShellItemArrayFromIDLists,SHCreateShellItemArrayFromIDLists,351 diff --git a/libc/nt/shell32/SHCreateShellItemArrayFromShellItem.s b/libc/nt/shell32/SHCreateShellItemArrayFromShellItem.s new file mode 100644 index 000000000..bed032c4b --- /dev/null +++ b/libc/nt/shell32/SHCreateShellItemArrayFromShellItem.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHCreateShellItemArrayFromShellItem,SHCreateShellItemArrayFromShellItem,352 diff --git a/libc/nt/shell32/SHCreateStdEnumFmtEtc.s b/libc/nt/shell32/SHCreateStdEnumFmtEtc.s new file mode 100644 index 000000000..68c60d394 --- /dev/null +++ b/libc/nt/shell32/SHCreateStdEnumFmtEtc.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHCreateStdEnumFmtEtc,SHCreateStdEnumFmtEtc,74 diff --git a/libc/nt/shell32/SHDefExtractIconW.s b/libc/nt/shell32/SHDefExtractIconW.s new file mode 100644 index 000000000..7b030bea3 --- /dev/null +++ b/libc/nt/shell32/SHDefExtractIconW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHDefExtractIconW,SHDefExtractIconW,6 diff --git a/libc/nt/shell32/SHDestroyPropSheetExtArray.s b/libc/nt/shell32/SHDestroyPropSheetExtArray.s new file mode 100644 index 000000000..4c9bcdd29 --- /dev/null +++ b/libc/nt/shell32/SHDestroyPropSheetExtArray.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHDestroyPropSheetExtArray,SHDestroyPropSheetExtArray,169 diff --git a/libc/nt/shell32/SHDoDragDrop.s b/libc/nt/shell32/SHDoDragDrop.s new file mode 100644 index 000000000..3ac0a7689 --- /dev/null +++ b/libc/nt/shell32/SHDoDragDrop.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHDoDragDrop,SHDoDragDrop,88 diff --git a/libc/nt/shell32/SHEmptyRecycleBinW.s b/libc/nt/shell32/SHEmptyRecycleBinW.s new file mode 100644 index 000000000..69b5fa500 --- /dev/null +++ b/libc/nt/shell32/SHEmptyRecycleBinW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHEmptyRecycleBinW,SHEmptyRecycleBinW,487 diff --git a/libc/nt/shell32/SHEnableServiceObject.s b/libc/nt/shell32/SHEnableServiceObject.s new file mode 100644 index 000000000..426fc8789 --- /dev/null +++ b/libc/nt/shell32/SHEnableServiceObject.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHEnableServiceObject,SHEnableServiceObject,488 diff --git a/libc/nt/shell32/SHEnumerateUnreadMailAccountsW.s b/libc/nt/shell32/SHEnumerateUnreadMailAccountsW.s new file mode 100644 index 000000000..51e96cb6f --- /dev/null +++ b/libc/nt/shell32/SHEnumerateUnreadMailAccountsW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHEnumerateUnreadMailAccountsW,SHEnumerateUnreadMailAccountsW,489 diff --git a/libc/nt/shell32/SHEvaluateSystemCommandTemplate.s b/libc/nt/shell32/SHEvaluateSystemCommandTemplate.s new file mode 100644 index 000000000..b6ea37d36 --- /dev/null +++ b/libc/nt/shell32/SHEvaluateSystemCommandTemplate.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHEvaluateSystemCommandTemplate,SHEvaluateSystemCommandTemplate,490 diff --git a/libc/nt/shell32/SHExtractIconsW.s b/libc/nt/shell32/SHExtractIconsW.s new file mode 100644 index 000000000..0cfd6b920 --- /dev/null +++ b/libc/nt/shell32/SHExtractIconsW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHExtractIconsW,SHExtractIconsW,491 diff --git a/libc/nt/shell32/SHFileOperationW.s b/libc/nt/shell32/SHFileOperationW.s new file mode 100644 index 000000000..f01d6b866 --- /dev/null +++ b/libc/nt/shell32/SHFileOperationW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHFileOperationW,SHFileOperationW,494 diff --git a/libc/nt/shell32/SHFindFiles.s b/libc/nt/shell32/SHFindFiles.s new file mode 100644 index 000000000..f2c770e7e --- /dev/null +++ b/libc/nt/shell32/SHFindFiles.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHFindFiles,SHFindFiles,90 diff --git a/libc/nt/shell32/SHFind_InitMenuPopup.s b/libc/nt/shell32/SHFind_InitMenuPopup.s new file mode 100644 index 000000000..e8cb6b4fc --- /dev/null +++ b/libc/nt/shell32/SHFind_InitMenuPopup.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHFind_InitMenuPopup,SHFind_InitMenuPopup,149 diff --git a/libc/nt/shell32/SHFlushSFCache.s b/libc/nt/shell32/SHFlushSFCache.s new file mode 100644 index 000000000..0e5bafd0f --- /dev/null +++ b/libc/nt/shell32/SHFlushSFCache.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHFlushSFCache,SHFlushSFCache,526 diff --git a/libc/nt/shell32/SHFormatDrive.s b/libc/nt/shell32/SHFormatDrive.s new file mode 100644 index 000000000..97d552d61 --- /dev/null +++ b/libc/nt/shell32/SHFormatDrive.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHFormatDrive,SHFormatDrive,495 diff --git a/libc/nt/shell32/SHFree.s b/libc/nt/shell32/SHFree.s new file mode 100644 index 000000000..5f75eed7a --- /dev/null +++ b/libc/nt/shell32/SHFree.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHFree,SHFree,195 diff --git a/libc/nt/shell32/SHFreeNameMappings.s b/libc/nt/shell32/SHFreeNameMappings.s new file mode 100644 index 000000000..dd581c749 --- /dev/null +++ b/libc/nt/shell32/SHFreeNameMappings.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHFreeNameMappings,SHFreeNameMappings,496 diff --git a/libc/nt/shell32/SHGetAttributesFromDataObject.s b/libc/nt/shell32/SHGetAttributesFromDataObject.s new file mode 100644 index 000000000..8f2ca7fe0 --- /dev/null +++ b/libc/nt/shell32/SHGetAttributesFromDataObject.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHGetAttributesFromDataObject,SHGetAttributesFromDataObject,750 diff --git a/libc/nt/shell32/SHGetDataFromIDListW.s b/libc/nt/shell32/SHGetDataFromIDListW.s new file mode 100644 index 000000000..54179f707 --- /dev/null +++ b/libc/nt/shell32/SHGetDataFromIDListW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHGetDataFromIDListW,SHGetDataFromIDListW,498 diff --git a/libc/nt/shell32/SHGetDesktopFolder.s b/libc/nt/shell32/SHGetDesktopFolder.s new file mode 100644 index 000000000..bde1dbb5d --- /dev/null +++ b/libc/nt/shell32/SHGetDesktopFolder.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHGetDesktopFolder,SHGetDesktopFolder,499 diff --git a/libc/nt/shell32/SHGetDiskFreeSpaceExW.s b/libc/nt/shell32/SHGetDiskFreeSpaceExW.s new file mode 100644 index 000000000..fd9786333 --- /dev/null +++ b/libc/nt/shell32/SHGetDiskFreeSpaceExW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHGetDiskFreeSpaceExW,SHGetDiskFreeSpaceExW,502 diff --git a/libc/nt/shell32/SHGetDriveMedia.s b/libc/nt/shell32/SHGetDriveMedia.s new file mode 100644 index 000000000..33699a8b4 --- /dev/null +++ b/libc/nt/shell32/SHGetDriveMedia.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHGetDriveMedia,SHGetDriveMedia,503 diff --git a/libc/nt/shell32/SHGetFileInfoW.s b/libc/nt/shell32/SHGetFileInfoW.s new file mode 100644 index 000000000..fd3043ddb --- /dev/null +++ b/libc/nt/shell32/SHGetFileInfoW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHGetFileInfoW,SHGetFileInfoW,506 diff --git a/libc/nt/shell32/SHGetFolderLocation.s b/libc/nt/shell32/SHGetFolderLocation.s new file mode 100644 index 000000000..4a7039784 --- /dev/null +++ b/libc/nt/shell32/SHGetFolderLocation.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHGetFolderLocation,SHGetFolderLocation,507 diff --git a/libc/nt/shell32/SHGetFolderPathAndSubDirW.s b/libc/nt/shell32/SHGetFolderPathAndSubDirW.s new file mode 100644 index 000000000..ca0ea6c80 --- /dev/null +++ b/libc/nt/shell32/SHGetFolderPathAndSubDirW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHGetFolderPathAndSubDirW,SHGetFolderPathAndSubDirW,510 diff --git a/libc/nt/shell32/SHGetFolderPathEx.s b/libc/nt/shell32/SHGetFolderPathEx.s new file mode 100644 index 000000000..a89354241 --- /dev/null +++ b/libc/nt/shell32/SHGetFolderPathEx.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHGetFolderPathEx,SHGetFolderPathEx,511 diff --git a/libc/nt/shell32/SHGetFolderPathW.s b/libc/nt/shell32/SHGetFolderPathW.s new file mode 100644 index 000000000..7b1f12b90 --- /dev/null +++ b/libc/nt/shell32/SHGetFolderPathW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHGetFolderPathW,SHGetFolderPathW,512 diff --git a/libc/nt/shell32/SHGetIDListFromObject.s b/libc/nt/shell32/SHGetIDListFromObject.s new file mode 100644 index 000000000..74367cc77 --- /dev/null +++ b/libc/nt/shell32/SHGetIDListFromObject.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHGetIDListFromObject,SHGetIDListFromObject,513 diff --git a/libc/nt/shell32/SHGetIconOverlayIndexW.s b/libc/nt/shell32/SHGetIconOverlayIndexW.s new file mode 100644 index 000000000..33a6d3df1 --- /dev/null +++ b/libc/nt/shell32/SHGetIconOverlayIndexW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHGetIconOverlayIndexW,SHGetIconOverlayIndexW,515 diff --git a/libc/nt/shell32/SHGetImageList.s b/libc/nt/shell32/SHGetImageList.s new file mode 100644 index 000000000..b3d8092c6 --- /dev/null +++ b/libc/nt/shell32/SHGetImageList.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHGetImageList,SHGetImageList,727 diff --git a/libc/nt/shell32/SHGetInstanceExplorer.s b/libc/nt/shell32/SHGetInstanceExplorer.s new file mode 100644 index 000000000..306685c93 --- /dev/null +++ b/libc/nt/shell32/SHGetInstanceExplorer.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHGetInstanceExplorer,SHGetInstanceExplorer,516 diff --git a/libc/nt/shell32/SHGetItemFromDataObject.s b/libc/nt/shell32/SHGetItemFromDataObject.s new file mode 100644 index 000000000..b78945b4f --- /dev/null +++ b/libc/nt/shell32/SHGetItemFromDataObject.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHGetItemFromDataObject,SHGetItemFromDataObject,517 diff --git a/libc/nt/shell32/SHGetItemFromObject.s b/libc/nt/shell32/SHGetItemFromObject.s new file mode 100644 index 000000000..695844192 --- /dev/null +++ b/libc/nt/shell32/SHGetItemFromObject.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHGetItemFromObject,SHGetItemFromObject,518 diff --git a/libc/nt/shell32/SHGetKnownFolderIDList.s b/libc/nt/shell32/SHGetKnownFolderIDList.s new file mode 100644 index 000000000..1c8b78714 --- /dev/null +++ b/libc/nt/shell32/SHGetKnownFolderIDList.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHGetKnownFolderIDList,SHGetKnownFolderIDList,519 diff --git a/libc/nt/shell32/SHGetKnownFolderItem.s b/libc/nt/shell32/SHGetKnownFolderItem.s new file mode 100644 index 000000000..e51e4aa87 --- /dev/null +++ b/libc/nt/shell32/SHGetKnownFolderItem.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHGetKnownFolderItem,SHGetKnownFolderItem,527 diff --git a/libc/nt/shell32/SHGetKnownFolderPath.s b/libc/nt/shell32/SHGetKnownFolderPath.s new file mode 100644 index 000000000..59bfd5d77 --- /dev/null +++ b/libc/nt/shell32/SHGetKnownFolderPath.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHGetKnownFolderPath,SHGetKnownFolderPath,528 diff --git a/libc/nt/shell32/SHGetLocalizedName.s b/libc/nt/shell32/SHGetLocalizedName.s new file mode 100644 index 000000000..240f35bd4 --- /dev/null +++ b/libc/nt/shell32/SHGetLocalizedName.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHGetLocalizedName,SHGetLocalizedName,529 diff --git a/libc/nt/shell32/SHGetMalloc.s b/libc/nt/shell32/SHGetMalloc.s new file mode 100644 index 000000000..23ec1adbc --- /dev/null +++ b/libc/nt/shell32/SHGetMalloc.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHGetMalloc,SHGetMalloc,530 diff --git a/libc/nt/shell32/SHGetNameFromIDList.s b/libc/nt/shell32/SHGetNameFromIDList.s new file mode 100644 index 000000000..f247b5e6c --- /dev/null +++ b/libc/nt/shell32/SHGetNameFromIDList.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHGetNameFromIDList,SHGetNameFromIDList,531 diff --git a/libc/nt/shell32/SHGetNewLinkInfoW.s b/libc/nt/shell32/SHGetNewLinkInfoW.s new file mode 100644 index 000000000..a97173935 --- /dev/null +++ b/libc/nt/shell32/SHGetNewLinkInfoW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHGetNewLinkInfoW,SHGetNewLinkInfoW,180 diff --git a/libc/nt/shell32/SHGetPathFromIDListEx.s b/libc/nt/shell32/SHGetPathFromIDListEx.s new file mode 100644 index 000000000..353ddbcee --- /dev/null +++ b/libc/nt/shell32/SHGetPathFromIDListEx.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHGetPathFromIDListEx,SHGetPathFromIDListEx,535 diff --git a/libc/nt/shell32/SHGetPathFromIDListW.s b/libc/nt/shell32/SHGetPathFromIDListW.s new file mode 100644 index 000000000..ad222808d --- /dev/null +++ b/libc/nt/shell32/SHGetPathFromIDListW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHGetPathFromIDListW,SHGetPathFromIDListW,536 diff --git a/libc/nt/shell32/SHGetPropertyStoreForWindow.s b/libc/nt/shell32/SHGetPropertyStoreForWindow.s new file mode 100644 index 000000000..ecc3530be --- /dev/null +++ b/libc/nt/shell32/SHGetPropertyStoreForWindow.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHGetPropertyStoreForWindow,SHGetPropertyStoreForWindow,537 diff --git a/libc/nt/shell32/SHGetPropertyStoreFromIDList.s b/libc/nt/shell32/SHGetPropertyStoreFromIDList.s new file mode 100644 index 000000000..5d1600311 --- /dev/null +++ b/libc/nt/shell32/SHGetPropertyStoreFromIDList.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHGetPropertyStoreFromIDList,SHGetPropertyStoreFromIDList,538 diff --git a/libc/nt/shell32/SHGetPropertyStoreFromParsingName.s b/libc/nt/shell32/SHGetPropertyStoreFromParsingName.s new file mode 100644 index 000000000..1abab4580 --- /dev/null +++ b/libc/nt/shell32/SHGetPropertyStoreFromParsingName.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHGetPropertyStoreFromParsingName,SHGetPropertyStoreFromParsingName,539 diff --git a/libc/nt/shell32/SHGetRealIDL.s b/libc/nt/shell32/SHGetRealIDL.s new file mode 100644 index 000000000..cae4badd0 --- /dev/null +++ b/libc/nt/shell32/SHGetRealIDL.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHGetRealIDL,SHGetRealIDL,98 diff --git a/libc/nt/shell32/SHGetSetFolderCustomSettings.s b/libc/nt/shell32/SHGetSetFolderCustomSettings.s new file mode 100644 index 000000000..c971208e5 --- /dev/null +++ b/libc/nt/shell32/SHGetSetFolderCustomSettings.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHGetSetFolderCustomSettings,SHGetSetFolderCustomSettings,709 diff --git a/libc/nt/shell32/SHGetSetSettings.s b/libc/nt/shell32/SHGetSetSettings.s new file mode 100644 index 000000000..6480ba3c4 --- /dev/null +++ b/libc/nt/shell32/SHGetSetSettings.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHGetSetSettings,SHGetSetSettings,68 diff --git a/libc/nt/shell32/SHGetSettings.s b/libc/nt/shell32/SHGetSettings.s new file mode 100644 index 000000000..a6957b6f2 --- /dev/null +++ b/libc/nt/shell32/SHGetSettings.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHGetSettings,SHGetSettings,540 diff --git a/libc/nt/shell32/SHGetSpecialFolderLocation.s b/libc/nt/shell32/SHGetSpecialFolderLocation.s new file mode 100644 index 000000000..681f7c58e --- /dev/null +++ b/libc/nt/shell32/SHGetSpecialFolderLocation.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHGetSpecialFolderLocation,SHGetSpecialFolderLocation,541 diff --git a/libc/nt/shell32/SHGetSpecialFolderPathW.s b/libc/nt/shell32/SHGetSpecialFolderPathW.s new file mode 100644 index 000000000..3194d582b --- /dev/null +++ b/libc/nt/shell32/SHGetSpecialFolderPathW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHGetSpecialFolderPathW,SHGetSpecialFolderPathW,543 diff --git a/libc/nt/shell32/SHGetStockIconInfo.s b/libc/nt/shell32/SHGetStockIconInfo.s new file mode 100644 index 000000000..bf5da49d1 --- /dev/null +++ b/libc/nt/shell32/SHGetStockIconInfo.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHGetStockIconInfo,SHGetStockIconInfo,544 diff --git a/libc/nt/shell32/SHGetTemporaryPropertyForItem.s b/libc/nt/shell32/SHGetTemporaryPropertyForItem.s new file mode 100644 index 000000000..e6be8d8a4 --- /dev/null +++ b/libc/nt/shell32/SHGetTemporaryPropertyForItem.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHGetTemporaryPropertyForItem,SHGetTemporaryPropertyForItem,545 diff --git a/libc/nt/shell32/SHGetUnreadMailCountW.s b/libc/nt/shell32/SHGetUnreadMailCountW.s new file mode 100644 index 000000000..90cc75ce2 --- /dev/null +++ b/libc/nt/shell32/SHGetUnreadMailCountW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHGetUnreadMailCountW,SHGetUnreadMailCountW,546 diff --git a/libc/nt/shell32/SHHandleUpdateImage.s b/libc/nt/shell32/SHHandleUpdateImage.s new file mode 100644 index 000000000..a4c483974 --- /dev/null +++ b/libc/nt/shell32/SHHandleUpdateImage.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHHandleUpdateImage,SHHandleUpdateImage,193 diff --git a/libc/nt/shell32/SHHelpShortcuts_RunDLL.s b/libc/nt/shell32/SHHelpShortcuts_RunDLL.s new file mode 100644 index 000000000..c4b7dcb90 --- /dev/null +++ b/libc/nt/shell32/SHHelpShortcuts_RunDLL.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHHelpShortcuts_RunDLL,SHHelpShortcuts_RunDLL,228 diff --git a/libc/nt/shell32/SHHelpShortcuts_RunDLLW.s b/libc/nt/shell32/SHHelpShortcuts_RunDLLW.s new file mode 100644 index 000000000..60d6a39b4 --- /dev/null +++ b/libc/nt/shell32/SHHelpShortcuts_RunDLLW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHHelpShortcuts_RunDLLW,SHHelpShortcuts_RunDLLW,238 diff --git a/libc/nt/shell32/SHILCreateFromPath.s b/libc/nt/shell32/SHILCreateFromPath.s new file mode 100644 index 000000000..79f5d91fc --- /dev/null +++ b/libc/nt/shell32/SHILCreateFromPath.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHILCreateFromPath,SHILCreateFromPath,28 diff --git a/libc/nt/shell32/SHInvokePrinterCommandW.s b/libc/nt/shell32/SHInvokePrinterCommandW.s new file mode 100644 index 000000000..1fecbd0ae --- /dev/null +++ b/libc/nt/shell32/SHInvokePrinterCommandW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHInvokePrinterCommandW,SHInvokePrinterCommandW,548 diff --git a/libc/nt/shell32/SHIsFileAvailableOffline.s b/libc/nt/shell32/SHIsFileAvailableOffline.s new file mode 100644 index 000000000..5344763c9 --- /dev/null +++ b/libc/nt/shell32/SHIsFileAvailableOffline.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHIsFileAvailableOffline,SHIsFileAvailableOffline,549 diff --git a/libc/nt/shell32/SHLimitInputEdit.s b/libc/nt/shell32/SHLimitInputEdit.s new file mode 100644 index 000000000..1df48db38 --- /dev/null +++ b/libc/nt/shell32/SHLimitInputEdit.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHLimitInputEdit,SHLimitInputEdit,747 diff --git a/libc/nt/shell32/SHLoadInProc.s b/libc/nt/shell32/SHLoadInProc.s new file mode 100644 index 000000000..86cfc874f --- /dev/null +++ b/libc/nt/shell32/SHLoadInProc.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHLoadInProc,SHLoadInProc,550 diff --git a/libc/nt/shell32/SHLoadNonloadedIconOverlayIdentifiers.s b/libc/nt/shell32/SHLoadNonloadedIconOverlayIdentifiers.s new file mode 100644 index 000000000..856bfa86c --- /dev/null +++ b/libc/nt/shell32/SHLoadNonloadedIconOverlayIdentifiers.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHLoadNonloadedIconOverlayIdentifiers,SHLoadNonloadedIconOverlayIdentifiers,551 diff --git a/libc/nt/shell32/SHMapPIDLToSystemImageListIndex.s b/libc/nt/shell32/SHMapPIDLToSystemImageListIndex.s new file mode 100644 index 000000000..05c77f320 --- /dev/null +++ b/libc/nt/shell32/SHMapPIDLToSystemImageListIndex.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHMapPIDLToSystemImageListIndex,SHMapPIDLToSystemImageListIndex,77 diff --git a/libc/nt/shell32/SHMultiFileProperties.s b/libc/nt/shell32/SHMultiFileProperties.s new file mode 100644 index 000000000..3cf8b338d --- /dev/null +++ b/libc/nt/shell32/SHMultiFileProperties.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHMultiFileProperties,SHMultiFileProperties,716 diff --git a/libc/nt/shell32/SHObjectProperties.s b/libc/nt/shell32/SHObjectProperties.s new file mode 100644 index 000000000..9f4faa292 --- /dev/null +++ b/libc/nt/shell32/SHObjectProperties.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHObjectProperties,SHObjectProperties,178 diff --git a/libc/nt/shell32/SHOpenFolderAndSelectItems.s b/libc/nt/shell32/SHOpenFolderAndSelectItems.s new file mode 100644 index 000000000..1518e1abb --- /dev/null +++ b/libc/nt/shell32/SHOpenFolderAndSelectItems.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHOpenFolderAndSelectItems,SHOpenFolderAndSelectItems,552 diff --git a/libc/nt/shell32/SHOpenPropSheetW.s b/libc/nt/shell32/SHOpenPropSheetW.s new file mode 100644 index 000000000..67aed356c --- /dev/null +++ b/libc/nt/shell32/SHOpenPropSheetW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHOpenPropSheetW,SHOpenPropSheetW,80 diff --git a/libc/nt/shell32/SHOpenWithDialog.s b/libc/nt/shell32/SHOpenWithDialog.s new file mode 100644 index 000000000..b1a93f07d --- /dev/null +++ b/libc/nt/shell32/SHOpenWithDialog.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHOpenWithDialog,SHOpenWithDialog,553 diff --git a/libc/nt/shell32/SHParseDisplayName.s b/libc/nt/shell32/SHParseDisplayName.s new file mode 100644 index 000000000..b2f207727 --- /dev/null +++ b/libc/nt/shell32/SHParseDisplayName.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHParseDisplayName,SHParseDisplayName,554 diff --git a/libc/nt/shell32/SHPathPrepareForWriteW.s b/libc/nt/shell32/SHPathPrepareForWriteW.s new file mode 100644 index 000000000..8fc46fd34 --- /dev/null +++ b/libc/nt/shell32/SHPathPrepareForWriteW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHPathPrepareForWriteW,SHPathPrepareForWriteW,556 diff --git a/libc/nt/shell32/SHPropStgCreate.s b/libc/nt/shell32/SHPropStgCreate.s new file mode 100644 index 000000000..5776ea136 --- /dev/null +++ b/libc/nt/shell32/SHPropStgCreate.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHPropStgCreate,SHPropStgCreate,685 diff --git a/libc/nt/shell32/SHPropStgReadMultiple.s b/libc/nt/shell32/SHPropStgReadMultiple.s new file mode 100644 index 000000000..62d70b9c1 --- /dev/null +++ b/libc/nt/shell32/SHPropStgReadMultiple.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHPropStgReadMultiple,SHPropStgReadMultiple,688 diff --git a/libc/nt/shell32/SHPropStgWriteMultiple.s b/libc/nt/shell32/SHPropStgWriteMultiple.s new file mode 100644 index 000000000..1a61fe4f8 --- /dev/null +++ b/libc/nt/shell32/SHPropStgWriteMultiple.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHPropStgWriteMultiple,SHPropStgWriteMultiple,689 diff --git a/libc/nt/shell32/SHQueryRecycleBinW.s b/libc/nt/shell32/SHQueryRecycleBinW.s new file mode 100644 index 000000000..57c48128a --- /dev/null +++ b/libc/nt/shell32/SHQueryRecycleBinW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHQueryRecycleBinW,SHQueryRecycleBinW,558 diff --git a/libc/nt/shell32/SHQueryUserNotificationState.s b/libc/nt/shell32/SHQueryUserNotificationState.s new file mode 100644 index 000000000..50818a527 --- /dev/null +++ b/libc/nt/shell32/SHQueryUserNotificationState.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHQueryUserNotificationState,SHQueryUserNotificationState,559 diff --git a/libc/nt/shell32/SHRemoveLocalizedName.s b/libc/nt/shell32/SHRemoveLocalizedName.s new file mode 100644 index 000000000..2acffba9e --- /dev/null +++ b/libc/nt/shell32/SHRemoveLocalizedName.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHRemoveLocalizedName,SHRemoveLocalizedName,560 diff --git a/libc/nt/shell32/SHReplaceFromPropSheetExtArray.s b/libc/nt/shell32/SHReplaceFromPropSheetExtArray.s new file mode 100644 index 000000000..63a5a7f43 --- /dev/null +++ b/libc/nt/shell32/SHReplaceFromPropSheetExtArray.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHReplaceFromPropSheetExtArray,SHReplaceFromPropSheetExtArray,170 diff --git a/libc/nt/shell32/SHResolveLibrary.s b/libc/nt/shell32/SHResolveLibrary.s new file mode 100644 index 000000000..127eea71c --- /dev/null +++ b/libc/nt/shell32/SHResolveLibrary.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHResolveLibrary,SHResolveLibrary,561 diff --git a/libc/nt/shell32/SHRestricted.s b/libc/nt/shell32/SHRestricted.s new file mode 100644 index 000000000..620b03fe0 --- /dev/null +++ b/libc/nt/shell32/SHRestricted.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHRestricted,SHRestricted,100 diff --git a/libc/nt/shell32/SHSetDefaultProperties.s b/libc/nt/shell32/SHSetDefaultProperties.s new file mode 100644 index 000000000..21b2510b4 --- /dev/null +++ b/libc/nt/shell32/SHSetDefaultProperties.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHSetDefaultProperties,SHSetDefaultProperties,562 diff --git a/libc/nt/shell32/SHSetFolderPathW.s b/libc/nt/shell32/SHSetFolderPathW.s new file mode 100644 index 000000000..262da9580 --- /dev/null +++ b/libc/nt/shell32/SHSetFolderPathW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHSetFolderPathW,SHSetFolderPathW,232 diff --git a/libc/nt/shell32/SHSetInstanceExplorer.s b/libc/nt/shell32/SHSetInstanceExplorer.s new file mode 100644 index 000000000..0f7a385d4 --- /dev/null +++ b/libc/nt/shell32/SHSetInstanceExplorer.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHSetInstanceExplorer,SHSetInstanceExplorer,176 diff --git a/libc/nt/shell32/SHSetKnownFolderPath.s b/libc/nt/shell32/SHSetKnownFolderPath.s new file mode 100644 index 000000000..99241efd4 --- /dev/null +++ b/libc/nt/shell32/SHSetKnownFolderPath.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHSetKnownFolderPath,SHSetKnownFolderPath,563 diff --git a/libc/nt/shell32/SHSetLocalizedName.s b/libc/nt/shell32/SHSetLocalizedName.s new file mode 100644 index 000000000..066cba132 --- /dev/null +++ b/libc/nt/shell32/SHSetLocalizedName.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHSetLocalizedName,SHSetLocalizedName,564 diff --git a/libc/nt/shell32/SHSetTemporaryPropertyForItem.s b/libc/nt/shell32/SHSetTemporaryPropertyForItem.s new file mode 100644 index 000000000..17caeb54f --- /dev/null +++ b/libc/nt/shell32/SHSetTemporaryPropertyForItem.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHSetTemporaryPropertyForItem,SHSetTemporaryPropertyForItem,565 diff --git a/libc/nt/shell32/SHSetUnreadMailCountW.s b/libc/nt/shell32/SHSetUnreadMailCountW.s new file mode 100644 index 000000000..89c141fc3 --- /dev/null +++ b/libc/nt/shell32/SHSetUnreadMailCountW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHSetUnreadMailCountW,SHSetUnreadMailCountW,566 diff --git a/libc/nt/shell32/SHShellFolderView_Message.s b/libc/nt/shell32/SHShellFolderView_Message.s new file mode 100644 index 000000000..b6113c0c1 --- /dev/null +++ b/libc/nt/shell32/SHShellFolderView_Message.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHShellFolderView_Message,SHShellFolderView_Message,73 diff --git a/libc/nt/shell32/SHShowManageLibraryUI.s b/libc/nt/shell32/SHShowManageLibraryUI.s new file mode 100644 index 000000000..a5e6458d4 --- /dev/null +++ b/libc/nt/shell32/SHShowManageLibraryUI.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHShowManageLibraryUI,SHShowManageLibraryUI,567 diff --git a/libc/nt/shell32/SHSimpleIDListFromPath.s b/libc/nt/shell32/SHSimpleIDListFromPath.s new file mode 100644 index 000000000..40f5a62ff --- /dev/null +++ b/libc/nt/shell32/SHSimpleIDListFromPath.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHSimpleIDListFromPath,SHSimpleIDListFromPath,162 diff --git a/libc/nt/shell32/SHStartNetConnectionDialogW.s b/libc/nt/shell32/SHStartNetConnectionDialogW.s new file mode 100644 index 000000000..b0e184296 --- /dev/null +++ b/libc/nt/shell32/SHStartNetConnectionDialogW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHStartNetConnectionDialogW,SHStartNetConnectionDialogW,14 diff --git a/libc/nt/shell32/SHTestTokenMembership.s b/libc/nt/shell32/SHTestTokenMembership.s new file mode 100644 index 000000000..26677a014 --- /dev/null +++ b/libc/nt/shell32/SHTestTokenMembership.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHTestTokenMembership,SHTestTokenMembership,245 diff --git a/libc/nt/shell32/SHUpdateImageW.s b/libc/nt/shell32/SHUpdateImageW.s new file mode 100644 index 000000000..e750e38f8 --- /dev/null +++ b/libc/nt/shell32/SHUpdateImageW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHUpdateImageW,SHUpdateImageW,192 diff --git a/libc/nt/shell32/SHUpdateRecycleBinIcon.s b/libc/nt/shell32/SHUpdateRecycleBinIcon.s new file mode 100644 index 000000000..4173d6071 --- /dev/null +++ b/libc/nt/shell32/SHUpdateRecycleBinIcon.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHUpdateRecycleBinIcon,SHUpdateRecycleBinIcon,568 diff --git a/libc/nt/shell32/SHValidateUNC.s b/libc/nt/shell32/SHValidateUNC.s new file mode 100644 index 000000000..7ddf59963 --- /dev/null +++ b/libc/nt/shell32/SHValidateUNC.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SHValidateUNC,SHValidateUNC,173 diff --git a/libc/nt/shell32/SetCurrentProcessExplicitAppUserModelID.s b/libc/nt/shell32/SetCurrentProcessExplicitAppUserModelID.s new file mode 100644 index 000000000..b318be6b8 --- /dev/null +++ b/libc/nt/shell32/SetCurrentProcessExplicitAppUserModelID.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SetCurrentProcessExplicitAppUserModelID,SetCurrentProcessExplicitAppUserModelID,569 diff --git a/libc/nt/shell32/SheChangeDirExW.s b/libc/nt/shell32/SheChangeDirExW.s new file mode 100644 index 000000000..de54d076b --- /dev/null +++ b/libc/nt/shell32/SheChangeDirExW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SheChangeDirExW,SheChangeDirExW,571 diff --git a/libc/nt/shell32/SheSetCurDrive.s b/libc/nt/shell32/SheSetCurDrive.s new file mode 100644 index 000000000..e8d1b5429 --- /dev/null +++ b/libc/nt/shell32/SheSetCurDrive.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SheSetCurDrive,SheSetCurDrive,573 diff --git a/libc/nt/shell32/ShellAboutW.s b/libc/nt/shell32/ShellAboutW.s new file mode 100644 index 000000000..30f19f58c --- /dev/null +++ b/libc/nt/shell32/ShellAboutW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_ShellAboutW,ShellAboutW,575 diff --git a/libc/nt/shell32/ShellExec_RunDLL.s b/libc/nt/shell32/ShellExec_RunDLL.s new file mode 100644 index 000000000..b871a1993 --- /dev/null +++ b/libc/nt/shell32/ShellExec_RunDLL.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_ShellExec_RunDLL,ShellExec_RunDLL,576 diff --git a/libc/nt/shell32/ShellExec_RunDLLW.s b/libc/nt/shell32/ShellExec_RunDLLW.s new file mode 100644 index 000000000..10c6c505a --- /dev/null +++ b/libc/nt/shell32/ShellExec_RunDLLW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_ShellExec_RunDLLW,ShellExec_RunDLLW,578 diff --git a/libc/nt/shell32/ShellExecuteExW.s b/libc/nt/shell32/ShellExecuteExW.s new file mode 100644 index 000000000..f672c287c --- /dev/null +++ b/libc/nt/shell32/ShellExecuteExW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_ShellExecuteExW,ShellExecuteExW,582 diff --git a/libc/nt/shell32/ShellExecuteW.s b/libc/nt/shell32/ShellExecuteW.s new file mode 100644 index 000000000..048ff2808 --- /dev/null +++ b/libc/nt/shell32/ShellExecuteW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_ShellExecuteW,ShellExecuteW,583 diff --git a/libc/nt/shell32/ShellHookProc.s b/libc/nt/shell32/ShellHookProc.s new file mode 100644 index 000000000..fc8856f97 --- /dev/null +++ b/libc/nt/shell32/ShellHookProc.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_ShellHookProc,ShellHookProc,584 diff --git a/libc/nt/shell32/Shell_GetCachedImageIndexW.s b/libc/nt/shell32/Shell_GetCachedImageIndexW.s new file mode 100644 index 000000000..b72b7ec41 --- /dev/null +++ b/libc/nt/shell32/Shell_GetCachedImageIndexW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_Shell_GetCachedImageIndexW,Shell_GetCachedImageIndexW,586 diff --git a/libc/nt/shell32/Shell_GetImageLists.s b/libc/nt/shell32/Shell_GetImageLists.s new file mode 100644 index 000000000..4b16892d2 --- /dev/null +++ b/libc/nt/shell32/Shell_GetImageLists.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_Shell_GetImageLists,Shell_GetImageLists,71 diff --git a/libc/nt/shell32/Shell_MergeMenus.s b/libc/nt/shell32/Shell_MergeMenus.s new file mode 100644 index 000000000..35d09ff9c --- /dev/null +++ b/libc/nt/shell32/Shell_MergeMenus.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_Shell_MergeMenus,Shell_MergeMenus,67 diff --git a/libc/nt/shell32/Shell_NotifyIconGetRect.s b/libc/nt/shell32/Shell_NotifyIconGetRect.s new file mode 100644 index 000000000..a205fd73a --- /dev/null +++ b/libc/nt/shell32/Shell_NotifyIconGetRect.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_Shell_NotifyIconGetRect,Shell_NotifyIconGetRect,589 diff --git a/libc/nt/shell32/Shell_NotifyIconW.s b/libc/nt/shell32/Shell_NotifyIconW.s new file mode 100644 index 000000000..f8c4e81d3 --- /dev/null +++ b/libc/nt/shell32/Shell_NotifyIconW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_Shell_NotifyIconW,Shell_NotifyIconW,590 diff --git a/libc/nt/shell32/SignalFileOpen.s b/libc/nt/shell32/SignalFileOpen.s new file mode 100644 index 000000000..68f5acd1b --- /dev/null +++ b/libc/nt/shell32/SignalFileOpen.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_SignalFileOpen,SignalFileOpen,103 diff --git a/libc/nt/shell32/StgMakeUniqueName.s b/libc/nt/shell32/StgMakeUniqueName.s new file mode 100644 index 000000000..cadc0a62d --- /dev/null +++ b/libc/nt/shell32/StgMakeUniqueName.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_StgMakeUniqueName,StgMakeUniqueName,682 diff --git a/libc/nt/shell32/UsersLibrariesFolderUI_CreateInstance.s b/libc/nt/shell32/UsersLibrariesFolderUI_CreateInstance.s new file mode 100644 index 000000000..2b3f989e6 --- /dev/null +++ b/libc/nt/shell32/UsersLibrariesFolderUI_CreateInstance.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_UsersLibrariesFolderUI_CreateInstance,UsersLibrariesFolderUI_CreateInstance,615 diff --git a/libc/nt/shell32/WOWShellExecute.s b/libc/nt/shell32/WOWShellExecute.s new file mode 100644 index 000000000..4929181d4 --- /dev/null +++ b/libc/nt/shell32/WOWShellExecute.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_WOWShellExecute,WOWShellExecute,616 diff --git a/libc/nt/shell32/WaitForExplorerRestartW.s b/libc/nt/shell32/WaitForExplorerRestartW.s new file mode 100644 index 000000000..93ff8b9ab --- /dev/null +++ b/libc/nt/shell32/WaitForExplorerRestartW.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_WaitForExplorerRestartW,WaitForExplorerRestartW,617 diff --git a/libc/nt/shell32/Win32DeleteFile.s b/libc/nt/shell32/Win32DeleteFile.s new file mode 100644 index 000000000..53a8667b5 --- /dev/null +++ b/libc/nt/shell32/Win32DeleteFile.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_Win32DeleteFile,Win32DeleteFile,164 diff --git a/libc/nt/shell32/WriteCabinetState.s b/libc/nt/shell32/WriteCabinetState.s new file mode 100644 index 000000000..3a6fcd732 --- /dev/null +++ b/libc/nt/shell32/WriteCabinetState.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp shell32,__imp_WriteCabinetState,WriteCabinetState,652 diff --git a/libc/nt/user32/IsWow64Message.s b/libc/nt/user32/IsWow64Message.s new file mode 100644 index 000000000..9d6d87ada --- /dev/null +++ b/libc/nt/user32/IsWow64Message.s @@ -0,0 +1,2 @@ +.include "o/libc/nt/codegen.inc" +.imp user32,__imp_IsWow64Message,IsWow64Message,2091 diff --git a/libc/runtime/arch_prctl.c b/libc/runtime/arch_prctl.c index 2aabdcda0..9c6b2be84 100644 --- a/libc/runtime/arch_prctl.c +++ b/libc/runtime/arch_prctl.c @@ -23,6 +23,7 @@ #include "libc/dce.h" #include "libc/nexgen32e/msr.h" #include "libc/nexgen32e/x86feature.h" +#include "libc/runtime/interruptiblecall.h" #include "libc/runtime/pc.internal.h" #include "libc/sysv/consts/sig.h" #include "libc/sysv/errfuns.h" @@ -164,12 +165,36 @@ static privileged dontinline int arch_prctl_openbsd(int code, int64_t addr) { } static char g_fsgs_once; +static struct InterruptibleCall g_fsgs_icall; /** * Don't bother. */ int arch_prctl(int code, int64_t addr) { void *fn = arch_prctl_fsgsbase; + +#if 0 + if (!g_fsgs_once) { + g_fsgs_once = true; + if (X86_HAVE(FSGSBASE)) { + g_fsgs_icall.sig = SIGILL; + if (interruptiblecall(&g_fsgs_icall, fn, code, addr, 0, 0) != -1 && + g_fsgs_icall.returnval != -1) { + /* ivybridge+ (2012) lets us change segment registers without + needing a 700ns system call. cpuid and /proc/cpuinfo will both + report it's available; unfortunately, operating systems have an + added ability to restrict this feature in %cr4, which we're not + even allowed to read lool */ + g_fsgs_once = 2; + return 0; + } + } + } + if (g_fsgs_once == 2) { + return arch_prctl_fsgsbase(code, addr); + } +#endif + switch (__hostos) { case METAL: return arch_prctl_msr(code, addr); diff --git a/libc/runtime/interruptiblecall.c b/libc/runtime/interruptiblecall.c new file mode 100644 index 000000000..e5cbd35e2 --- /dev/null +++ b/libc/runtime/interruptiblecall.c @@ -0,0 +1,74 @@ +/*-*- mode:c;indent-tabs-mode:nil;c-basic-offset:2;tab-width:8;coding:utf-8 -*-│ +│vi: set net ft=c ts=2 sts=2 sw=2 fenc=utf-8 :vi│ +╞══════════════════════════════════════════════════════════════════════════════╡ +│ Copyright 2020 Justine Alexandra Roberts Tunney │ +│ │ +│ Permission to use, copy, modify, and/or distribute this software for │ +│ any purpose with or without fee is hereby granted, provided that the │ +│ above copyright notice and this permission notice appear in all copies. │ +│ │ +│ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL │ +│ WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED │ +│ WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE │ +│ AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL │ +│ DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR │ +│ PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER │ +│ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ +│ PERFORMANCE OF THIS SOFTWARE. │ +╚─────────────────────────────────────────────────────────────────────────────*/ +#include "libc/bits/safemacros.internal.h" +#include "libc/mem/mem.h" +#include "libc/runtime/interruptiblecall.h" +#include "libc/runtime/runtime.h" +#include "libc/sysv/consts/sa.h" +#include "libc/sysv/consts/sig.h" + +STATIC_YOINK("_init_onntconsoleevent"); + +static struct InterruptibleCall *g_interruptiblecall; + +wontreturn static void interruptcall(int sig) { + longjmp(g_interruptiblecall->jb, 1); + unreachable; +} + +/** + * Calls function that may be cancelled by a signal. + * + * @param state is allocated and zero'd by the caller; state→sig and + * state→sa_new.sa_mask may be set; it may be re-used w/o + * reinitializing; it may be static or heap memory; it may be stack + * memory if re-entrant behavior isn't needed + * @return the value returned by callback or -1 on interrupt; they may + * be differentiated using the state→returnval filed, which is only + * modified by this function when callbacks succeed + */ +intptr_t interruptiblecall(struct InterruptibleCall *icall, + intptr_t callback(intptr_t p1, intptr_t p2, + intptr_t p3, intptr_t p4), + intptr_t p1, intptr_t p2, intptr_t p3, intptr_t p4) { + intptr_t rc; + if (!icall->sig) icall->sig = SIGINT; + icall->sa_new.sa_handler = interruptcall; + icall->sa_new.sa_flags |= SA_RESTART | SA_RESETHAND; + if ((rc = (sigaction)(icall->sig, &icall->sa_new, &icall->sa_old)) != -1) { + icall->prev = g_interruptiblecall; + g_interruptiblecall = icall; + if (!setjmp(icall->jb)) { + icall->returnval = rc = callback(p1, p2, p3, p4); + } else { + rc = -1; + } + asm volatile("" ::: "memory"); + struct InterruptibleCall *unwind; + for (;;) { + unwind = g_interruptiblecall; + (sigaction)(unwind->sig, &unwind->sa_old, NULL); + g_interruptiblecall = unwind->prev; + if (unwind == icall) break; + free_s(&unwind); + } + icall->prev = NULL; + } + return rc; +} diff --git a/libc/runtime/interruptiblecall.h b/libc/runtime/interruptiblecall.h new file mode 100644 index 000000000..d53444eba --- /dev/null +++ b/libc/runtime/interruptiblecall.h @@ -0,0 +1,26 @@ +#ifndef COSMOPOLITAN_LIBC_RUNTIME_INTERRUPTIBLECALL_H_ +#define COSMOPOLITAN_LIBC_RUNTIME_INTERRUPTIBLECALL_H_ +#include "libc/runtime/runtime.h" +#include "libc/calls/struct/sigaction.h" +#include "libc/calls/calls.h" +#if !(__ASSEMBLER__ + __LINKER__ + 0) +COSMOPOLITAN_C_START_ + +struct InterruptibleCall { + struct InterruptibleCall *prev; + intptr_t returnval; + int sig; + int flags; + jmp_buf jb; + struct sigaction sa_new; + struct sigaction sa_old; +}; + +intptr_t interruptiblecall(struct InterruptibleCall *state, + intptr_t callback(intptr_t p1, intptr_t p2, + intptr_t p3, intptr_t p4), + intptr_t p1, intptr_t p2, intptr_t p3, intptr_t p4); + +COSMOPOLITAN_C_END_ +#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */ +#endif /* COSMOPOLITAN_LIBC_RUNTIME_INTERRUPTIBLECALL_H_ */ diff --git a/libc/stdio/appendw.c b/libc/stdio/appendw.c index cdcee2e59..c85bf6b2b 100644 --- a/libc/stdio/appendw.c +++ b/libc/stdio/appendw.c @@ -18,9 +18,7 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/assert.h" #include "libc/bits/bits.h" -#include "libc/dce.h" #include "libc/macros.internal.h" -#include "libc/mem/mem.h" #include "libc/nexgen32e/bsr.h" #include "libc/stdio/append.internal.h" diff --git a/libc/stdio/clearerr.c b/libc/stdio/clearerr.c index 723847951..aa1aeed58 100644 --- a/libc/stdio/clearerr.c +++ b/libc/stdio/clearerr.c @@ -16,7 +16,6 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/stdio/lock.h" #include "libc/stdio/stdio.h" /** diff --git a/libc/stdio/dtoa.c b/libc/stdio/dtoa.c index f0c7ee86e..a098a98d1 100644 --- a/libc/stdio/dtoa.c +++ b/libc/stdio/dtoa.c @@ -29,7 +29,6 @@ #include "libc/fmt/internal.h" #include "libc/macros.internal.h" #include "libc/nexgen32e/bsr.h" -#include "libc/str/str.h" #include "third_party/gdtoa/gdtoa.h" /** @@ -294,10 +293,12 @@ int __fmt_dtoa(int (*out)(const char *, void *, size_t), void *arg, int d, if ((flags & FLAGS_ZEROPAD)) { if (sign) __FMT_PUT(sign); sign = 0; - do __FMT_PUT('0'); + do + __FMT_PUT('0'); while (--width > 0); } else - do __FMT_PUT(' '); + do + __FMT_PUT(' '); while (--width > 0); } if (sign) __FMT_PUT(sign); @@ -409,10 +410,12 @@ int __fmt_dtoa(int (*out)(const char *, void *, size_t), void *arg, int d, if ((flags & FLAGS_ZEROPAD)) { if (sign) __FMT_PUT(sign); sign = 0; - do __FMT_PUT('0'); + do + __FMT_PUT('0'); while (--width > 0); } else - do __FMT_PUT(' '); + do + __FMT_PUT(' '); while (--width > 0); } if (sign) __FMT_PUT(sign); @@ -482,14 +485,16 @@ int __fmt_dtoa(int (*out)(const char *, void *, size_t), void *arg, int d, } if ((width -= prec1) > 0 && !(flags & FLAGS_LEFT) && !(flags & FLAGS_ZEROPAD)) { - do __FMT_PUT(' '); + do + __FMT_PUT(' '); while (--width > 0); } if (sign) __FMT_PUT(sign); __FMT_PUT('0'); __FMT_PUT(alphabet[17]); if ((flags & FLAGS_ZEROPAD) && width > 0 && !(flags & FLAGS_LEFT)) { - do __FMT_PUT('0'); + do + __FMT_PUT('0'); while (--width > 0); } i1 = prec1 & 7; @@ -507,7 +512,8 @@ int __fmt_dtoa(int (*out)(const char *, void *, size_t), void *arg, int d, --prec1; } if ((flags & FLAGS_HASH) && prec > 0) { - do __FMT_PUT(0); + do + __FMT_PUT(0); while (--prec > 0); } } diff --git a/libc/stdio/dumphexc.c b/libc/stdio/dumphexc.c index e714df9ba..c359e10ca 100644 --- a/libc/stdio/dumphexc.c +++ b/libc/stdio/dumphexc.c @@ -17,7 +17,6 @@ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/macros.internal.h" -#include "libc/mem/mem.h" #include "libc/stdio/append.internal.h" #include "libc/stdio/hex.internal.h" #include "libc/str/str.h" diff --git a/libc/stdio/feof.c b/libc/stdio/feof.c index e115f9715..eeca17292 100644 --- a/libc/stdio/feof.c +++ b/libc/stdio/feof.c @@ -16,7 +16,6 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/stdio/lock.h" #include "libc/stdio/stdio.h" /** diff --git a/libc/stdio/ferror.c b/libc/stdio/ferror.c index 22b46d0c0..d11ef64f7 100644 --- a/libc/stdio/ferror.c +++ b/libc/stdio/ferror.c @@ -16,7 +16,6 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/stdio/lock.h" #include "libc/stdio/stdio.h" /** diff --git a/libc/stdio/fflush.c b/libc/stdio/fflush.c index 8f454dde7..5618a8ae4 100644 --- a/libc/stdio/fflush.c +++ b/libc/stdio/fflush.c @@ -16,7 +16,6 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/stdio/lock.h" #include "libc/stdio/stdio.h" /** diff --git a/libc/stdio/fgetc.c b/libc/stdio/fgetc.c index b04afd66c..a1efa1de1 100644 --- a/libc/stdio/fgetc.c +++ b/libc/stdio/fgetc.c @@ -16,7 +16,6 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/stdio/lock.h" #include "libc/stdio/stdio.h" /** diff --git a/libc/stdio/fgetln.c b/libc/stdio/fgetln.c index a131e9dfc..94c5643c9 100644 --- a/libc/stdio/fgetln.c +++ b/libc/stdio/fgetln.c @@ -16,7 +16,6 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/stdio/lock.h" #include "libc/stdio/stdio.h" /** diff --git a/libc/stdio/fgets.c b/libc/stdio/fgets.c index 2807ef537..3c6040838 100644 --- a/libc/stdio/fgets.c +++ b/libc/stdio/fgets.c @@ -16,7 +16,6 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/stdio/lock.h" #include "libc/stdio/stdio.h" /** diff --git a/libc/stdio/fgetwc.c b/libc/stdio/fgetwc.c index d7e1e41f8..ca5e7a8f6 100644 --- a/libc/stdio/fgetwc.c +++ b/libc/stdio/fgetwc.c @@ -16,7 +16,6 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/stdio/lock.h" #include "libc/stdio/stdio.h" /** diff --git a/libc/stdio/fgetws.c b/libc/stdio/fgetws.c index 3c96e30d9..999a769a7 100644 --- a/libc/stdio/fgetws.c +++ b/libc/stdio/fgetws.c @@ -16,7 +16,6 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/stdio/lock.h" #include "libc/stdio/stdio.h" /** diff --git a/libc/stdio/fileno.c b/libc/stdio/fileno.c index e739d1cb5..294becdbf 100644 --- a/libc/stdio/fileno.c +++ b/libc/stdio/fileno.c @@ -16,7 +16,6 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/stdio/lock.h" #include "libc/stdio/stdio.h" #include "libc/sysv/errfuns.h" diff --git a/libc/stdio/flockfile.c b/libc/stdio/flockfile.c index f1a537aeb..a1c678804 100644 --- a/libc/stdio/flockfile.c +++ b/libc/stdio/flockfile.c @@ -16,7 +16,6 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/stdio/lock.h" #include "libc/stdio/stdio.h" /** diff --git a/libc/stdio/flushlbf.c b/libc/stdio/flushlbf.c index 2df178c2a..ea5c6f4b6 100644 --- a/libc/stdio/flushlbf.c +++ b/libc/stdio/flushlbf.c @@ -20,7 +20,6 @@ #include "libc/intrin/pthread.h" #include "libc/intrin/spinlock.h" #include "libc/stdio/fflush.internal.h" -#include "libc/stdio/lock.h" #include "libc/stdio/stdio.h" #include "libc/stdio/stdio_ext.h" diff --git a/libc/stdio/fprintf.c b/libc/stdio/fprintf.c index 796394dc7..939a6cd69 100644 --- a/libc/stdio/fprintf.c +++ b/libc/stdio/fprintf.c @@ -16,7 +16,6 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/stdio/lock.h" #include "libc/stdio/stdio.h" /** diff --git a/libc/stdio/fputc.c b/libc/stdio/fputc.c index faf8af218..9a12c0e4b 100644 --- a/libc/stdio/fputc.c +++ b/libc/stdio/fputc.c @@ -16,7 +16,6 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/stdio/lock.h" #include "libc/stdio/stdio.h" /** diff --git a/libc/stdio/fputs.c b/libc/stdio/fputs.c index 85bf483e6..aef211a86 100644 --- a/libc/stdio/fputs.c +++ b/libc/stdio/fputs.c @@ -16,7 +16,6 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/stdio/lock.h" #include "libc/stdio/stdio.h" /** diff --git a/libc/stdio/fputwc.c b/libc/stdio/fputwc.c index 44afd3e04..e87b9e46b 100644 --- a/libc/stdio/fputwc.c +++ b/libc/stdio/fputwc.c @@ -16,7 +16,6 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/stdio/lock.h" #include "libc/stdio/stdio.h" /** diff --git a/libc/stdio/fputws.c b/libc/stdio/fputws.c index e93151095..b1a0ddf87 100644 --- a/libc/stdio/fputws.c +++ b/libc/stdio/fputws.c @@ -16,7 +16,6 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/stdio/lock.h" #include "libc/stdio/stdio.h" /** diff --git a/libc/stdio/fread.c b/libc/stdio/fread.c index f926a9517..d8e8c1c18 100644 --- a/libc/stdio/fread.c +++ b/libc/stdio/fread.c @@ -16,7 +16,6 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/stdio/lock.h" #include "libc/stdio/stdio.h" /** diff --git a/libc/stdio/freopen.c b/libc/stdio/freopen.c index 8799d6775..1099e79b8 100644 --- a/libc/stdio/freopen.c +++ b/libc/stdio/freopen.c @@ -17,7 +17,6 @@ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/calls/calls.h" -#include "libc/stdio/lock.h" #include "libc/stdio/stdio.h" #include "libc/sysv/consts/f.h" #include "libc/sysv/consts/fd.h" diff --git a/libc/stdio/fseeko.c b/libc/stdio/fseeko.c index b29b98c30..abd3c5f91 100644 --- a/libc/stdio/fseeko.c +++ b/libc/stdio/fseeko.c @@ -16,7 +16,6 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/stdio/lock.h" #include "libc/stdio/stdio.h" /** diff --git a/libc/stdio/ftello.c b/libc/stdio/ftello.c index 7ce952ca2..407e77a41 100644 --- a/libc/stdio/ftello.c +++ b/libc/stdio/ftello.c @@ -20,7 +20,6 @@ #include "libc/errno.h" #include "libc/runtime/runtime.h" #include "libc/stdio/internal.h" -#include "libc/stdio/lock.h" #include "libc/stdio/stdio.h" #include "libc/sysv/consts/o.h" diff --git a/libc/stdio/fwrite.c b/libc/stdio/fwrite.c index 4522b636b..44d786743 100644 --- a/libc/stdio/fwrite.c +++ b/libc/stdio/fwrite.c @@ -16,7 +16,6 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/stdio/lock.h" #include "libc/stdio/stdio.h" /** diff --git a/libc/stdio/getdelim.c b/libc/stdio/getdelim.c index 055c22ead..1bfffabfb 100644 --- a/libc/stdio/getdelim.c +++ b/libc/stdio/getdelim.c @@ -16,7 +16,6 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/stdio/lock.h" #include "libc/stdio/stdio.h" /** diff --git a/libc/stdio/getdelim_unlocked.c b/libc/stdio/getdelim_unlocked.c index 88409ce0b..3314c4379 100644 --- a/libc/stdio/getdelim_unlocked.c +++ b/libc/stdio/getdelim_unlocked.c @@ -18,7 +18,6 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/calls/calls.h" #include "libc/errno.h" -#include "libc/mem/mem.h" #include "libc/stdio/stdio.h" #include "libc/str/str.h" #include "libc/sysv/consts/o.h" diff --git a/libc/stdio/kvappendf.c b/libc/stdio/kvappendf.c index 58d87af2a..e14ea82ce 100644 --- a/libc/stdio/kvappendf.c +++ b/libc/stdio/kvappendf.c @@ -17,7 +17,6 @@ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/assert.h" -#include "libc/dce.h" #include "libc/intrin/kprintf.h" #include "libc/macros.internal.h" #include "libc/mem/mem.h" diff --git a/libc/stdio/lock.h b/libc/stdio/lock.h deleted file mode 100644 index fe38e179d..000000000 --- a/libc/stdio/lock.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef COSMOPOLITAN_LIBC_STDIO_LOCK_H_ -#define COSMOPOLITAN_LIBC_STDIO_LOCK_H_ -#include "libc/intrin/nopl.h" -#include "libc/nexgen32e/threaded.h" -#include "libc/stdio/stdio.h" -#if !(__ASSEMBLER__ + __LINKER__ + 0) -COSMOPOLITAN_C_START_ - -void flockfile(FILE *) paramsnonnull(); -void funlockfile(FILE *) paramsnonnull(); -int ftrylockfile(FILE *) paramsnonnull(); - -#ifdef _NOPL1 -#define flockfile(f) _NOPL1("__threadcalls", flockfile, f) -#define funlockfile(f) _NOPL1("__threadcalls", funlockfile, f) -#define ftrylockfile(f) _NOPL1("__threadcalls", ftrylockfile, f) -#else -#define flockfile(f) (__threaded ? flockfile(f) : 0) -#define funlockfile(f) (__threaded ? funlockfile(f) : 0) -#define ftrylockfile(f) (__threaded ? ftrylockfile(f) : 0) -#endif - -COSMOPOLITAN_C_END_ -#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */ -#endif /* COSMOPOLITAN_LIBC_STDIO_LOCK_H_ */ diff --git a/libc/stdio/mkdtemp.c b/libc/stdio/mkdtemp.c index 98f00c39b..6a9639420 100644 --- a/libc/stdio/mkdtemp.c +++ b/libc/stdio/mkdtemp.c @@ -38,11 +38,10 @@ * @raise EINVAL if template didn't end with XXXXXX */ char *mkdtemp(char *template) { - unsigned x; - int i, j, n; + int i, j, n, x; if ((n = strlen(template)) >= 6 && !memcmp(template + n - 6, "XXXXXX", 6)) { + x = rand64(); for (i = 0; i < 10; ++i) { - x = rand64(); for (j = 0; j < 6; ++j) { template[n - 6 + j] = "0123456789abcdefghijklmnopqrstuvwxyz"[x % 36]; x /= 36; diff --git a/libc/stdio/puts.c b/libc/stdio/puts.c index aafa06732..aac097891 100644 --- a/libc/stdio/puts.c +++ b/libc/stdio/puts.c @@ -16,9 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/stdio/lock.h" #include "libc/stdio/stdio.h" -#include "libc/str/str.h" static inline int PutsImpl(const char *s, FILE *f) { size_t n, r; diff --git a/libc/stdio/rewind.c b/libc/stdio/rewind.c index d97050f43..8f655d960 100644 --- a/libc/stdio/rewind.c +++ b/libc/stdio/rewind.c @@ -17,7 +17,6 @@ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/calls/calls.h" -#include "libc/stdio/lock.h" #include "libc/stdio/stdio.h" /** diff --git a/libc/stdio/setvbuf.c b/libc/stdio/setvbuf.c index 1c2aa00eb..d6ba56932 100644 --- a/libc/stdio/setvbuf.c +++ b/libc/stdio/setvbuf.c @@ -16,8 +16,6 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/runtime/runtime.h" -#include "libc/stdio/lock.h" #include "libc/stdio/stdio.h" #include "libc/sysv/errfuns.h" diff --git a/libc/stdio/stdio.h b/libc/stdio/stdio.h index 1b232c0cd..8059adc80 100644 --- a/libc/stdio/stdio.h +++ b/libc/stdio/stdio.h @@ -1,7 +1,10 @@ #ifndef COSMOPOLITAN_LIBC_STDIO_STDIO_H_ #define COSMOPOLITAN_LIBC_STDIO_STDIO_H_ #include "libc/fmt/pflink.h" +#include "libc/intrin/nopl.h" #include "libc/intrin/pthread.h" +#include "libc/nexgen32e/threaded.h" +#include "libc/runtime/symbolic.h" #define _STDIO_H #define L_ctermid 20 @@ -127,6 +130,9 @@ int fwide(FILE *, int); │ cosmopolitan § standard i/o » without mutexes ─╬─│┼ ╚────────────────────────────────────────────────────────────────────────────│*/ +void flockfile(FILE *) paramsnonnull(); +void funlockfile(FILE *) paramsnonnull(); +int ftrylockfile(FILE *) paramsnonnull(); int getc_unlocked(FILE *) paramsnonnull(); int getchar_unlocked(void); int putc_unlocked(int, FILE *) paramsnonnull(); @@ -173,6 +179,16 @@ int vfprintf_unlocked(FILE *, const char *, va_list) #define putc_unlocked(c, f) fputc_unlocked(c, f) #define putwc_unlocked(c, f) fputwc_unlocked(c, f) +#ifdef _NOPL1 +#define flockfile(f) _NOPL1("__threadcalls", flockfile, f) +#define funlockfile(f) _NOPL1("__threadcalls", funlockfile, f) +#define ftrylockfile(f) _NOPL1("__threadcalls", ftrylockfile, f) +#else +#define flockfile(f) (__threaded ? flockfile(f) : 0) +#define funlockfile(f) (__threaded ? funlockfile(f) : 0) +#define ftrylockfile(f) (__threaded ? ftrylockfile(f) : 0) +#endif + #if defined(__GNUC__) && !defined(__STRICT_ANSI__) /* clang-format off */ #define printf(FMT, ...) (printf)(PFLINK(FMT), ##__VA_ARGS__) @@ -188,6 +204,10 @@ int vfprintf_unlocked(FILE *, const char *, va_list) /* clang-format on */ #endif +#define stdin SYMBOLIC(stdin) +#define stdout SYMBOLIC(stdout) +#define stderr SYMBOLIC(stderr) + COSMOPOLITAN_C_END_ #endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */ #endif /* COSMOPOLITAN_LIBC_STDIO_STDIO_H_ */ diff --git a/libc/stdio/tmpfile.c b/libc/stdio/tmpfile.c index 7da29c4a0..449d6d291 100644 --- a/libc/stdio/tmpfile.c +++ b/libc/stdio/tmpfile.c @@ -16,60 +16,31 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ +#include "libc/bits/safemacros.internal.h" #include "libc/calls/calls.h" -#include "libc/errno.h" -#include "libc/rand/rand.h" +#include "libc/fmt/fmt.h" +#include "libc/macros.internal.h" #include "libc/runtime/runtime.h" +#include "libc/stdio/stdio.h" #include "libc/stdio/temp.h" #include "libc/str/str.h" -#include "libc/sysv/consts/o.h" /** - * Opens stream backed by anonymous file. - * - * We use $TMPDIR or /tmp to create a temporary file securely, which - * will be unlink()'d before this function returns. The file content - * will be released from disk once fclose() is called. + * Creates a temporary file. * * @see mkostempsm(), kTmpPath - * @asyncsignalsafe - * @threadsafe - * @vforksafe */ FILE *tmpfile(void) { - FILE *f; - unsigned x; - int fd, i, j, e; - char path[PATH_MAX], *p; - p = path; - p = stpcpy(p, kTmpPath); - p = stpcpy(p, "tmp."); - if (program_invocation_short_name && - strlen(program_invocation_short_name) < 128) { - p = stpcpy(p, program_invocation_short_name); - *p++ = '.'; - } - for (i = 0; i < 10; ++i) { - x = rand64(); - for (j = 0; j < 6; ++j) { - p[j] = "0123456789abcdefghijklmnopqrstuvwxyz"[x % 36]; - x /= 36; - } - p[j] = 0; - e = errno; - if ((fd = open(path, O_RDWR | O_CREAT | O_EXCL, 0600)) != -1) { - unlink(path); - if ((f = fdopen(fd, "w+"))) { - return f; - } else { - close(fd); - return 0; - } - } else if (errno == EEXIST) { - errno = e; - } else { - break; + int fd; + char *tmp, *sep, tpl[PATH_MAX]; + tmp = firstnonnull(getenv("TMPDIR"), kTmpPath); + sep = !isempty(tmp) && !endswith(tmp, "/") ? "/" : ""; + if ((snprintf)(tpl, PATH_MAX, "%s%stmp.%s.XXXXXX", tmp, sep, + firstnonnull(program_invocation_short_name, "unknown")) <= + PATH_MAX) { + if ((fd = mkostemps(tpl, 0, 0)) != -1) { + return fdopen(fd, "w+"); } } - return 0; + return NULL; } diff --git a/libc/stdio/ungetc.c b/libc/stdio/ungetc.c index df066d05e..672e9dade 100644 --- a/libc/stdio/ungetc.c +++ b/libc/stdio/ungetc.c @@ -16,7 +16,6 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/stdio/lock.h" #include "libc/stdio/stdio.h" /** diff --git a/libc/stdio/ungetwc.c b/libc/stdio/ungetwc.c index f0c482c9c..3ec9f03df 100644 --- a/libc/stdio/ungetwc.c +++ b/libc/stdio/ungetwc.c @@ -16,7 +16,6 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/stdio/lock.h" #include "libc/stdio/stdio.h" /** diff --git a/libc/stdio/vappendf.c b/libc/stdio/vappendf.c index 6cdf0d7fb..139d6ffeb 100644 --- a/libc/stdio/vappendf.c +++ b/libc/stdio/vappendf.c @@ -17,7 +17,6 @@ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/assert.h" -#include "libc/dce.h" #include "libc/fmt/fmt.h" #include "libc/macros.internal.h" #include "libc/mem/mem.h" diff --git a/libc/stdio/vfprintf.c b/libc/stdio/vfprintf.c index c44db47ea..dc389902b 100644 --- a/libc/stdio/vfprintf.c +++ b/libc/stdio/vfprintf.c @@ -16,7 +16,6 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/stdio/lock.h" #include "libc/stdio/stdio.h" /** diff --git a/libc/str/str.h b/libc/str/str.h index 74a656700..577f1b0c5 100644 --- a/libc/str/str.h +++ b/libc/str/str.h @@ -1,10 +1,11 @@ #ifndef COSMOPOLITAN_LIBC_STR_STR_H_ #define COSMOPOLITAN_LIBC_STR_STR_H_ - -#define INVALID_CODEPOINT 0xfffd - #if !(__ASSEMBLER__ + __LINKER__ + 0) COSMOPOLITAN_C_START_ +/*───────────────────────────────────────────────────────────────────────────│─╗ +│ cosmopolitan § characters » usas x3.4-1967 ─╬─│┼ +╚────────────────────────────────────────────────────────────────────────────│─╝ + fourth age telecommunications */ extern const int8_t kHexToInt[256]; extern const uint8_t gperf_downcase[256]; @@ -31,6 +32,36 @@ int toupper(int); int hextoint(int); int cescapec(int); +/*───────────────────────────────────────────────────────────────────────────│─╗ +│ cosmopolitan § characters » thompson-pike encoding ─╬─│┼ +╚────────────────────────────────────────────────────────────────────────────│─╝ + fifth age telecommunications + + 0123456789abcdef + ┌0─ ☺☻♥♦♣♠•◘○◙♂♀♪♫☼┬───Control + └1─►◄↕‼¶§▬↨↑↓→←∟↔▲▼┘ + ┌2─ !"#$%&'()*+,-./┐ + │3 0123456789:;<=>?│ + │4 @ABCDEFGHIJKLMNO├───ASA x3.4-1967 + │5 PQRSTUVWXYZ[\]^_│ + │6 `abcdefghijklmno│ + └7─pqrstuvwxyz{|}~⌂┘ + ┌8─ÇüéâäàåçêëèïîìÄÅ┐ + │9 ÉæÆôöòûùÿÖÜ¢£¥€ƒ├───Thompson-Pike Continuation + │a á¡óúñѪº¿⌐¬½¼¡«»│ (not really characters) + └b─░▒▓│┤╡╢╖╕╣║╗╝╜╛┐┘ + ┌c─└┴┬├─┼╞╟╚╔╩╦╠═╬╧┬───1 Continuation will follow + └d─╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀┘ + ─e─αßΓπΣσμτΦΘΩδ∞φε∩────2 Continuations will follow + f─≡±≥≤⌠⌡÷≈°∙·√ⁿ²■λ + │ ││ │││└┤ + │ ││ │└┤ └───5 Continuations follow (and is negative) + │ │└─┬┘ └─────5 Continuations follow (note: -1=λ┐┐┐┐┐) + └───┬──┘ └────────4 Continuations follow + └──────────────3 Continuations follow */ + +#define INVALID_CODEPOINT 0xfffd + int iswalnum(wint_t); int iswalpha(wint_t); int iswblank(wint_t); @@ -47,6 +78,10 @@ int iswseparator(wint_t); wint_t towlower(wint_t); wint_t towupper(wint_t); +/*───────────────────────────────────────────────────────────────────────────│─╗ +│ cosmopolitan § strings ─╬─│┼ +╚────────────────────────────────────────────────────────────────────────────│*/ + void bzero(void *, size_t) memcpyesque; void *memset(void *, int, size_t) memcpyesque; void *memmove(void *, const void *, size_t) memcpyesque; @@ -171,6 +206,10 @@ bool _istext(const void *, size_t) libcesque; bool _isutf8(const void *, size_t) libcesque; bool _escapedos(char16_t *, unsigned, const char16_t *, unsigned) libcesque; +/*───────────────────────────────────────────────────────────────────────────│─╗ +│ cosmopolitan § strings » multibyte ─╬─│┼ +╚────────────────────────────────────────────────────────────────────────────│*/ + typedef unsigned mbstate_t; axdx_t tprecode8to16(char16_t *, size_t, const char *); @@ -217,6 +256,10 @@ typedef const int *wctrans_t; wctrans_t wctrans(const char *); wint_t towctrans(wint_t, wctrans_t); +/*───────────────────────────────────────────────────────────────────────────│─╗ +│ cosmopolitan § strings » system ─╬─│┼ +╚────────────────────────────────────────────────────────────────────────────│*/ + char *strsignal(int) returnsnonnull libcesque; char *strerror(int) returnsnonnull dontthrow nocallback; char *strerrno(int) nosideeffect libcesque; diff --git a/libc/sysv/consts.sh b/libc/sysv/consts.sh index bf6f88b7a..becdfc25c 100755 --- a/libc/sysv/consts.sh +++ b/libc/sysv/consts.sh @@ -1606,8 +1606,6 @@ syscon iff IFF_MASTER 0x0400 0 0 0 0 0 syscon iff IFF_PORTSEL 0x2000 0 0 0 0 0 syscon iff IFF_SLAVE 0x0800 0 0 0 0 0 -syscon misc CLOCKS_PER_SEC 1000000 1000000 0x80 100 100 10000000 - syscon sock SOCK_STREAM 1 1 1 1 1 1 # consensus syscon sock SOCK_DGRAM 2 2 2 2 2 2 # consensus syscon sock SOCK_RAW 3 3 3 3 3 3 # consensus @@ -1618,6 +1616,13 @@ syscon sock SOCK_NONBLOCK 0x0800 0x0800 0x20000000 0x4000 0x20000000 syscon sock SOCK_DCCP 6 0 0 0 0 0 # what is it? syscon sock SOCK_PACKET 10 0 0 0 0 0 # what is it? +syscon misc TH_FIN 1 1 1 1 1 1 # consensus +syscon misc TH_SYN 2 2 2 2 2 2 # consensus +syscon misc TH_RST 4 4 4 4 4 4 # consensus +syscon misc TH_PUSH 8 8 8 8 8 0 # unix consensus +syscon misc TH_URG 32 32 32 32 32 32 # consensus +syscon misc TH_ACK 16 16 16 16 16 16 # consensus + syscon shm SHM_R 0x0100 0x0100 0x0100 0x0100 0x0100 0 # unix consensus syscon shm SHM_RDONLY 0x1000 0x1000 0x1000 0x1000 0x1000 0 # unix consensus syscon shm SHM_RND 0x2000 0x2000 0x2000 0x2000 0x2000 0 # unix consensus @@ -1663,6 +1668,23 @@ syscon misc RPM_PCO_ADD 1 1 1 1 1 0 # unix consensus syscon misc RPM_PCO_CHANGE 2 2 2 2 2 0 # unix consensus syscon misc RPM_PCO_SETGLOBAL 3 3 3 3 3 0 # unix consensus +syscon misc _XOPEN_IOV_MAX 0x10 0x10 0x10 0x10 0x10 0 # unix consensus +syscon misc _XOPEN_ENH_I18N 1 1 -1 -1 -1 0 +syscon misc _XOPEN_UNIX 1 1 -1 -1 -1 0 +syscon misc _XOPEN_NAME_MAX 63 63 63 63 63 63 # forced consensus +syscon misc _XOPEN_PATH_MAX 255 255 255 255 255 255 # forced consensus +syscon misc _XOPEN_VERSION 700 600 0 0 0 0 +syscon misc _XOPEN_SOURCE 700 0 0 0 0 0 + +syscon misc NL_CAT_LOCALE 1 1 1 1 1 0 # unix consensus +syscon misc NL_MSGMAX 0x7fffffff 0x7fff 0x7fff 0x7fff 0x7fff 0 # bsd consensus +syscon misc NL_SETMAX 0x7fffffff 255 255 255 255 0 # bsd consensus +syscon misc NL_ARGMAX 0x1000 9 0x1000 9 9 0 +syscon misc NL_LANGMAX 0x0800 14 31 14 14 0 +syscon misc NL_TEXTMAX 0x7fffffff 0x0800 0x0800 255 255 0 +syscon misc NL_NMAX 0x7fffffff 1 1 0 0 0 +syscon misc NL_SETD 1 1 0 1 1 0 + syscon misc FSETLOCKING_QUERY 0 0 0 0 0 0 # consensus syscon misc FSETLOCKING_BYCALLER 2 0 0 0 0 0 syscon misc FSETLOCKING_INTERNAL 1 0 0 0 0 0 @@ -2103,6 +2125,437 @@ syscon nr __NR_io_uring_register 0x01ab 0xfff 0xfff 0xfff 0xfff 0xff syscon nr __NR_pledge 0xfff 0xfff 0xfff 0x006c 0xfff 0xfff syscon nr __NR_msyscall 0xfff 0xfff 0xfff 0x0025 0xfff 0xfff syscon nr __NR_ktrace 0xfff 0xfff 0x002d 0x002d 0x02d 0xfff +syscon nr __NR_kqueue 0xfff 0x200016a 0x016a 0x010d 0x158 0xfff +syscon nr __NR_kevent 0xfff 0x2000171 0x0230 0x0048 0x1b3 0xfff +syscon nr __NR_revoke 0xfff 0x2000038 0x0038 0x0038 0x038 0xfff +syscon nr __NR_setlogin 0xfff 0x2000032 0x0032 0x0032 0xfff 0xfff +syscon nr __NR_getfh 0xfff 0x20000a1 0x00a1 0x00a1 0x18b 0xfff +syscon nr __NR_chflags 0xfff 0x2000022 0x0022 0x0022 0x022 0xfff +syscon nr __NR_getfsstat 0xfff 0x200015b 0x022d 0x003e 0xfff 0xfff +syscon nr __NR_nfssvc 0xfff 0x200009b 0x009b 0x009b 0x09b 0xfff +syscon nr __NR_adjtime 0xfff 0x200008c 0x008c 0x008c 0x1a5 0xfff +syscon nr __NR_fchflags 0xfff 0x2000023 0x0023 0x0023 0x023 0xfff +syscon nr __NR_seteuid 0xfff 0x20000b7 0x00b7 0x00b7 0xfff 0xfff +syscon nr __NR_setegid 0xfff 0x20000b6 0x00b6 0x00b6 0xfff 0xfff +syscon nr __NR_fpathconf 0xfff 0x20000c0 0x00c0 0x00c0 0x0c0 0xfff +syscon nr __NR_fhopen 0xfff 0x20000f8 0x012a 0x0108 0x18c 0xfff +syscon nr __NR_unmount 0xfff 0x200009f 0x0016 0x0016 0x016 0xfff +syscon nr __NR_issetugid 0xfff 0x2000147 0x00fd 0x00fd 0xfff 0xfff +syscon nr __NR_minherit 0xfff 0x20000fa 0x00fa 0x00fa 0x111 0xfff +syscon nr __NR_pathconf 0xfff 0x20000bf 0x00bf 0x00bf 0x0bf 0xfff +syscon nr __NR_sysctl 0xfff 0x20000ca 0xfff 0x00ca 0x0ca 0xfff +syscon nr __NR_ntp_adjtime 0xfff 0x200020f 0x00b0 0xfff 0x0b0 0xfff +syscon nr __NR_ntp_gettime 0xfff 0x2000210 0x00f8 0xfff 0x1c0 0xfff +syscon nr __NR_shm_unlink 0xfff 0x200010b 0x01e3 0xfff 0xfff 0xfff +syscon nr __NR_shm_open 0xfff 0x200010a 0x01e2 0xfff 0xfff 0xfff +syscon nr __NR_aio_read 0xfff 0x200013e 0x013e 0xfff 0x192 0xfff +syscon nr __NR_aio_suspend 0xfff 0x200013b 0x013b 0xfff 0x1b6 0xfff +syscon nr __NR_aio_cancel 0xfff 0x200013c 0x013c 0xfff 0x18f 0xfff +syscon nr __NR_aio_fsync 0xfff 0x2000139 0x01d1 0xfff 0x191 0xfff +syscon nr __NR_aio_error 0xfff 0x200013d 0x013d 0xfff 0x190 0xfff +syscon nr __NR_aio_return 0xfff 0x200013a 0x013a 0xfff 0x193 0xfff +syscon nr __NR_aio_write 0xfff 0x200013f 0x013f 0xfff 0x195 0xfff +syscon nr __NR_aio_waitcomplete 0xfff 0xfff 0x0167 0xfff 0xfff 0xfff +syscon nr __NR_aio_suspend_nocancel 0xfff 0x20001a5 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_aio_mlock 0xfff 0xfff 0x021f 0xfff 0xfff 0xfff +syscon nr __NR_sigwait 0xfff 0x200014a 0x01ad 0xfff 0xfff 0xfff +syscon nr __NR_undelete 0xfff 0x20000cd 0x00cd 0xfff 0x0cd 0xfff +syscon nr __NR_getlogin 0xfff 0x2000031 0x0031 0xfff 0xfff 0xfff +syscon nr __NR_getdtablesize 0xfff 0x2000059 0x0059 0xfff 0xfff 0xfff +syscon nr __NR_setauid 0xfff 0x2000162 0x01c0 0xfff 0xfff 0xfff +syscon nr __NR_audit 0xfff 0x200015e 0x01bd 0xfff 0xfff 0xfff +syscon nr __NR_auditctl 0xfff 0x2000167 0x01c5 0xfff 0xfff 0xfff +syscon nr __NR_getaudit_addr 0xfff 0x2000165 0x01c3 0xfff 0xfff 0xfff +syscon nr __NR_getdirentries 0xfff 0x2000158 0x022a 0xfff 0xfff 0xfff +syscon nr __NR_lio_listio 0xfff 0x2000140 0x0140 0xfff 0x196 0xfff +syscon nr __NR_setaudit_addr 0xfff 0x2000166 0x01c4 0xfff 0xfff 0xfff +syscon nr __NR_getauid 0xfff 0x2000161 0x01bf 0xfff 0xfff 0xfff +syscon nr __NR_semsys 0xfff 0x20000fb 0x00a9 0xfff 0xfff 0xfff +syscon nr __NR_auditon 0xfff 0x200015f 0x01be 0xfff 0xfff 0xfff +syscon nr __NR_msgsys 0xfff 0x20000fc 0x00aa 0xfff 0xfff 0xfff +syscon nr __NR_shmsys 0xfff 0x20000fd 0x00ab 0xfff 0xfff 0xfff +syscon nr __NR_fhstat 0xfff 0xfff 0x0229 0x0126 0x1c3 0xfff +syscon nr __NR_chflagsat 0xfff 0xfff 0x021c 0x006b 0xfff 0xfff +syscon nr __NR_profil 0xfff 0xfff 0x002c 0x002c 0x02c 0xfff +syscon nr __NR_fhstatfs 0xfff 0xfff 0x022e 0x0041 0xfff 0xfff +syscon nr __NR_utrace 0xfff 0xfff 0x014f 0x00d1 0x132 0xfff +syscon nr __NR_closefrom 0xfff 0xfff 0x01fd 0x011f 0xfff 0xfff +syscon nr __NR_pthread_markcancel 0xfff 0x200014c 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_pthread_kill 0xfff 0x2000148 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_pthread_fchdir 0xfff 0x200015d 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_pthread_sigmask 0xfff 0x2000149 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_pthread_chdir 0xfff 0x200015c 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_pthread_canceled 0xfff 0x200014d 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_disable_threadsignal 0xfff 0x200014b 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_abort_with_payload 0xfff 0x2000209 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_accept_nocancel 0xfff 0x2000194 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_access_extended 0xfff 0x200011c 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_audit_session_join 0xfff 0x20001ad 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_audit_session_port 0xfff 0x20001b0 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_audit_session_self 0xfff 0x20001ac 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_bsdthread_ctl 0xfff 0x20001de 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_bsdthread_terminate 0xfff 0x2000169 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_change_fdguard_np 0xfff 0x20001bc 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_chmod_extended 0xfff 0x200011a 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_clonefileat 0xfff 0x20001ce 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_close_nocancel 0xfff 0x200018f 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_coalition 0xfff 0x20001ca 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_coalition_info 0xfff 0x20001cb 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_connect_nocancel 0xfff 0x2000199 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_connectx 0xfff 0x20001bf 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_copyfile 0xfff 0x20000e3 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_csops 0xfff 0x20000a9 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_csops_audittoken 0xfff 0x20000aa 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_csrctl 0xfff 0x20001e3 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_delete 0xfff 0x20000e2 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_disconnectx 0xfff 0x20001c0 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_exchangedata 0xfff 0x20000df 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_fchmod_extended 0xfff 0x200011b 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_fclonefileat 0xfff 0x2000205 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_fcntl_nocancel 0xfff 0x2000196 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_ffsctl 0xfff 0x20000f5 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_fgetattrlist 0xfff 0x20000e4 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_fileport_makefd 0xfff 0x20001af 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_fileport_makeport 0xfff 0x20001ae 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_fmount 0xfff 0x200020e 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_fs_snapshot 0xfff 0x2000206 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_fsctl 0xfff 0x20000f2 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_fsetattrlist 0xfff 0x20000e5 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_fstat_extended 0xfff 0x2000119 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_fsync_nocancel 0xfff 0x2000198 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_getattrlist 0xfff 0x20000dc 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_getattrlistat 0xfff 0x20001dc 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_getattrlistbulk 0xfff 0x20001cd 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_getdirentriesattr 0xfff 0x20000de 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_gethostuuid 0xfff 0x200008e 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_getsgroups 0xfff 0x2000120 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_getwgroups 0xfff 0x2000122 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_grab_pgo_data 0xfff 0x20001ed 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_guarded_close_np 0xfff 0x20001ba 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_guarded_kqueue_np 0xfff 0x20001bb 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_guarded_open_np 0xfff 0x20001b9 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_guarded_pwrite_np 0xfff 0x20001e6 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_guarded_write_np 0xfff 0x20001e5 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_guarded_writev_np 0xfff 0x20001e7 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_identitysvc 0xfff 0x2000125 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_initgroups 0xfff 0x20000f3 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_iopolicysys 0xfff 0x2000142 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_kas_info 0xfff 0x20001b7 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_kdebug_trace 0xfff 0x20000b3 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_kdebug_trace_string 0xfff 0x20000b2 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_kdebug_typefilter 0xfff 0x20000b1 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_kevent_id 0xfff 0x2000177 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_kevent_qos 0xfff 0x2000176 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_ledger 0xfff 0x2000175 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_lstat_extended 0xfff 0x2000156 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_memorystatus_control 0xfff 0x20001b8 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_memorystatus_get_level 0xfff 0x20001c5 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_microstackshot 0xfff 0x20001ec 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_mkdir_extended 0xfff 0x2000124 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_mkfifo_extended 0xfff 0x2000123 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_modwatch 0xfff 0x20000e9 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_mremap_encrypted 0xfff 0x20001e9 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_msgrcv_nocancel 0xfff 0x20001a3 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_msgsnd_nocancel 0xfff 0x20001a2 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_msync_nocancel 0xfff 0x2000195 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_necp_client_action 0xfff 0x20001f6 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_necp_match_policy 0xfff 0x20001cc 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_necp_open 0xfff 0x20001f5 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_necp_session_action 0xfff 0x200020b 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_necp_session_open 0xfff 0x200020a 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_net_qos_guideline 0xfff 0x200020d 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_netagent_trigger 0xfff 0x20001ea 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_nfsclnt 0xfff 0x20000f7 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_open_dprotected_np 0xfff 0x20000d8 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_open_extended 0xfff 0x2000115 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_open_nocancel 0xfff 0x200018e 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_openat_nocancel 0xfff 0x20001d0 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_openbyid_np 0xfff 0x20001df 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_os_fault_with_payload 0xfff 0x2000211 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_peeloff 0xfff 0x20001c1 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_persona 0xfff 0x20001ee 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_pid_hibernate 0xfff 0x20001b3 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_pid_resume 0xfff 0x20001b2 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_pid_shutdown_sockets 0xfff 0x20001b4 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_pid_suspend 0xfff 0x20001b1 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_poll_nocancel 0xfff 0x20001a1 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_pread_nocancel 0xfff 0x200019e 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_proc_info 0xfff 0x2000150 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_proc_rlimit_control 0xfff 0x20001be 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_proc_trace_log 0xfff 0x20001dd 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_proc_uuid_policy 0xfff 0x20001c4 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_process_policy 0xfff 0x2000143 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_pselect_nocancel 0xfff 0x200018b 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_psynch_cvbroad 0xfff 0x200012f 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_psynch_cvclrprepost 0xfff 0x2000138 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_psynch_cvsignal 0xfff 0x2000130 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_psynch_mutexdrop 0xfff 0x200012e 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_psynch_mutexwait 0xfff 0x200012d 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_psynch_rw_downgrade 0xfff 0x200012b 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_psynch_rw_longrdlock 0xfff 0x2000129 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_psynch_rw_rdlock 0xfff 0x2000132 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_psynch_rw_unlock 0xfff 0x2000134 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_psynch_rw_unlock2 0xfff 0x2000135 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_psynch_rw_upgrade 0xfff 0x200012c 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_psynch_rw_wrlock 0xfff 0x2000133 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_psynch_rw_yieldwrlock 0xfff 0x200012a 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_pwrite_nocancel 0xfff 0x200019f 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_read_nocancel 0xfff 0x200018c 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_readv_nocancel 0xfff 0x200019b 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_recvfrom_nocancel 0xfff 0x2000193 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_recvmsg_nocancel 0xfff 0x2000191 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_recvmsg_x 0xfff 0x20001e0 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_renameatx_np 0xfff 0x20001e8 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_searchfs 0xfff 0x20000e1 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_select_nocancel 0xfff 0x2000197 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_sem_close 0xfff 0x200010d 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_sem_open 0xfff 0x200010c 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_sem_post 0xfff 0x2000111 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_sem_trywait 0xfff 0x2000110 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_sem_unlink 0xfff 0x200010e 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_sem_wait 0xfff 0x200010f 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_sem_wait_nocancel 0xfff 0x20001a4 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_sendmsg_nocancel 0xfff 0x2000192 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_sendmsg_x 0xfff 0x20001e1 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_sendto_nocancel 0xfff 0x200019d 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_setattrlist 0xfff 0x20000dd 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_setattrlistat 0xfff 0x200020c 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_setprivexec 0xfff 0x2000098 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_setsgroups 0xfff 0x200011f 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_settid 0xfff 0x200011d 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_settid_with_pid 0xfff 0x2000137 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_setwgroups 0xfff 0x2000121 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_sfi_ctl 0xfff 0x20001c8 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_sfi_pidctl 0xfff 0x20001c9 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_shared_region_check_np 0xfff 0x2000126 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_sigsuspend_nocancel 0xfff 0x200019a 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_socket_delegate 0xfff 0x20001c2 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_stat_extended 0xfff 0x2000155 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_sysctlbyname 0xfff 0x2000112 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_system_override 0xfff 0x20001c6 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_telemetry 0xfff 0x20001c3 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_terminate_with_payload 0xfff 0x2000208 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_thread_selfcounts 0xfff 0x20000ba 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_thread_selfid 0xfff 0x2000174 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_thread_selfusage 0xfff 0x20001e2 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_ulock_wait 0xfff 0x2000203 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_ulock_wake 0xfff 0x2000204 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_umask_extended 0xfff 0x2000116 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_usrctl 0xfff 0x20001bd 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_vfs_purge 0xfff 0x20001c7 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_vm_pressure_monitor 0xfff 0x2000128 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_wait4_nocancel 0xfff 0x2000190 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_waitevent 0xfff 0x20000e8 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_waitid_nocancel 0xfff 0x20001a0 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_watchevent 0xfff 0x20000e7 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_work_interval_ctl 0xfff 0x20001f3 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_workq_kernreturn 0xfff 0x2000170 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_workq_open 0xfff 0x200016f 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_write_nocancel 0xfff 0x200018d 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_writev_nocancel 0xfff 0x200019c 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_abort2 0xfff 0xfff 0x01cf 0xfff 0xfff 0xfff +syscon nr __NR_afs3_syscall 0xfff 0xfff 0x0179 0xfff 0xfff 0xfff +syscon nr __NR_bindat 0xfff 0xfff 0x021a 0xfff 0xfff 0xfff +syscon nr __NR_break 0xfff 0xfff 0x0011 0xfff 0xfff 0xfff +syscon nr __NR_cap_enter 0xfff 0xfff 0x0204 0xfff 0xfff 0xfff +syscon nr __NR_cap_fcntls_get 0xfff 0xfff 0x0219 0xfff 0xfff 0xfff +syscon nr __NR_cap_fcntls_limit 0xfff 0xfff 0x0218 0xfff 0xfff 0xfff +syscon nr __NR_cap_getmode 0xfff 0xfff 0x0205 0xfff 0xfff 0xfff +syscon nr __NR_cap_ioctls_get 0xfff 0xfff 0x0217 0xfff 0xfff 0xfff +syscon nr __NR_cap_ioctls_limit 0xfff 0xfff 0x0216 0xfff 0xfff 0xfff +syscon nr __NR_cap_rights_limit 0xfff 0xfff 0x0215 0xfff 0xfff 0xfff +syscon nr __NR_clock_getcpuclockid2 0xfff 0xfff 0x00f7 0xfff 0x1e2 0xfff +syscon nr __NR_connectat 0xfff 0xfff 0x021b 0xfff 0xfff 0xfff +syscon nr __NR_cpuset 0xfff 0xfff 0x01e4 0xfff 0xfff 0xfff +syscon nr __NR_cpuset_getdomain 0xfff 0xfff 0x0231 0xfff 0xfff 0xfff +syscon nr __NR_cpuset_getid 0xfff 0xfff 0x01e6 0xfff 0xfff 0xfff +syscon nr __NR_cpuset_setdomain 0xfff 0xfff 0x0232 0xfff 0xfff 0xfff +syscon nr __NR_cpuset_setid 0xfff 0xfff 0x01e5 0xfff 0xfff 0xfff +syscon nr __NR_eaccess 0xfff 0xfff 0x0178 0xfff 0xfff 0xfff +syscon nr __NR_extattr_delete_fd 0xfff 0xfff 0x0175 0xfff 0x16e 0xfff +syscon nr __NR_extattr_delete_file 0xfff 0xfff 0x0166 0xfff 0x16b 0xfff +syscon nr __NR_extattr_delete_link 0xfff 0xfff 0x019e 0xfff 0x171 0xfff +syscon nr __NR_extattr_get_fd 0xfff 0xfff 0x0174 0xfff 0x16d 0xfff +syscon nr __NR_extattr_get_file 0xfff 0xfff 0x0165 0xfff 0x16a 0xfff +syscon nr __NR_extattr_get_link 0xfff 0xfff 0x019d 0xfff 0x170 0xfff +syscon nr __NR_extattr_list_fd 0xfff 0xfff 0x01b5 0xfff 0x172 0xfff +syscon nr __NR_extattr_list_file 0xfff 0xfff 0x01b6 0xfff 0x173 0xfff +syscon nr __NR_extattr_list_link 0xfff 0xfff 0x01b7 0xfff 0x174 0xfff +syscon nr __NR_extattr_set_fd 0xfff 0xfff 0x0173 0xfff 0x16c 0xfff +syscon nr __NR_extattr_set_file 0xfff 0xfff 0x0164 0xfff 0x169 0xfff +syscon nr __NR_extattr_set_link 0xfff 0xfff 0x019c 0xfff 0x16f 0xfff +syscon nr __NR_extattrctl 0xfff 0xfff 0x0163 0xfff 0x168 0xfff +syscon nr __NR_fexecve 0xfff 0xfff 0x01ec 0xfff 0x1d1 0xfff +syscon nr __NR_ffclock_getcounter 0xfff 0xfff 0x00f1 0xfff 0xfff 0xfff +syscon nr __NR_ffclock_getestimate 0xfff 0xfff 0x00f3 0xfff 0xfff 0xfff +syscon nr __NR_ffclock_setestimate 0xfff 0xfff 0x00f2 0xfff 0xfff 0xfff +syscon nr __NR_fhlink 0xfff 0xfff 0x0235 0xfff 0xfff 0xfff +syscon nr __NR_fhlinkat 0xfff 0xfff 0x0236 0xfff 0xfff 0xfff +syscon nr __NR_fhreadlink 0xfff 0xfff 0x0237 0xfff 0xfff 0xfff +syscon nr __NR_getaudit 0xfff 0xfff 0x01c1 0xfff 0xfff 0xfff +syscon nr __NR_getcontext 0xfff 0xfff 0x01a5 0xfff 0x133 0xfff +syscon nr __NR_getfhat 0xfff 0xfff 0x0234 0xfff 0xfff 0xfff +syscon nr __NR_gethostid 0xfff 0xfff 0x008e 0xfff 0xfff 0xfff +syscon nr __NR_getkerninfo 0xfff 0xfff 0x003f 0xfff 0xfff 0xfff +syscon nr __NR_getloginclass 0xfff 0xfff 0x020b 0xfff 0xfff 0xfff +syscon nr __NR_getpagesize 0xfff 0xfff 0x0040 0xfff 0xfff 0xfff +syscon nr __NR_gssd_syscall 0xfff 0xfff 0x01f9 0xfff 0xfff 0xfff +syscon nr __NR_jail 0xfff 0xfff 0x0152 0xfff 0xfff 0xfff +syscon nr __NR_jail_attach 0xfff 0xfff 0x01b4 0xfff 0xfff 0xfff +syscon nr __NR_jail_get 0xfff 0xfff 0x01fa 0xfff 0xfff 0xfff +syscon nr __NR_jail_remove 0xfff 0xfff 0x01fc 0xfff 0xfff 0xfff +syscon nr __NR_jail_set 0xfff 0xfff 0x01fb 0xfff 0xfff 0xfff +syscon nr __NR_kenv 0xfff 0xfff 0x0186 0xfff 0xfff 0xfff +syscon nr __NR_kldfind 0xfff 0xfff 0x0132 0xfff 0xfff 0xfff +syscon nr __NR_kldfirstmod 0xfff 0xfff 0x0135 0xfff 0xfff 0xfff +syscon nr __NR_kldload 0xfff 0xfff 0x0130 0xfff 0xfff 0xfff +syscon nr __NR_kldnext 0xfff 0xfff 0x0133 0xfff 0xfff 0xfff +syscon nr __NR_kldstat 0xfff 0xfff 0x0134 0xfff 0xfff 0xfff +syscon nr __NR_kldsym 0xfff 0xfff 0x0151 0xfff 0xfff 0xfff +syscon nr __NR_kldunload 0xfff 0xfff 0x0131 0xfff 0xfff 0xfff +syscon nr __NR_kldunloadf 0xfff 0xfff 0x01bc 0xfff 0xfff 0xfff +syscon nr __NR_kmq_notify 0xfff 0xfff 0x01cd 0xfff 0xfff 0xfff +syscon nr __NR_kmq_setattr 0xfff 0xfff 0x01ca 0xfff 0xfff 0xfff +syscon nr __NR_kmq_timedreceive 0xfff 0xfff 0x01cb 0xfff 0xfff 0xfff +syscon nr __NR_kmq_timedsend 0xfff 0xfff 0x01cc 0xfff 0xfff 0xfff +syscon nr __NR_kmq_unlink 0xfff 0xfff 0x01ce 0xfff 0xfff 0xfff +syscon nr __NR_ksem_close 0xfff 0xfff 0x0190 0xfff 0xfff 0xfff +syscon nr __NR_ksem_destroy 0xfff 0xfff 0x0198 0xfff 0xfff 0xfff +syscon nr __NR_ksem_getvalue 0xfff 0xfff 0x0197 0xfff 0xfff 0xfff +syscon nr __NR_ksem_init 0xfff 0xfff 0x0194 0xfff 0xfff 0xfff +syscon nr __NR_ksem_open 0xfff 0xfff 0x0195 0xfff 0xfff 0xfff +syscon nr __NR_ksem_post 0xfff 0xfff 0x0191 0xfff 0xfff 0xfff +syscon nr __NR_ksem_timedwait 0xfff 0xfff 0x01b9 0xfff 0xfff 0xfff +syscon nr __NR_ksem_trywait 0xfff 0xfff 0x0193 0xfff 0xfff 0xfff +syscon nr __NR_ksem_unlink 0xfff 0xfff 0x0196 0xfff 0xfff 0xfff +syscon nr __NR_ksem_wait 0xfff 0xfff 0x0192 0xfff 0xfff 0xfff +syscon nr __NR_ktimer_create 0xfff 0xfff 0x00eb 0xfff 0xfff 0xfff +syscon nr __NR_ktimer_delete 0xfff 0xfff 0x00ec 0xfff 0xfff 0xfff +syscon nr __NR_ktimer_getoverrun 0xfff 0xfff 0x00ef 0xfff 0xfff 0xfff +syscon nr __NR_ktimer_gettime 0xfff 0xfff 0x00ee 0xfff 0xfff 0xfff +syscon nr __NR_ktimer_settime 0xfff 0xfff 0x00ed 0xfff 0xfff 0xfff +syscon nr __NR_lchflags 0xfff 0xfff 0x0187 0xfff 0x130 0xfff +syscon nr __NR_lchmod 0xfff 0xfff 0x0112 0xfff 0x112 0xfff +syscon nr __NR_lgetfh 0xfff 0xfff 0x00a0 0xfff 0xfff 0xfff +syscon nr __NR_lpathconf 0xfff 0xfff 0x0201 0xfff 0x1f3 0xfff +syscon nr __NR_lutimes 0xfff 0xfff 0x0114 0xfff 0x1a8 0xfff +syscon nr __NR_mac_syscall 0xfff 0xfff 0x018a 0xfff 0xfff 0xfff +syscon nr __NR_modfind 0xfff 0xfff 0x012f 0xfff 0xfff 0xfff +syscon nr __NR_modfnext 0xfff 0xfff 0x012e 0xfff 0xfff 0xfff +syscon nr __NR_modnext 0xfff 0xfff 0x012c 0xfff 0xfff 0xfff +syscon nr __NR_modstat 0xfff 0xfff 0x012d 0xfff 0xfff 0xfff +syscon nr __NR_nfstat 0xfff 0xfff 0x0117 0xfff 0xfff 0xfff +syscon nr __NR_nlm_syscall 0xfff 0xfff 0x009a 0xfff 0xfff 0xfff +syscon nr __NR_nlstat 0xfff 0xfff 0x0118 0xfff 0xfff 0xfff +syscon nr __NR_nmount 0xfff 0xfff 0x017a 0xfff 0xfff 0xfff +syscon nr __NR_nnpfs_syscall 0xfff 0xfff 0x0153 0xfff 0xfff 0xfff +syscon nr __NR_nstat 0xfff 0xfff 0x0116 0xfff 0xfff 0xfff +syscon nr __NR_pdfork 0xfff 0xfff 0x0206 0xfff 0xfff 0xfff +syscon nr __NR_pdgetpid 0xfff 0xfff 0x0208 0xfff 0xfff 0xfff +syscon nr __NR_pdkill 0xfff 0xfff 0x0207 0xfff 0xfff 0xfff +syscon nr __NR_posix_openpt 0xfff 0xfff 0x01f8 0xfff 0xfff 0xfff +syscon nr __NR_procctl 0xfff 0xfff 0x0220 0xfff 0xfff 0xfff +syscon nr __NR_psynch_cvwait 0xfff 0x2000131 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_quota 0xfff 0xfff 0x0095 0xfff 0xfff 0xfff +syscon nr __NR_rctl_add_rule 0xfff 0xfff 0x0210 0xfff 0xfff 0xfff +syscon nr __NR_rctl_get_limits 0xfff 0xfff 0x020f 0xfff 0xfff 0xfff +syscon nr __NR_rctl_get_racct 0xfff 0xfff 0x020d 0xfff 0xfff 0xfff +syscon nr __NR_rctl_get_rules 0xfff 0xfff 0x020e 0xfff 0xfff 0xfff +syscon nr __NR_rctl_remove_rule 0xfff 0xfff 0x0211 0xfff 0xfff 0xfff +syscon nr __NR_recv 0xfff 0xfff 0x0066 0xfff 0xfff 0xfff +syscon nr __NR_rfork 0xfff 0xfff 0x00fb 0xfff 0xfff 0xfff +syscon nr __NR_rtprio 0xfff 0xfff 0x00a6 0xfff 0xfff 0xfff +syscon nr __NR_rtprio_thread 0xfff 0xfff 0x01d2 0xfff 0xfff 0xfff +syscon nr __NR_send 0xfff 0xfff 0x0065 0xfff 0xfff 0xfff +syscon nr __NR_setaudit 0xfff 0xfff 0x01c2 0xfff 0xfff 0xfff +syscon nr __NR_setcontext 0xfff 0xfff 0x01a6 0xfff 0x134 0xfff +syscon nr __NR_setfib 0xfff 0xfff 0x00af 0xfff 0xfff 0xfff +syscon nr __NR_sethostid 0xfff 0xfff 0x008f 0xfff 0xfff 0xfff +syscon nr __NR_setloginclass 0xfff 0xfff 0x020c 0xfff 0xfff 0xfff +syscon nr __NR_sigblock 0xfff 0xfff 0x006d 0xfff 0xfff 0xfff +syscon nr __NR_sigqueue 0xfff 0xfff 0x01c8 0xfff 0xfff 0xfff +syscon nr __NR_sigsetmask 0xfff 0xfff 0x006e 0xfff 0xfff 0xfff +syscon nr __NR_sigstack 0xfff 0xfff 0x0070 0xfff 0xfff 0xfff +syscon nr __NR_sigvec 0xfff 0xfff 0x006c 0xfff 0xfff 0xfff +syscon nr __NR_sigwaitinfo 0xfff 0xfff 0x015a 0xfff 0xfff 0xfff +syscon nr __NR_sstk 0xfff 0xfff 0x0046 0xfff 0xfff 0xfff +syscon nr __NR_swapcontext 0xfff 0xfff 0x01a7 0xfff 0xfff 0xfff +syscon nr __NR_thr_create 0xfff 0xfff 0x01ae 0xfff 0xfff 0xfff +syscon nr __NR_thr_exit 0xfff 0xfff 0x01af 0xfff 0xfff 0xfff +syscon nr __NR_thr_kill 0xfff 0xfff 0x01b1 0xfff 0xfff 0xfff +syscon nr __NR_thr_kill2 0xfff 0xfff 0x01e1 0xfff 0xfff 0xfff +syscon nr __NR_thr_self 0xfff 0xfff 0x01b0 0xfff 0xfff 0xfff +syscon nr __NR_thr_set_name 0xfff 0xfff 0x01d0 0xfff 0xfff 0xfff +syscon nr __NR_thr_suspend 0xfff 0xfff 0x01ba 0xfff 0xfff 0xfff +syscon nr __NR_thr_wake 0xfff 0xfff 0x01bb 0xfff 0xfff 0xfff +syscon nr __NR_uuidgen 0xfff 0xfff 0x0188 0xfff 0x163 0xfff +syscon nr __NR_vadvise 0xfff 0xfff 0x0048 0xfff 0xfff 0xfff +syscon nr __NR_wait 0xfff 0xfff 0x0054 0xfff 0xfff 0xfff +syscon nr __NR_wait6 0xfff 0xfff 0x0214 0xfff 0x1e1 0xfff +syscon nr __NR_yield 0xfff 0xfff 0x0141 0xfff 0xfff 0xfff +syscon nr __NR_tfork 0xfff 0xfff 0xfff 0x0008 0xfff 0xfff +syscon nr __NR_thrsleep 0xfff 0xfff 0xfff 0x005e 0xfff 0xfff +syscon nr __NR_thrwakeup 0xfff 0xfff 0xfff 0x012d 0xfff 0xfff +syscon nr __NR_threxit 0xfff 0xfff 0xfff 0x012e 0xfff 0xfff +syscon nr __NR_thrsigdivert 0xfff 0xfff 0xfff 0x012f 0xfff 0xfff +syscon nr __NR_set_tcb 0xfff 0xfff 0xfff 0x0149 0xfff 0xfff +syscon nr __NR_get_tcb 0xfff 0xfff 0xfff 0x014a 0xfff 0xfff +syscon nr __NR_adjfreq 0xfff 0xfff 0xfff 0x0131 0xfff 0xfff +syscon nr __NR_getdtablecount 0xfff 0xfff 0xfff 0x0012 0xfff 0xfff +syscon nr __NR_getlogin_r 0xfff 0xfff 0xfff 0x008d 0xfff 0xfff +syscon nr __NR_getrtable 0xfff 0xfff 0xfff 0x0137 0xfff 0xfff +syscon nr __NR_getthrid 0xfff 0xfff 0xfff 0x012b 0xfff 0xfff +syscon nr __NR_kbind 0xfff 0xfff 0xfff 0x0056 0xfff 0xfff +syscon nr __NR_mquery 0xfff 0xfff 0xfff 0x011e 0xfff 0xfff +syscon nr __NR_obreak 0xfff 0xfff 0xfff 0x0011 0x011 0xfff +syscon nr __NR_sendsyslog 0xfff 0xfff 0xfff 0x0070 0xfff 0xfff +syscon nr __NR_setrtable 0xfff 0xfff 0xfff 0x0136 0xfff 0xfff +syscon nr __NR_swapctl 0xfff 0xfff 0xfff 0x00c1 0x10f 0xfff +syscon nr __NR_thrkill 0xfff 0xfff 0xfff 0x0077 0xfff 0xfff +syscon nr __NR_unveil 0xfff 0xfff 0xfff 0x0072 0xfff 0xfff +syscon nr __NR_mac_get_link 0xfff 0x2000180 0x019a 0xfff 0xfff 0xfff +syscon nr __NR_mac_set_link 0xfff 0x2000181 0x019b 0xfff 0xfff 0xfff +syscon nr __NR_mac_get_fd 0xfff 0x2000184 0x0182 0xfff 0xfff 0xfff +syscon nr __NR_mac_get_file 0xfff 0x200017e 0x0183 0xfff 0xfff 0xfff +syscon nr __NR_mac_get_proc 0xfff 0x2000182 0x0180 0xfff 0xfff 0xfff +syscon nr __NR_mac_set_fd 0xfff 0x2000185 0x0184 0xfff 0xfff 0xfff +syscon nr __NR_mac_get_pid 0xfff 0x2000186 0x0199 0xfff 0xfff 0xfff +syscon nr __NR_mac_set_proc 0xfff 0x2000183 0x0181 0xfff 0xfff 0xfff +syscon nr __NR_mac_set_file 0xfff 0x200017f 0x0185 0xfff 0xfff 0xfff +syscon nr __NR_mac_execve 0xfff 0x200017c 0x019f 0xfff 0xfff 0xfff +syscon nr __NR_acl_get_link 0xfff 0xfff 0x01a9 0xfff 0xfff 0xfff +syscon nr __NR_sigwait_nocancel 0xfff 0x20001a6 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_cap_rights_get 0xfff 0xfff 0x0203 0xfff 0xfff 0xfff +syscon nr __NR_semwait_signal 0xfff 0x200014e 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_acl_set_link 0xfff 0xfff 0x01aa 0xfff 0xfff 0xfff +syscon nr __NR_acl_set_fd 0xfff 0xfff 0x015e 0xfff 0xfff 0xfff +syscon nr __NR_old_semwait_signal 0xfff 0x2000172 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_setugid 0xfff 0xfff 0x0176 0xfff 0xfff 0xfff +syscon nr __NR_acl_aclcheck_fd 0xfff 0xfff 0x0162 0xfff 0xfff 0xfff +syscon nr __NR_acl_get_fd 0xfff 0xfff 0x015d 0xfff 0xfff 0xfff +syscon nr __NR___sysctl 0xfff 0xfff 0x00ca 0xfff 0xfff 0xfff +syscon nr __NR_mac_getfsstat 0xfff 0x20001aa 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_mac_get_mount 0xfff 0x20001a9 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_acl_delete_link 0xfff 0xfff 0x01ab 0xfff 0xfff 0xfff +syscon nr __NR_mac_mount 0xfff 0x20001a8 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_acl_get_file 0xfff 0xfff 0x015b 0xfff 0xfff 0xfff +syscon nr __NR_acl_aclcheck_file 0xfff 0xfff 0x0161 0xfff 0xfff 0xfff +syscon nr __NR_acl_delete_fd 0xfff 0xfff 0x0160 0xfff 0xfff 0xfff +syscon nr __NR_acl_aclcheck_link 0xfff 0xfff 0x01ac 0xfff 0xfff 0xfff +syscon nr __NR___mac_syscall 0xfff 0x200017d 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_acl_set_file 0xfff 0xfff 0x015c 0xfff 0xfff 0xfff +syscon nr __NR_acl_delete_file 0xfff 0xfff 0x015f 0xfff 0xfff 0xfff +syscon nr __NR_syscall 0xfff 0xfff 0xfff 0x00c6 0xfff 0xfff +syscon nr __NR__umtx_op 0xfff 0xfff 0x01c6 0xfff 0xfff 0xfff +syscon nr __NR_semwait_signal_nocancel 0xfff 0x20001a7 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_old_semwait_signal_nocancel 0xfff 0x2000173 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_sctp_peeloff 0xfff 0xfff 0x01d7 0xfff 0xfff 0xfff +syscon nr __NR_sctp_generic_recvmsg 0xfff 0xfff 0x01da 0xfff 0xfff 0xfff +syscon nr __NR_sctp_generic_sendmsg 0xfff 0xfff 0x01d8 0xfff 0xfff 0xfff +syscon nr __NR_sctp_generic_sendmsg_iov 0xfff 0xfff 0x01d9 0xfff 0xfff 0xfff +syscon nr __NR_shared_region_map_and_slide_np 0xfff 0x20001b6 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_guarded_open_dprotected_np 0xfff 0x20001e4 0xfff 0xfff 0xfff 0xfff +syscon nr __NR_stack_snapshot_with_config 0xfff 0x20001eb 0xfff 0xfff 0xfff 0xfff # unilateral undocumented errnos # @@ -2240,6 +2693,44 @@ syscon icmp6 ICMP6_ROUTER_RENUMBERING 138 138 138 138 138 0 # unix syscon icmp6 ICMP6_RR_RESULT_FLAGS_FORBIDDEN 0x0100 0x0100 0x0100 0x0100 0x0100 0 # unix consensus syscon icmp6 ICMP6_RR_RESULT_FLAGS_OOB 0x0200 0x0200 0x0200 0x0200 0x0200 0 # unix consensus +# man fanotify(7) +syscon fan FAN_CLASS_NOTIF 0 0 0 0 0 0 # consensus +syscon fan FAN_ACCESS 1 0 0 0 0 0 +syscon fan FAN_ACCESS_PERM 0x020000 0 0 0 0 0 +syscon fan FAN_ALLOW 1 0 0 0 0 0 +syscon fan FAN_ALL_CLASS_BITS 12 0 0 0 0 0 +syscon fan FAN_ALL_EVENTS 59 0 0 0 0 0 +syscon fan FAN_ALL_INIT_FLAGS 63 0 0 0 0 0 +syscon fan FAN_ALL_MARK_FLAGS 255 0 0 0 0 0 +syscon fan FAN_ALL_OUTGOING_EVENTS 0x03403b 0 0 0 0 0 +syscon fan FAN_ALL_PERM_EVENTS 0x030000 0 0 0 0 0 +syscon fan FAN_CLASS_CONTENT 4 0 0 0 0 0 +syscon fan FAN_CLASS_PRE_CONTENT 8 0 0 0 0 0 +syscon fan FAN_CLOEXEC 1 0 0 0 0 0 +syscon fan FAN_CLOSE 24 0 0 0 0 0 +syscon fan FAN_CLOSE_NOWRITE 0x10 0 0 0 0 0 +syscon fan FAN_CLOSE_WRITE 8 0 0 0 0 0 +syscon fan FAN_DENY 2 0 0 0 0 0 +syscon fan FAN_EVENT_METADATA_LEN 24 0 0 0 0 0 +syscon fan FAN_EVENT_ON_CHILD 0x08000000 0 0 0 0 0 +syscon fan FAN_MARK_ADD 1 0 0 0 0 0 +syscon fan FAN_MARK_DONT_FOLLOW 4 0 0 0 0 0 +syscon fan FAN_MARK_FLUSH 0x80 0 0 0 0 0 +syscon fan FAN_MARK_IGNORED_MASK 0x20 0 0 0 0 0 +syscon fan FAN_MARK_IGNORED_SURV_MODIFY 0x40 0 0 0 0 0 +syscon fan FAN_MARK_MOUNT 0x10 0 0 0 0 0 +syscon fan FAN_MARK_ONLYDIR 8 0 0 0 0 0 +syscon fan FAN_MARK_REMOVE 2 0 0 0 0 0 +syscon fan FAN_MODIFY 2 0 0 0 0 0 +syscon fan FAN_NOFD -1 0 0 0 0 0 +syscon fan FAN_NONBLOCK 2 0 0 0 0 0 +syscon fan FAN_ONDIR 0x40000000 0 0 0 0 0 +syscon fan FAN_OPEN 0x20 0 0 0 0 0 +syscon fan FAN_OPEN_PERM 0x010000 0 0 0 0 0 +syscon fan FAN_Q_OVERFLOW 0x4000 0 0 0 0 0 +syscon fan FAN_UNLIMITED_MARKS 0x20 0 0 0 0 0 +syscon fan FAN_UNLIMITED_QUEUE 0x10 0 0 0 0 0 + syscon misc FIFOTYPE 54 54 54 54 54 0 # unix consensus syscon misc GRPQUOTA 1 1 1 1 1 0 # unix consensus syscon misc IF_NAMESIZE 0x10 0x10 0x10 0x10 0x10 0 # unix consensus @@ -2352,6 +2843,101 @@ syscon baud B3000000 0x100d 0 0 0 0 0 syscon baud B3500000 0x100e 0 0 0 0 0 syscon baud B4000000 0x100f 0 0 0 0 0 +syscon misc ALLOW_MEDIUM_REMOVAL 30 0 0 0 0 0 +syscon misc ASU 0 2 2 2 2 0 # bsd consensus +syscon misc ATF_NETMASK 0x20 0 0 0 0 0 +syscon misc AXSIG 0 0x10 0x10 0x10 0x10 0 # bsd consensus +syscon misc BITSPERBYTE 8 0 0 0 0 0 +syscon misc BLANK_CHECK 8 0 0 0 0 0 +syscon misc CHANGE_DEFINITION 0x40 0 0 0 0 0 +syscon misc CHARBITS 8 0 0 0 0 0 +syscon misc CHECK_CONDITION 1 0 0 0 0 0 +syscon misc CONDITION_GOOD 2 0 0 0 0 0 +syscon misc DATA_PROTECT 7 0 0 0 0 0 +syscon misc DELAYTIMER_MAX 0x7fffffff 0 0 0 0 0 +syscon misc DMAXEXP 0x0400 0 0 0 0 0 +syscon misc DMINEXP -1021 0 0 0 0 0 +syscon misc DOUBLEBITS 0x40 0 0 0 0 0 +syscon misc ERA_D_FMT 0x02002e 46 46 0 0 0 +syscon misc ERA_D_T_FMT 0x020030 47 47 0 0 0 +syscon misc ERA_T_FMT 0x020031 48 48 0 0 0 + +syscon misc FANOTIFY_METADATA_VERSION 3 0 0 0 0 0 +syscon misc FAPPEND 0x0400 8 8 8 8 0 # bsd consensus +syscon misc FASYNC 0x2000 0x40 0x40 0x40 0x40 0 # bsd consensus +syscon misc FFSYNC 0x101000 0x80 0x80 0x80 0x80 0 # bsd consensus +syscon misc FILENAME_MAX 0x1000 0x0400 0x0400 0x0400 0x0400 0 # bsd consensus +syscon misc FIOGETOWN 0x8903 0x4004667b 0x4004667b 0x4004667b 0x4004667b 0 # bsd consensus +syscon misc FIOSETOWN 0x8901 0x8004667c 0x8004667c 0x8004667c 0x8004667c 0 # bsd consensus +syscon misc FMAXEXP 0x80 0 0 0 0 0 +syscon misc FMINEXP -125 0 0 0 0 0 +syscon misc FNDELAY 0x0800 4 4 4 4 0 # bsd consensus +syscon misc FNONBLOCK 0x0800 4 4 4 4 0 # bsd consensus +syscon misc FOPEN_MAX 0x10 20 20 20 20 0 # bsd consensus +syscon misc FORMAT_UNIT 4 0 0 0 0 0 +syscon misc HARDWARE_ERROR 4 0 0 0 0 0 +syscon misc HEAD_OF_QUEUE_TAG 33 0 0 0 0 0 +syscon misc IGMP_MEMBERSHIP_QUERY 17 0 0 0 0 0 +syscon misc ILLEGAL_REQUEST 5 0 0 0 0 0 +syscon misc INITIATE_RECOVERY 15 0 0 0 0 0 +syscon misc INITIATOR_ERROR 5 0 0 0 0 0 +syscon misc INQUIRY 18 0 0 0 0 0 +syscon misc MAXHOSTNAMELEN 0x40 0x0100 0x0100 0x0100 0x0100 0 # bsd consensus +syscon misc MAXPATHLEN 255 255 255 255 255 255 # forced consensus +syscon misc MAXSYMLINKS 20 0x20 0x20 0x20 0x20 0 # bsd consensus +syscon misc MESSAGE_REJECT 7 0 0 0 0 0 +syscon misc MISCOMPARE 14 0 0 0 0 0 +syscon misc MOVE_MEDIUM 165 0 0 0 0 0 +syscon misc MTCOMPRESSION 0x20 0 0 0 0 0 +syscon misc MTFSFM 11 0 0 0 0 0 +syscon misc MTLOCK 28 0 0 0 0 0 +syscon misc MTMKPART 34 0 0 0 0 0 +syscon misc MTRAS1 14 0 0 0 0 0 +syscon misc MTRAS3 0x10 0 0 0 0 0 +syscon misc MTSETBLK 20 0 0 0 0 0 +syscon misc MTSETDENSITY 21 0 0 0 0 0 +syscon misc MTSETDRVBUFFER 24 0 0 0 0 0 +syscon misc MTSETPART 33 0 0 0 0 0 +syscon misc MTUNLOAD 31 0 0 0 0 0 +syscon misc MTUNLOCK 29 0 0 0 0 0 +syscon misc NCARGS 0x020000 0x040000 0x040000 0x040000 0x040000 0 # bsd consensus +syscon misc NGREG 23 0 0 0 0 0 +syscon misc NOGROUP -1 0xffff 0xffff 0xffff 0xffff 0 # bsd consensus +syscon misc ORDERED_QUEUE_TAG 34 0 0 0 0 0 +syscon misc ORIG_RAX 15 0 0 0 0 0 +syscon misc PRE_FETCH 52 0 0 0 0 0 +syscon misc QUEUE_FULL 20 0 0 0 0 0 +syscon misc REASSIGN_BLOCKS 7 0 0 0 0 0 +syscon misc RECEIVE_DIAGNOSTIC 28 0 0 0 0 0 +syscon misc RECOVERED_ERROR 1 0 0 0 0 0 +syscon misc RECOVER_BUFFERED_DATA 20 0 0 0 0 0 +syscon misc RELEASE_RECOVERY 0x10 0 0 0 0 0 +syscon misc REQUEST_SENSE 3 0 0 0 0 0 +syscon misc RESERVATION_CONFLICT 12 0 0 0 0 0 +syscon misc RESERVE 22 0 0 0 0 0 +syscon misc RESERVE_10 86 0 0 0 0 0 +syscon misc RESTORE_POINTERS 3 0 0 0 0 0 +syscon misc REZERO_UNIT 1 0 0 0 0 0 +syscon misc RE_DUP_MAX 0x7fff 255 255 255 255 0 # bsd consensus +syscon misc RTCF_DOREDIRECT 0x01000000 0 0 0 0 0 +syscon misc SAVE_POINTERS 2 0 0 0 0 0 +syscon misc SEM_VALUE_MAX 0x7fffffff 0x7fff 0x7fffffff 0xffffffff 0xffffffff 0 +syscon misc SEM_INFO 19 0 11 0 0 0 +syscon misc SEM_STAT 18 0 10 0 0 0 + +syscon misc SHMLBA 0 0x1000 0x1000 0x1000 0x1000 0 # bsd consensus +syscon misc SIMPLE_QUEUE_TAG 0x20 0 0 0 0 0 +syscon misc SPACE 17 0 0 0 0 0 +syscon misc START_STOP 27 0 0 0 0 0 +syscon misc STATUS_MASK 62 0 0 0 0 0 +syscon misc SWAP_FLAG_DISCARD 0x010000 0 0 0 0 0 +syscon misc SYNCHRONIZE_CACHE 53 0 0 0 0 0 +syscon misc UNIT_ATTENTION 6 0 0 0 0 0 +syscon misc UPDATE_BLOCK 61 0 0 0 0 0 +syscon misc UT_HOSTSIZE 0x0100 0x10 0 0x0100 0x0100 0 +syscon misc UT_LINESIZE 0x20 8 0 8 8 0 +syscon misc UT_NAMESIZE 0x20 8 0 0x20 0x20 0 + syscon misc WEOF 0xffffffff -1 -1 -1 -1 -1 # bsd consensus (win fake) syscon misc _LINUX_QUOTA_VERSION 2 0 0 0 0 0 syscon misc _SEM_SEMUN_UNDEFINED 1 0 0 0 0 0 @@ -2370,4 +2956,90 @@ syscon misc UL_SETFSIZE 2 2 2 0 0 0 syscon misc XATTR_CREATE 1 2 0 0 0 0 syscon misc XATTR_REPLACE 2 4 0 0 0 0 +syscon misc ACCOUNTING 9 9 0 0 0 0 +syscon misc AHZ 100 0x40 0 0x40 0x40 0 +syscon misc ALT_DIGITS 0x02002f 49 49 0 0 0 +syscon misc AM_STR 0x020026 5 5 4 4 0 +syscon misc B460800 0x1004 0 0x070800 0 0 0 +syscon misc B921600 0x1007 0 0x0e1000 0 0 0 +syscon misc BOOT_TIME 2 2 1 0 0 0 +syscon misc CHARCLASS_NAME_MAX 0x0800 14 14 0 0 0 +syscon misc CLOCKS_PER_SEC 1000000 1000000 0x80 100 100 10000000 +syscon misc CODESET 14 0 0 51 51 0 +syscon misc COLL_WEIGHTS_MAX 255 2 10 2 2 0 +syscon misc CPU_SETSIZE 0x0400 0 0x0100 0 0 0 +syscon misc CRNCYSTR 0x04000f 56 56 50 50 0 +syscon misc CRTSCTS 0x80000000 0x030000 0x030000 0x010000 0x010000 0 +syscon misc CSTATUS 0 20 20 255 255 0 +syscon misc DEAD_PROCESS 8 8 7 0 0 0 +syscon misc FNM_NOSYS -1 -1 -1 2 2 0 +syscon misc INIT_PROCESS 5 5 5 0 0 0 +syscon misc MQ_PRIO_MAX 0x8000 0 0x40 0 0 0 +syscon misc MTERASE 13 0 12 9 9 0 +syscon misc MTLOAD 30 0 19 0 0 0 +syscon misc MTRETEN 9 0 0 8 8 0 +syscon misc NEW_TIME 3 4 3 0 0 0 +syscon misc NFDBITS 0x40 0x20 0x40 0x20 0x20 0 +syscon misc NGROUPS 0x010000 0x10 0x0400 0x10 0x10 0 +syscon misc NGROUPS_MAX 0x010000 0x10 0x03ff 0x10 0x10 0 +syscon misc NOEXPR 0x050001 53 53 49 49 0 +syscon misc NOFILE 0x0100 0x0100 0x40 0x40 0x40 0 +syscon misc NOSTR 0x050003 55 55 48 48 0 +syscon misc OLD_TIME 4 3 2 0 0 0 +syscon misc PM_STR 0x020027 6 6 5 5 0 +syscon misc RADIXCHAR 0x010000 50 50 44 44 0 +syscon misc RUN_LVL 1 1 0 0 0 0 +syscon misc STA_RONLY 0xff00 0 0xff00 0 0 0 +syscon misc SYMLOOP_MAX 0 0 0 0x20 0x20 0 +syscon misc THOUSEP 0x010001 51 51 45 45 0 +syscon misc TIME_UTC 1 0 1 0 0 0 +syscon misc TMP_MAX 0x03a2f8 0x1269ae40 0x1269ae40 0x7fffffff 0x7fffffff 0 +syscon misc TSS_DTOR_ITERATIONS 0 0 4 0 0 0 +syscon misc TTY_NAME_MAX 0x20 0 0 260 260 0 +syscon misc UIO_MAXIOV 0x0400 0 0 0x0400 0x0400 0 +syscon misc USER_PROCESS 7 7 4 0 0 0 +syscon misc YESEXPR 0x050000 52 52 47 47 0 +syscon misc YESSTR 0x050002 54 54 46 46 0 + +# man inotify(7) +syscon in IN_LOOPBACKNET 127 127 127 127 127 0 # unix consensus +syscon in IN_ACCESS 1 0 0 0 0 0 +syscon in IN_ALL_EVENTS 0x0fff 0 0 0 0 0 +syscon in IN_ATTRIB 4 0 0 0 0 0 +syscon in IN_CLOEXEC 0x080000 0 0 0 0 0 +syscon in IN_CLOSE 24 0 0 0 0 0 +syscon in IN_CLOSE_NOWRITE 0x10 0 0 0 0 0 +syscon in IN_CLOSE_WRITE 8 0 0 0 0 0 +syscon in IN_CREATE 0x0100 0 0 0 0 0 +syscon in IN_DELETE 0x0200 0 0 0 0 0 +syscon in IN_DELETE_SELF 0x0400 0 0 0 0 0 +syscon in IN_DONT_FOLLOW 0x02000000 0 0 0 0 0 +syscon in IN_EXCL_UNLINK 0x04000000 0 0 0 0 0 +syscon in IN_IGNORED 0x8000 0 0 0 0 0 +syscon in IN_ISDIR 0x40000000 0 0 0 0 0 +syscon in IN_MASK_ADD 0x20000000 0 0 0 0 0 +syscon in IN_MODIFY 2 0 0 0 0 0 +syscon in IN_MOVE 192 0 0 0 0 0 +syscon in IN_MOVED_FROM 0x40 0 0 0 0 0 +syscon in IN_MOVED_TO 0x80 0 0 0 0 0 +syscon in IN_MOVE_SELF 0x0800 0 0 0 0 0 +syscon in IN_NONBLOCK 0x0800 0 0 0 0 0 +syscon in IN_ONESHOT 0x80000000 0 0 0 0 0 +syscon in IN_ONLYDIR 0x01000000 0 0 0 0 0 +syscon in IN_OPEN 0x20 0 0 0 0 0 +syscon in IN_Q_OVERFLOW 0x4000 0 0 0 0 0 +syscon in IN_UNMOUNT 0x2000 0 0 0 0 0 + +syscon nd ND_RA_FLAG_MANAGED 0x80 0x80 0x80 0x80 0x80 0x80 # consensus +syscon nd ND_RA_FLAG_OTHER 0x40 0x40 0x40 0x40 0x40 0x40 # consensus +syscon nd ND_NA_FLAG_OVERRIDE 0x20 0x20 0x20 0x20 0x20 0x20000000 # unix consensus +syscon nd ND_NA_FLAG_ROUTER 0x80 0x80 0x80 0x80 0x80 0x80000000 # unix consensus +syscon nd ND_NA_FLAG_SOLICITED 0x40 0x40 0x40 0x40 0x40 0x40000000 # unix consensus +syscon nd ND_NEIGHBOR_ADVERT 136 136 136 136 136 0 # unix consensus +syscon nd ND_NEIGHBOR_SOLICIT 135 135 135 135 135 0 # unix consensus +syscon nd ND_REDIRECT 137 137 137 137 137 0 # unix consensus +syscon nd ND_ROUTER_ADVERT 134 134 134 134 134 0 # unix consensus +syscon nd ND_ROUTER_SOLICIT 133 133 133 133 133 0 # unix consensus +syscon nd ND_RA_FLAG_HOME_AGENT 0x20 0 0 0 0 0x20 # bsd consensus + # https://youtu.be/GUQUD3IMbb4?t=85 diff --git a/libc/sysv/consts/ACCOUNTING.S b/libc/sysv/consts/ACCOUNTING.S new file mode 100644 index 000000000..5c6c3e907 --- /dev/null +++ b/libc/sysv/consts/ACCOUNTING.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,ACCOUNTING,9,9,0,0,0,0 diff --git a/libc/sysv/consts/AHZ.S b/libc/sysv/consts/AHZ.S new file mode 100644 index 000000000..314873265 --- /dev/null +++ b/libc/sysv/consts/AHZ.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,AHZ,100,0x40,0,0x40,0x40,0 diff --git a/libc/sysv/consts/ALLOW_MEDIUM_REMOVAL.S b/libc/sysv/consts/ALLOW_MEDIUM_REMOVAL.S new file mode 100644 index 000000000..5d97501a8 --- /dev/null +++ b/libc/sysv/consts/ALLOW_MEDIUM_REMOVAL.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,ALLOW_MEDIUM_REMOVAL,30,0,0,0,0,0 diff --git a/libc/sysv/consts/ALT_DIGITS.S b/libc/sysv/consts/ALT_DIGITS.S new file mode 100644 index 000000000..d10c7e339 --- /dev/null +++ b/libc/sysv/consts/ALT_DIGITS.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,ALT_DIGITS,0x02002f,49,49,0,0,0 diff --git a/libc/sysv/consts/AM_STR.S b/libc/sysv/consts/AM_STR.S new file mode 100644 index 000000000..4b75a3d96 --- /dev/null +++ b/libc/sysv/consts/AM_STR.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,AM_STR,0x020026,5,5,4,4,0 diff --git a/libc/sysv/consts/ASU.S b/libc/sysv/consts/ASU.S new file mode 100644 index 000000000..0e50957d9 --- /dev/null +++ b/libc/sysv/consts/ASU.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,ASU,0,2,2,2,2,0 diff --git a/libc/sysv/consts/ATF_NETMASK.S b/libc/sysv/consts/ATF_NETMASK.S new file mode 100644 index 000000000..8f60a3b20 --- /dev/null +++ b/libc/sysv/consts/ATF_NETMASK.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,ATF_NETMASK,0x20,0,0,0,0,0 diff --git a/libc/sysv/consts/AXSIG.S b/libc/sysv/consts/AXSIG.S new file mode 100644 index 000000000..0c9dbf9ce --- /dev/null +++ b/libc/sysv/consts/AXSIG.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,AXSIG,0,0x10,0x10,0x10,0x10,0 diff --git a/libc/sysv/consts/B460800.S b/libc/sysv/consts/B460800.S new file mode 100644 index 000000000..c8bcd1f69 --- /dev/null +++ b/libc/sysv/consts/B460800.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,B460800,0x1004,0,0x070800,0,0,0 diff --git a/libc/sysv/consts/B921600.S b/libc/sysv/consts/B921600.S new file mode 100644 index 000000000..9f878fbc3 --- /dev/null +++ b/libc/sysv/consts/B921600.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,B921600,0x1007,0,0x0e1000,0,0,0 diff --git a/libc/sysv/consts/BITSPERBYTE.S b/libc/sysv/consts/BITSPERBYTE.S new file mode 100644 index 000000000..f0c75c2f5 --- /dev/null +++ b/libc/sysv/consts/BITSPERBYTE.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,BITSPERBYTE,8,0,0,0,0,0 diff --git a/libc/sysv/consts/BLANK_CHECK.S b/libc/sysv/consts/BLANK_CHECK.S new file mode 100644 index 000000000..161ee9eae --- /dev/null +++ b/libc/sysv/consts/BLANK_CHECK.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,BLANK_CHECK,8,0,0,0,0,0 diff --git a/libc/sysv/consts/BOOT_TIME.S b/libc/sysv/consts/BOOT_TIME.S new file mode 100644 index 000000000..606029cc9 --- /dev/null +++ b/libc/sysv/consts/BOOT_TIME.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,BOOT_TIME,2,2,1,0,0,0 diff --git a/libc/sysv/consts/CHANGE_DEFINITION.S b/libc/sysv/consts/CHANGE_DEFINITION.S new file mode 100644 index 000000000..98f06897a --- /dev/null +++ b/libc/sysv/consts/CHANGE_DEFINITION.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,CHANGE_DEFINITION,0x40,0,0,0,0,0 diff --git a/libc/sysv/consts/CHARBITS.S b/libc/sysv/consts/CHARBITS.S new file mode 100644 index 000000000..02067d9d2 --- /dev/null +++ b/libc/sysv/consts/CHARBITS.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,CHARBITS,8,0,0,0,0,0 diff --git a/libc/sysv/consts/CHARCLASS_NAME_MAX.S b/libc/sysv/consts/CHARCLASS_NAME_MAX.S new file mode 100644 index 000000000..df1a54569 --- /dev/null +++ b/libc/sysv/consts/CHARCLASS_NAME_MAX.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,CHARCLASS_NAME_MAX,0x0800,14,14,0,0,0 diff --git a/libc/sysv/consts/CHECK_CONDITION.S b/libc/sysv/consts/CHECK_CONDITION.S new file mode 100644 index 000000000..be9a73d38 --- /dev/null +++ b/libc/sysv/consts/CHECK_CONDITION.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,CHECK_CONDITION,1,0,0,0,0,0 diff --git a/libc/sysv/consts/CODESET.S b/libc/sysv/consts/CODESET.S new file mode 100644 index 000000000..a62e23910 --- /dev/null +++ b/libc/sysv/consts/CODESET.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,CODESET,14,0,0,51,51,0 diff --git a/libc/sysv/consts/COLL_WEIGHTS_MAX.S b/libc/sysv/consts/COLL_WEIGHTS_MAX.S new file mode 100644 index 000000000..5b098ae50 --- /dev/null +++ b/libc/sysv/consts/COLL_WEIGHTS_MAX.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,COLL_WEIGHTS_MAX,255,2,10,2,2,0 diff --git a/libc/sysv/consts/CONDITION_GOOD.S b/libc/sysv/consts/CONDITION_GOOD.S new file mode 100644 index 000000000..b230a36f3 --- /dev/null +++ b/libc/sysv/consts/CONDITION_GOOD.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,CONDITION_GOOD,2,0,0,0,0,0 diff --git a/libc/sysv/consts/CPU_SETSIZE.S b/libc/sysv/consts/CPU_SETSIZE.S new file mode 100644 index 000000000..00ffde286 --- /dev/null +++ b/libc/sysv/consts/CPU_SETSIZE.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,CPU_SETSIZE,0x0400,0,0x0100,0,0,0 diff --git a/libc/sysv/consts/CRNCYSTR.S b/libc/sysv/consts/CRNCYSTR.S new file mode 100644 index 000000000..592091174 --- /dev/null +++ b/libc/sysv/consts/CRNCYSTR.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,CRNCYSTR,0x04000f,56,56,50,50,0 diff --git a/libc/sysv/consts/CRTSCTS.S b/libc/sysv/consts/CRTSCTS.S new file mode 100644 index 000000000..c8f2f3ab4 --- /dev/null +++ b/libc/sysv/consts/CRTSCTS.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,CRTSCTS,0x80000000,0x030000,0x030000,0x010000,0x010000,0 diff --git a/libc/sysv/consts/CSTATUS.S b/libc/sysv/consts/CSTATUS.S new file mode 100644 index 000000000..a421eeb77 --- /dev/null +++ b/libc/sysv/consts/CSTATUS.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,CSTATUS,0,20,20,255,255,0 diff --git a/libc/sysv/consts/DATA_PROTECT.S b/libc/sysv/consts/DATA_PROTECT.S new file mode 100644 index 000000000..6ef791da5 --- /dev/null +++ b/libc/sysv/consts/DATA_PROTECT.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,DATA_PROTECT,7,0,0,0,0,0 diff --git a/libc/sysv/consts/DEAD_PROCESS.S b/libc/sysv/consts/DEAD_PROCESS.S new file mode 100644 index 000000000..83c24dfa9 --- /dev/null +++ b/libc/sysv/consts/DEAD_PROCESS.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,DEAD_PROCESS,8,8,7,0,0,0 diff --git a/libc/sysv/consts/DELAYTIMER_MAX.S b/libc/sysv/consts/DELAYTIMER_MAX.S new file mode 100644 index 000000000..72d0f0fca --- /dev/null +++ b/libc/sysv/consts/DELAYTIMER_MAX.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,DELAYTIMER_MAX,0x7fffffff,0,0,0,0,0 diff --git a/libc/sysv/consts/DMAXEXP.S b/libc/sysv/consts/DMAXEXP.S new file mode 100644 index 000000000..5d73ec260 --- /dev/null +++ b/libc/sysv/consts/DMAXEXP.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,DMAXEXP,0x0400,0,0,0,0,0 diff --git a/libc/sysv/consts/DMINEXP.S b/libc/sysv/consts/DMINEXP.S new file mode 100644 index 000000000..58caa7e10 --- /dev/null +++ b/libc/sysv/consts/DMINEXP.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,DMINEXP,-1021,0,0,0,0,0 diff --git a/libc/sysv/consts/DOUBLEBITS.S b/libc/sysv/consts/DOUBLEBITS.S new file mode 100644 index 000000000..51c57b25a --- /dev/null +++ b/libc/sysv/consts/DOUBLEBITS.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,DOUBLEBITS,0x40,0,0,0,0,0 diff --git a/libc/sysv/consts/ERA_D_FMT.S b/libc/sysv/consts/ERA_D_FMT.S new file mode 100644 index 000000000..9d8c952fd --- /dev/null +++ b/libc/sysv/consts/ERA_D_FMT.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,ERA_D_FMT,0x02002e,46,46,0,0,0 diff --git a/libc/sysv/consts/ERA_D_T_FMT.S b/libc/sysv/consts/ERA_D_T_FMT.S new file mode 100644 index 000000000..c5fb1850c --- /dev/null +++ b/libc/sysv/consts/ERA_D_T_FMT.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,ERA_D_T_FMT,0x020030,47,47,0,0,0 diff --git a/libc/sysv/consts/ERA_T_FMT.S b/libc/sysv/consts/ERA_T_FMT.S new file mode 100644 index 000000000..8f798bc2d --- /dev/null +++ b/libc/sysv/consts/ERA_T_FMT.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,ERA_T_FMT,0x020031,48,48,0,0,0 diff --git a/libc/sysv/consts/FANOTIFY_METADATA_VERSION.S b/libc/sysv/consts/FANOTIFY_METADATA_VERSION.S new file mode 100644 index 000000000..7f4c8e52f --- /dev/null +++ b/libc/sysv/consts/FANOTIFY_METADATA_VERSION.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,FANOTIFY_METADATA_VERSION,3,0,0,0,0,0 diff --git a/libc/sysv/consts/FAN_ACCESS.S b/libc/sysv/consts/FAN_ACCESS.S new file mode 100644 index 000000000..89fcb5d5b --- /dev/null +++ b/libc/sysv/consts/FAN_ACCESS.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon fan,FAN_ACCESS,1,0,0,0,0,0 diff --git a/libc/sysv/consts/FAN_ACCESS_PERM.S b/libc/sysv/consts/FAN_ACCESS_PERM.S new file mode 100644 index 000000000..7e8fa5829 --- /dev/null +++ b/libc/sysv/consts/FAN_ACCESS_PERM.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon fan,FAN_ACCESS_PERM,0x020000,0,0,0,0,0 diff --git a/libc/sysv/consts/FAN_ALLOW.S b/libc/sysv/consts/FAN_ALLOW.S new file mode 100644 index 000000000..f294cad05 --- /dev/null +++ b/libc/sysv/consts/FAN_ALLOW.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon fan,FAN_ALLOW,1,0,0,0,0,0 diff --git a/libc/sysv/consts/FAN_ALL_CLASS_BITS.S b/libc/sysv/consts/FAN_ALL_CLASS_BITS.S new file mode 100644 index 000000000..2733d9160 --- /dev/null +++ b/libc/sysv/consts/FAN_ALL_CLASS_BITS.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon fan,FAN_ALL_CLASS_BITS,12,0,0,0,0,0 diff --git a/libc/sysv/consts/FAN_ALL_EVENTS.S b/libc/sysv/consts/FAN_ALL_EVENTS.S new file mode 100644 index 000000000..d8f503fb4 --- /dev/null +++ b/libc/sysv/consts/FAN_ALL_EVENTS.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon fan,FAN_ALL_EVENTS,59,0,0,0,0,0 diff --git a/libc/sysv/consts/FAN_ALL_INIT_FLAGS.S b/libc/sysv/consts/FAN_ALL_INIT_FLAGS.S new file mode 100644 index 000000000..d215b8653 --- /dev/null +++ b/libc/sysv/consts/FAN_ALL_INIT_FLAGS.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon fan,FAN_ALL_INIT_FLAGS,63,0,0,0,0,0 diff --git a/libc/sysv/consts/FAN_ALL_MARK_FLAGS.S b/libc/sysv/consts/FAN_ALL_MARK_FLAGS.S new file mode 100644 index 000000000..047be670d --- /dev/null +++ b/libc/sysv/consts/FAN_ALL_MARK_FLAGS.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon fan,FAN_ALL_MARK_FLAGS,255,0,0,0,0,0 diff --git a/libc/sysv/consts/FAN_ALL_OUTGOING_EVENTS.S b/libc/sysv/consts/FAN_ALL_OUTGOING_EVENTS.S new file mode 100644 index 000000000..4c06cbabf --- /dev/null +++ b/libc/sysv/consts/FAN_ALL_OUTGOING_EVENTS.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon fan,FAN_ALL_OUTGOING_EVENTS,0x03403b,0,0,0,0,0 diff --git a/libc/sysv/consts/FAN_ALL_PERM_EVENTS.S b/libc/sysv/consts/FAN_ALL_PERM_EVENTS.S new file mode 100644 index 000000000..ef60a71fe --- /dev/null +++ b/libc/sysv/consts/FAN_ALL_PERM_EVENTS.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon fan,FAN_ALL_PERM_EVENTS,0x030000,0,0,0,0,0 diff --git a/libc/sysv/consts/FAN_CLASS_CONTENT.S b/libc/sysv/consts/FAN_CLASS_CONTENT.S new file mode 100644 index 000000000..dca9d6575 --- /dev/null +++ b/libc/sysv/consts/FAN_CLASS_CONTENT.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon fan,FAN_CLASS_CONTENT,4,0,0,0,0,0 diff --git a/libc/sysv/consts/FAN_CLASS_NOTIF.S b/libc/sysv/consts/FAN_CLASS_NOTIF.S new file mode 100644 index 000000000..1f44737f1 --- /dev/null +++ b/libc/sysv/consts/FAN_CLASS_NOTIF.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon fan,FAN_CLASS_NOTIF,0,0,0,0,0,0 diff --git a/libc/sysv/consts/FAN_CLASS_PRE_CONTENT.S b/libc/sysv/consts/FAN_CLASS_PRE_CONTENT.S new file mode 100644 index 000000000..577119f46 --- /dev/null +++ b/libc/sysv/consts/FAN_CLASS_PRE_CONTENT.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon fan,FAN_CLASS_PRE_CONTENT,8,0,0,0,0,0 diff --git a/libc/sysv/consts/FAN_CLOEXEC.S b/libc/sysv/consts/FAN_CLOEXEC.S new file mode 100644 index 000000000..8ff5eae74 --- /dev/null +++ b/libc/sysv/consts/FAN_CLOEXEC.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon fan,FAN_CLOEXEC,1,0,0,0,0,0 diff --git a/libc/sysv/consts/FAN_CLOSE.S b/libc/sysv/consts/FAN_CLOSE.S new file mode 100644 index 000000000..193fb9a32 --- /dev/null +++ b/libc/sysv/consts/FAN_CLOSE.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon fan,FAN_CLOSE,24,0,0,0,0,0 diff --git a/libc/sysv/consts/FAN_CLOSE_NOWRITE.S b/libc/sysv/consts/FAN_CLOSE_NOWRITE.S new file mode 100644 index 000000000..35107a492 --- /dev/null +++ b/libc/sysv/consts/FAN_CLOSE_NOWRITE.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon fan,FAN_CLOSE_NOWRITE,0x10,0,0,0,0,0 diff --git a/libc/sysv/consts/FAN_CLOSE_WRITE.S b/libc/sysv/consts/FAN_CLOSE_WRITE.S new file mode 100644 index 000000000..84072b67e --- /dev/null +++ b/libc/sysv/consts/FAN_CLOSE_WRITE.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon fan,FAN_CLOSE_WRITE,8,0,0,0,0,0 diff --git a/libc/sysv/consts/FAN_DENY.S b/libc/sysv/consts/FAN_DENY.S new file mode 100644 index 000000000..3a1c42a47 --- /dev/null +++ b/libc/sysv/consts/FAN_DENY.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon fan,FAN_DENY,2,0,0,0,0,0 diff --git a/libc/sysv/consts/FAN_EVENT_METADATA_LEN.S b/libc/sysv/consts/FAN_EVENT_METADATA_LEN.S new file mode 100644 index 000000000..f2bc6b874 --- /dev/null +++ b/libc/sysv/consts/FAN_EVENT_METADATA_LEN.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon fan,FAN_EVENT_METADATA_LEN,24,0,0,0,0,0 diff --git a/libc/sysv/consts/FAN_EVENT_ON_CHILD.S b/libc/sysv/consts/FAN_EVENT_ON_CHILD.S new file mode 100644 index 000000000..26f5ac795 --- /dev/null +++ b/libc/sysv/consts/FAN_EVENT_ON_CHILD.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon fan,FAN_EVENT_ON_CHILD,0x08000000,0,0,0,0,0 diff --git a/libc/sysv/consts/FAN_MARK_ADD.S b/libc/sysv/consts/FAN_MARK_ADD.S new file mode 100644 index 000000000..590607b2c --- /dev/null +++ b/libc/sysv/consts/FAN_MARK_ADD.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon fan,FAN_MARK_ADD,1,0,0,0,0,0 diff --git a/libc/sysv/consts/FAN_MARK_DONT_FOLLOW.S b/libc/sysv/consts/FAN_MARK_DONT_FOLLOW.S new file mode 100644 index 000000000..619e88df7 --- /dev/null +++ b/libc/sysv/consts/FAN_MARK_DONT_FOLLOW.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon fan,FAN_MARK_DONT_FOLLOW,4,0,0,0,0,0 diff --git a/libc/sysv/consts/FAN_MARK_FLUSH.S b/libc/sysv/consts/FAN_MARK_FLUSH.S new file mode 100644 index 000000000..012bb5a2e --- /dev/null +++ b/libc/sysv/consts/FAN_MARK_FLUSH.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon fan,FAN_MARK_FLUSH,0x80,0,0,0,0,0 diff --git a/libc/sysv/consts/FAN_MARK_IGNORED_MASK.S b/libc/sysv/consts/FAN_MARK_IGNORED_MASK.S new file mode 100644 index 000000000..46cb2e497 --- /dev/null +++ b/libc/sysv/consts/FAN_MARK_IGNORED_MASK.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon fan,FAN_MARK_IGNORED_MASK,0x20,0,0,0,0,0 diff --git a/libc/sysv/consts/FAN_MARK_IGNORED_SURV_MODIFY.S b/libc/sysv/consts/FAN_MARK_IGNORED_SURV_MODIFY.S new file mode 100644 index 000000000..ed99e04b0 --- /dev/null +++ b/libc/sysv/consts/FAN_MARK_IGNORED_SURV_MODIFY.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon fan,FAN_MARK_IGNORED_SURV_MODIFY,0x40,0,0,0,0,0 diff --git a/libc/sysv/consts/FAN_MARK_MOUNT.S b/libc/sysv/consts/FAN_MARK_MOUNT.S new file mode 100644 index 000000000..2a1977196 --- /dev/null +++ b/libc/sysv/consts/FAN_MARK_MOUNT.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon fan,FAN_MARK_MOUNT,0x10,0,0,0,0,0 diff --git a/libc/sysv/consts/FAN_MARK_ONLYDIR.S b/libc/sysv/consts/FAN_MARK_ONLYDIR.S new file mode 100644 index 000000000..949b25813 --- /dev/null +++ b/libc/sysv/consts/FAN_MARK_ONLYDIR.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon fan,FAN_MARK_ONLYDIR,8,0,0,0,0,0 diff --git a/libc/sysv/consts/FAN_MARK_REMOVE.S b/libc/sysv/consts/FAN_MARK_REMOVE.S new file mode 100644 index 000000000..0334f89e7 --- /dev/null +++ b/libc/sysv/consts/FAN_MARK_REMOVE.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon fan,FAN_MARK_REMOVE,2,0,0,0,0,0 diff --git a/libc/sysv/consts/FAN_MODIFY.S b/libc/sysv/consts/FAN_MODIFY.S new file mode 100644 index 000000000..20a44d32f --- /dev/null +++ b/libc/sysv/consts/FAN_MODIFY.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon fan,FAN_MODIFY,2,0,0,0,0,0 diff --git a/libc/sysv/consts/FAN_NOFD.S b/libc/sysv/consts/FAN_NOFD.S new file mode 100644 index 000000000..e2899bd33 --- /dev/null +++ b/libc/sysv/consts/FAN_NOFD.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon fan,FAN_NOFD,-1,0,0,0,0,0 diff --git a/libc/sysv/consts/FAN_NONBLOCK.S b/libc/sysv/consts/FAN_NONBLOCK.S new file mode 100644 index 000000000..3e3e9ec30 --- /dev/null +++ b/libc/sysv/consts/FAN_NONBLOCK.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon fan,FAN_NONBLOCK,2,0,0,0,0,0 diff --git a/libc/sysv/consts/FAN_ONDIR.S b/libc/sysv/consts/FAN_ONDIR.S new file mode 100644 index 000000000..1f9189b71 --- /dev/null +++ b/libc/sysv/consts/FAN_ONDIR.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon fan,FAN_ONDIR,0x40000000,0,0,0,0,0 diff --git a/libc/sysv/consts/FAN_OPEN.S b/libc/sysv/consts/FAN_OPEN.S new file mode 100644 index 000000000..165b117aa --- /dev/null +++ b/libc/sysv/consts/FAN_OPEN.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon fan,FAN_OPEN,0x20,0,0,0,0,0 diff --git a/libc/sysv/consts/FAN_OPEN_PERM.S b/libc/sysv/consts/FAN_OPEN_PERM.S new file mode 100644 index 000000000..d94632491 --- /dev/null +++ b/libc/sysv/consts/FAN_OPEN_PERM.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon fan,FAN_OPEN_PERM,0x010000,0,0,0,0,0 diff --git a/libc/sysv/consts/FAN_Q_OVERFLOW.S b/libc/sysv/consts/FAN_Q_OVERFLOW.S new file mode 100644 index 000000000..7bb0af489 --- /dev/null +++ b/libc/sysv/consts/FAN_Q_OVERFLOW.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon fan,FAN_Q_OVERFLOW,0x4000,0,0,0,0,0 diff --git a/libc/sysv/consts/FAN_UNLIMITED_MARKS.S b/libc/sysv/consts/FAN_UNLIMITED_MARKS.S new file mode 100644 index 000000000..a9e0433b5 --- /dev/null +++ b/libc/sysv/consts/FAN_UNLIMITED_MARKS.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon fan,FAN_UNLIMITED_MARKS,0x20,0,0,0,0,0 diff --git a/libc/sysv/consts/FAN_UNLIMITED_QUEUE.S b/libc/sysv/consts/FAN_UNLIMITED_QUEUE.S new file mode 100644 index 000000000..38952f046 --- /dev/null +++ b/libc/sysv/consts/FAN_UNLIMITED_QUEUE.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon fan,FAN_UNLIMITED_QUEUE,0x10,0,0,0,0,0 diff --git a/libc/sysv/consts/FAPPEND.S b/libc/sysv/consts/FAPPEND.S new file mode 100644 index 000000000..426994b5c --- /dev/null +++ b/libc/sysv/consts/FAPPEND.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,FAPPEND,0x0400,8,8,8,8,0 diff --git a/libc/sysv/consts/FASYNC.S b/libc/sysv/consts/FASYNC.S new file mode 100644 index 000000000..9b4bb05cc --- /dev/null +++ b/libc/sysv/consts/FASYNC.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,FASYNC,0x2000,0x40,0x40,0x40,0x40,0 diff --git a/libc/sysv/consts/FFSYNC.S b/libc/sysv/consts/FFSYNC.S new file mode 100644 index 000000000..c20c4f5bb --- /dev/null +++ b/libc/sysv/consts/FFSYNC.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,FFSYNC,0x101000,0x80,0x80,0x80,0x80,0 diff --git a/libc/sysv/consts/FILENAME_MAX.S b/libc/sysv/consts/FILENAME_MAX.S new file mode 100644 index 000000000..ee712eff9 --- /dev/null +++ b/libc/sysv/consts/FILENAME_MAX.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,FILENAME_MAX,0x1000,0x0400,0x0400,0x0400,0x0400,0 diff --git a/libc/sysv/consts/FIOGETOWN.S b/libc/sysv/consts/FIOGETOWN.S new file mode 100644 index 000000000..c67f67264 --- /dev/null +++ b/libc/sysv/consts/FIOGETOWN.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,FIOGETOWN,0x8903,0x4004667b,0x4004667b,0x4004667b,0x4004667b,0 diff --git a/libc/sysv/consts/FIOSETOWN.S b/libc/sysv/consts/FIOSETOWN.S new file mode 100644 index 000000000..669c57ecd --- /dev/null +++ b/libc/sysv/consts/FIOSETOWN.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,FIOSETOWN,0x8901,0x8004667c,0x8004667c,0x8004667c,0x8004667c,0 diff --git a/libc/sysv/consts/FMAXEXP.S b/libc/sysv/consts/FMAXEXP.S new file mode 100644 index 000000000..55fb20036 --- /dev/null +++ b/libc/sysv/consts/FMAXEXP.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,FMAXEXP,0x80,0,0,0,0,0 diff --git a/libc/sysv/consts/FMINEXP.S b/libc/sysv/consts/FMINEXP.S new file mode 100644 index 000000000..150bca9e2 --- /dev/null +++ b/libc/sysv/consts/FMINEXP.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,FMINEXP,-125,0,0,0,0,0 diff --git a/libc/sysv/consts/FNDELAY.S b/libc/sysv/consts/FNDELAY.S new file mode 100644 index 000000000..74d7685a5 --- /dev/null +++ b/libc/sysv/consts/FNDELAY.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,FNDELAY,0x0800,4,4,4,4,0 diff --git a/libc/sysv/consts/FNM_NOSYS.S b/libc/sysv/consts/FNM_NOSYS.S new file mode 100644 index 000000000..dfc67da49 --- /dev/null +++ b/libc/sysv/consts/FNM_NOSYS.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,FNM_NOSYS,-1,-1,-1,2,2,0 diff --git a/libc/sysv/consts/FNONBLOCK.S b/libc/sysv/consts/FNONBLOCK.S new file mode 100644 index 000000000..d0e38749e --- /dev/null +++ b/libc/sysv/consts/FNONBLOCK.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,FNONBLOCK,0x0800,4,4,4,4,0 diff --git a/libc/sysv/consts/FOPEN_MAX.S b/libc/sysv/consts/FOPEN_MAX.S new file mode 100644 index 000000000..6f97fb15b --- /dev/null +++ b/libc/sysv/consts/FOPEN_MAX.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,FOPEN_MAX,0x10,20,20,20,20,0 diff --git a/libc/sysv/consts/FORMAT_UNIT.S b/libc/sysv/consts/FORMAT_UNIT.S new file mode 100644 index 000000000..50e342f1d --- /dev/null +++ b/libc/sysv/consts/FORMAT_UNIT.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,FORMAT_UNIT,4,0,0,0,0,0 diff --git a/libc/sysv/consts/HARDWARE_ERROR.S b/libc/sysv/consts/HARDWARE_ERROR.S new file mode 100644 index 000000000..42e1dc3d5 --- /dev/null +++ b/libc/sysv/consts/HARDWARE_ERROR.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,HARDWARE_ERROR,4,0,0,0,0,0 diff --git a/libc/sysv/consts/HEAD_OF_QUEUE_TAG.S b/libc/sysv/consts/HEAD_OF_QUEUE_TAG.S new file mode 100644 index 000000000..317dcfe74 --- /dev/null +++ b/libc/sysv/consts/HEAD_OF_QUEUE_TAG.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,HEAD_OF_QUEUE_TAG,33,0,0,0,0,0 diff --git a/libc/sysv/consts/IGMP_MEMBERSHIP_QUERY.S b/libc/sysv/consts/IGMP_MEMBERSHIP_QUERY.S new file mode 100644 index 000000000..b0199a997 --- /dev/null +++ b/libc/sysv/consts/IGMP_MEMBERSHIP_QUERY.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,IGMP_MEMBERSHIP_QUERY,17,0,0,0,0,0 diff --git a/libc/sysv/consts/ILLEGAL_REQUEST.S b/libc/sysv/consts/ILLEGAL_REQUEST.S new file mode 100644 index 000000000..8499d0492 --- /dev/null +++ b/libc/sysv/consts/ILLEGAL_REQUEST.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,ILLEGAL_REQUEST,5,0,0,0,0,0 diff --git a/libc/sysv/consts/INITIATE_RECOVERY.S b/libc/sysv/consts/INITIATE_RECOVERY.S new file mode 100644 index 000000000..986a59f78 --- /dev/null +++ b/libc/sysv/consts/INITIATE_RECOVERY.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,INITIATE_RECOVERY,15,0,0,0,0,0 diff --git a/libc/sysv/consts/INITIATOR_ERROR.S b/libc/sysv/consts/INITIATOR_ERROR.S new file mode 100644 index 000000000..441781290 --- /dev/null +++ b/libc/sysv/consts/INITIATOR_ERROR.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,INITIATOR_ERROR,5,0,0,0,0,0 diff --git a/libc/sysv/consts/INIT_PROCESS.S b/libc/sysv/consts/INIT_PROCESS.S new file mode 100644 index 000000000..85334fa5d --- /dev/null +++ b/libc/sysv/consts/INIT_PROCESS.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,INIT_PROCESS,5,5,5,0,0,0 diff --git a/libc/sysv/consts/INQUIRY.S b/libc/sysv/consts/INQUIRY.S new file mode 100644 index 000000000..c8562025a --- /dev/null +++ b/libc/sysv/consts/INQUIRY.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,INQUIRY,18,0,0,0,0,0 diff --git a/libc/sysv/consts/IN_ACCESS.S b/libc/sysv/consts/IN_ACCESS.S new file mode 100644 index 000000000..a23dfe77e --- /dev/null +++ b/libc/sysv/consts/IN_ACCESS.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon in,IN_ACCESS,1,0,0,0,0,0 diff --git a/libc/sysv/consts/IN_ALL_EVENTS.S b/libc/sysv/consts/IN_ALL_EVENTS.S new file mode 100644 index 000000000..57a44f852 --- /dev/null +++ b/libc/sysv/consts/IN_ALL_EVENTS.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon in,IN_ALL_EVENTS,0x0fff,0,0,0,0,0 diff --git a/libc/sysv/consts/IN_ATTRIB.S b/libc/sysv/consts/IN_ATTRIB.S new file mode 100644 index 000000000..bc5a3b6f0 --- /dev/null +++ b/libc/sysv/consts/IN_ATTRIB.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon in,IN_ATTRIB,4,0,0,0,0,0 diff --git a/libc/sysv/consts/IN_CLOEXEC.S b/libc/sysv/consts/IN_CLOEXEC.S new file mode 100644 index 000000000..f482a6c01 --- /dev/null +++ b/libc/sysv/consts/IN_CLOEXEC.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon in,IN_CLOEXEC,0x080000,0,0,0,0,0 diff --git a/libc/sysv/consts/IN_CLOSE.S b/libc/sysv/consts/IN_CLOSE.S new file mode 100644 index 000000000..c209e9479 --- /dev/null +++ b/libc/sysv/consts/IN_CLOSE.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon in,IN_CLOSE,24,0,0,0,0,0 diff --git a/libc/sysv/consts/IN_CLOSE_NOWRITE.S b/libc/sysv/consts/IN_CLOSE_NOWRITE.S new file mode 100644 index 000000000..32e949220 --- /dev/null +++ b/libc/sysv/consts/IN_CLOSE_NOWRITE.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon in,IN_CLOSE_NOWRITE,0x10,0,0,0,0,0 diff --git a/libc/sysv/consts/IN_CLOSE_WRITE.S b/libc/sysv/consts/IN_CLOSE_WRITE.S new file mode 100644 index 000000000..09b3d0ad5 --- /dev/null +++ b/libc/sysv/consts/IN_CLOSE_WRITE.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon in,IN_CLOSE_WRITE,8,0,0,0,0,0 diff --git a/libc/sysv/consts/IN_CREATE.S b/libc/sysv/consts/IN_CREATE.S new file mode 100644 index 000000000..3e7a2af52 --- /dev/null +++ b/libc/sysv/consts/IN_CREATE.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon in,IN_CREATE,0x0100,0,0,0,0,0 diff --git a/libc/sysv/consts/IN_DELETE.S b/libc/sysv/consts/IN_DELETE.S new file mode 100644 index 000000000..d9ed0eb9c --- /dev/null +++ b/libc/sysv/consts/IN_DELETE.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon in,IN_DELETE,0x0200,0,0,0,0,0 diff --git a/libc/sysv/consts/IN_DELETE_SELF.S b/libc/sysv/consts/IN_DELETE_SELF.S new file mode 100644 index 000000000..cd736d454 --- /dev/null +++ b/libc/sysv/consts/IN_DELETE_SELF.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon in,IN_DELETE_SELF,0x0400,0,0,0,0,0 diff --git a/libc/sysv/consts/IN_DONT_FOLLOW.S b/libc/sysv/consts/IN_DONT_FOLLOW.S new file mode 100644 index 000000000..097df0182 --- /dev/null +++ b/libc/sysv/consts/IN_DONT_FOLLOW.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon in,IN_DONT_FOLLOW,0x02000000,0,0,0,0,0 diff --git a/libc/sysv/consts/IN_EXCL_UNLINK.S b/libc/sysv/consts/IN_EXCL_UNLINK.S new file mode 100644 index 000000000..983c24e1f --- /dev/null +++ b/libc/sysv/consts/IN_EXCL_UNLINK.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon in,IN_EXCL_UNLINK,0x04000000,0,0,0,0,0 diff --git a/libc/sysv/consts/IN_IGNORED.S b/libc/sysv/consts/IN_IGNORED.S new file mode 100644 index 000000000..1b7a4bcac --- /dev/null +++ b/libc/sysv/consts/IN_IGNORED.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon in,IN_IGNORED,0x8000,0,0,0,0,0 diff --git a/libc/sysv/consts/IN_ISDIR.S b/libc/sysv/consts/IN_ISDIR.S new file mode 100644 index 000000000..8c4a52805 --- /dev/null +++ b/libc/sysv/consts/IN_ISDIR.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon in,IN_ISDIR,0x40000000,0,0,0,0,0 diff --git a/libc/sysv/consts/IN_LOOPBACKNET.S b/libc/sysv/consts/IN_LOOPBACKNET.S new file mode 100644 index 000000000..e0d6df868 --- /dev/null +++ b/libc/sysv/consts/IN_LOOPBACKNET.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon in,IN_LOOPBACKNET,127,127,127,127,127,0 diff --git a/libc/sysv/consts/IN_MASK_ADD.S b/libc/sysv/consts/IN_MASK_ADD.S new file mode 100644 index 000000000..1d56ed541 --- /dev/null +++ b/libc/sysv/consts/IN_MASK_ADD.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon in,IN_MASK_ADD,0x20000000,0,0,0,0,0 diff --git a/libc/sysv/consts/IN_MODIFY.S b/libc/sysv/consts/IN_MODIFY.S new file mode 100644 index 000000000..73368174e --- /dev/null +++ b/libc/sysv/consts/IN_MODIFY.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon in,IN_MODIFY,2,0,0,0,0,0 diff --git a/libc/sysv/consts/IN_MOVE.S b/libc/sysv/consts/IN_MOVE.S new file mode 100644 index 000000000..5c60a3dc0 --- /dev/null +++ b/libc/sysv/consts/IN_MOVE.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon in,IN_MOVE,192,0,0,0,0,0 diff --git a/libc/sysv/consts/IN_MOVED_FROM.S b/libc/sysv/consts/IN_MOVED_FROM.S new file mode 100644 index 000000000..24617c940 --- /dev/null +++ b/libc/sysv/consts/IN_MOVED_FROM.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon in,IN_MOVED_FROM,0x40,0,0,0,0,0 diff --git a/libc/sysv/consts/IN_MOVED_TO.S b/libc/sysv/consts/IN_MOVED_TO.S new file mode 100644 index 000000000..af253567e --- /dev/null +++ b/libc/sysv/consts/IN_MOVED_TO.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon in,IN_MOVED_TO,0x80,0,0,0,0,0 diff --git a/libc/sysv/consts/IN_MOVE_SELF.S b/libc/sysv/consts/IN_MOVE_SELF.S new file mode 100644 index 000000000..5b22a412a --- /dev/null +++ b/libc/sysv/consts/IN_MOVE_SELF.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon in,IN_MOVE_SELF,0x0800,0,0,0,0,0 diff --git a/libc/sysv/consts/IN_NONBLOCK.S b/libc/sysv/consts/IN_NONBLOCK.S new file mode 100644 index 000000000..0cb3e9418 --- /dev/null +++ b/libc/sysv/consts/IN_NONBLOCK.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon in,IN_NONBLOCK,0x0800,0,0,0,0,0 diff --git a/libc/sysv/consts/IN_ONESHOT.S b/libc/sysv/consts/IN_ONESHOT.S new file mode 100644 index 000000000..561c7858a --- /dev/null +++ b/libc/sysv/consts/IN_ONESHOT.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon in,IN_ONESHOT,0x80000000,0,0,0,0,0 diff --git a/libc/sysv/consts/IN_ONLYDIR.S b/libc/sysv/consts/IN_ONLYDIR.S new file mode 100644 index 000000000..e21856837 --- /dev/null +++ b/libc/sysv/consts/IN_ONLYDIR.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon in,IN_ONLYDIR,0x01000000,0,0,0,0,0 diff --git a/libc/sysv/consts/IN_OPEN.S b/libc/sysv/consts/IN_OPEN.S new file mode 100644 index 000000000..be07d13fc --- /dev/null +++ b/libc/sysv/consts/IN_OPEN.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon in,IN_OPEN,0x20,0,0,0,0,0 diff --git a/libc/sysv/consts/IN_Q_OVERFLOW.S b/libc/sysv/consts/IN_Q_OVERFLOW.S new file mode 100644 index 000000000..ed71b58b9 --- /dev/null +++ b/libc/sysv/consts/IN_Q_OVERFLOW.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon in,IN_Q_OVERFLOW,0x4000,0,0,0,0,0 diff --git a/libc/sysv/consts/IN_UNMOUNT.S b/libc/sysv/consts/IN_UNMOUNT.S new file mode 100644 index 000000000..84777c8d2 --- /dev/null +++ b/libc/sysv/consts/IN_UNMOUNT.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon in,IN_UNMOUNT,0x2000,0,0,0,0,0 diff --git a/libc/sysv/consts/MAXHOSTNAMELEN.S b/libc/sysv/consts/MAXHOSTNAMELEN.S new file mode 100644 index 000000000..b1d9d3373 --- /dev/null +++ b/libc/sysv/consts/MAXHOSTNAMELEN.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,MAXHOSTNAMELEN,0x40,0x0100,0x0100,0x0100,0x0100,0 diff --git a/libc/sysv/consts/MAXPATHLEN.S b/libc/sysv/consts/MAXPATHLEN.S new file mode 100644 index 000000000..dcb569a09 --- /dev/null +++ b/libc/sysv/consts/MAXPATHLEN.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,MAXPATHLEN,255,255,255,255,255,255 diff --git a/libc/sysv/consts/MAXSYMLINKS.S b/libc/sysv/consts/MAXSYMLINKS.S new file mode 100644 index 000000000..40b39c9ab --- /dev/null +++ b/libc/sysv/consts/MAXSYMLINKS.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,MAXSYMLINKS,20,0x20,0x20,0x20,0x20,0 diff --git a/libc/sysv/consts/MESSAGE_REJECT.S b/libc/sysv/consts/MESSAGE_REJECT.S new file mode 100644 index 000000000..f4fddc8fc --- /dev/null +++ b/libc/sysv/consts/MESSAGE_REJECT.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,MESSAGE_REJECT,7,0,0,0,0,0 diff --git a/libc/sysv/consts/MISCOMPARE.S b/libc/sysv/consts/MISCOMPARE.S new file mode 100644 index 000000000..a72b51a70 --- /dev/null +++ b/libc/sysv/consts/MISCOMPARE.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,MISCOMPARE,14,0,0,0,0,0 diff --git a/libc/sysv/consts/MOVE_MEDIUM.S b/libc/sysv/consts/MOVE_MEDIUM.S new file mode 100644 index 000000000..57a8a932a --- /dev/null +++ b/libc/sysv/consts/MOVE_MEDIUM.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,MOVE_MEDIUM,165,0,0,0,0,0 diff --git a/libc/sysv/consts/MQ_PRIO_MAX.S b/libc/sysv/consts/MQ_PRIO_MAX.S new file mode 100644 index 000000000..aad6c50ed --- /dev/null +++ b/libc/sysv/consts/MQ_PRIO_MAX.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,MQ_PRIO_MAX,0x8000,0,0x40,0,0,0 diff --git a/libc/sysv/consts/MTCOMPRESSION.S b/libc/sysv/consts/MTCOMPRESSION.S new file mode 100644 index 000000000..1a814496b --- /dev/null +++ b/libc/sysv/consts/MTCOMPRESSION.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,MTCOMPRESSION,0x20,0,0,0,0,0 diff --git a/libc/sysv/consts/MTERASE.S b/libc/sysv/consts/MTERASE.S new file mode 100644 index 000000000..a347daba8 --- /dev/null +++ b/libc/sysv/consts/MTERASE.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,MTERASE,13,0,12,9,9,0 diff --git a/libc/sysv/consts/MTFSFM.S b/libc/sysv/consts/MTFSFM.S new file mode 100644 index 000000000..7880c0681 --- /dev/null +++ b/libc/sysv/consts/MTFSFM.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,MTFSFM,11,0,0,0,0,0 diff --git a/libc/sysv/consts/MTLOAD.S b/libc/sysv/consts/MTLOAD.S new file mode 100644 index 000000000..d1583229c --- /dev/null +++ b/libc/sysv/consts/MTLOAD.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,MTLOAD,30,0,19,0,0,0 diff --git a/libc/sysv/consts/MTLOCK.S b/libc/sysv/consts/MTLOCK.S new file mode 100644 index 000000000..396fc0eca --- /dev/null +++ b/libc/sysv/consts/MTLOCK.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,MTLOCK,28,0,0,0,0,0 diff --git a/libc/sysv/consts/MTMKPART.S b/libc/sysv/consts/MTMKPART.S new file mode 100644 index 000000000..1fc64f720 --- /dev/null +++ b/libc/sysv/consts/MTMKPART.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,MTMKPART,34,0,0,0,0,0 diff --git a/libc/sysv/consts/MTRAS1.S b/libc/sysv/consts/MTRAS1.S new file mode 100644 index 000000000..a662fdbb8 --- /dev/null +++ b/libc/sysv/consts/MTRAS1.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,MTRAS1,14,0,0,0,0,0 diff --git a/libc/sysv/consts/MTRAS3.S b/libc/sysv/consts/MTRAS3.S new file mode 100644 index 000000000..206e548a7 --- /dev/null +++ b/libc/sysv/consts/MTRAS3.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,MTRAS3,0x10,0,0,0,0,0 diff --git a/libc/sysv/consts/MTRETEN.S b/libc/sysv/consts/MTRETEN.S new file mode 100644 index 000000000..70226a035 --- /dev/null +++ b/libc/sysv/consts/MTRETEN.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,MTRETEN,9,0,0,8,8,0 diff --git a/libc/sysv/consts/MTSETBLK.S b/libc/sysv/consts/MTSETBLK.S new file mode 100644 index 000000000..34d679426 --- /dev/null +++ b/libc/sysv/consts/MTSETBLK.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,MTSETBLK,20,0,0,0,0,0 diff --git a/libc/sysv/consts/MTSETDENSITY.S b/libc/sysv/consts/MTSETDENSITY.S new file mode 100644 index 000000000..a887eb2ec --- /dev/null +++ b/libc/sysv/consts/MTSETDENSITY.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,MTSETDENSITY,21,0,0,0,0,0 diff --git a/libc/sysv/consts/MTSETDRVBUFFER.S b/libc/sysv/consts/MTSETDRVBUFFER.S new file mode 100644 index 000000000..1d2342bc4 --- /dev/null +++ b/libc/sysv/consts/MTSETDRVBUFFER.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,MTSETDRVBUFFER,24,0,0,0,0,0 diff --git a/libc/sysv/consts/MTSETPART.S b/libc/sysv/consts/MTSETPART.S new file mode 100644 index 000000000..276172486 --- /dev/null +++ b/libc/sysv/consts/MTSETPART.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,MTSETPART,33,0,0,0,0,0 diff --git a/libc/sysv/consts/MTUNLOAD.S b/libc/sysv/consts/MTUNLOAD.S new file mode 100644 index 000000000..3bca9a290 --- /dev/null +++ b/libc/sysv/consts/MTUNLOAD.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,MTUNLOAD,31,0,0,0,0,0 diff --git a/libc/sysv/consts/MTUNLOCK.S b/libc/sysv/consts/MTUNLOCK.S new file mode 100644 index 000000000..b9defed0f --- /dev/null +++ b/libc/sysv/consts/MTUNLOCK.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,MTUNLOCK,29,0,0,0,0,0 diff --git a/libc/sysv/consts/NCARGS.S b/libc/sysv/consts/NCARGS.S new file mode 100644 index 000000000..e4d176f23 --- /dev/null +++ b/libc/sysv/consts/NCARGS.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,NCARGS,0x020000,0x040000,0x040000,0x040000,0x040000,0 diff --git a/libc/sysv/consts/ND_NA_FLAG_OVERRIDE.S b/libc/sysv/consts/ND_NA_FLAG_OVERRIDE.S new file mode 100644 index 000000000..31100452c --- /dev/null +++ b/libc/sysv/consts/ND_NA_FLAG_OVERRIDE.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nd,ND_NA_FLAG_OVERRIDE,0x20,0x20,0x20,0x20,0x20,0x20000000 diff --git a/libc/sysv/consts/ND_NA_FLAG_ROUTER.S b/libc/sysv/consts/ND_NA_FLAG_ROUTER.S new file mode 100644 index 000000000..9e3b2386c --- /dev/null +++ b/libc/sysv/consts/ND_NA_FLAG_ROUTER.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nd,ND_NA_FLAG_ROUTER,0x80,0x80,0x80,0x80,0x80,0x80000000 diff --git a/libc/sysv/consts/ND_NA_FLAG_SOLICITED.S b/libc/sysv/consts/ND_NA_FLAG_SOLICITED.S new file mode 100644 index 000000000..a269ca432 --- /dev/null +++ b/libc/sysv/consts/ND_NA_FLAG_SOLICITED.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nd,ND_NA_FLAG_SOLICITED,0x40,0x40,0x40,0x40,0x40,0x40000000 diff --git a/libc/sysv/consts/ND_NEIGHBOR_ADVERT.S b/libc/sysv/consts/ND_NEIGHBOR_ADVERT.S new file mode 100644 index 000000000..ea844d6fb --- /dev/null +++ b/libc/sysv/consts/ND_NEIGHBOR_ADVERT.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nd,ND_NEIGHBOR_ADVERT,136,136,136,136,136,0 diff --git a/libc/sysv/consts/ND_NEIGHBOR_SOLICIT.S b/libc/sysv/consts/ND_NEIGHBOR_SOLICIT.S new file mode 100644 index 000000000..6e9cf9967 --- /dev/null +++ b/libc/sysv/consts/ND_NEIGHBOR_SOLICIT.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nd,ND_NEIGHBOR_SOLICIT,135,135,135,135,135,0 diff --git a/libc/sysv/consts/ND_RA_FLAG_HOME_AGENT.S b/libc/sysv/consts/ND_RA_FLAG_HOME_AGENT.S new file mode 100644 index 000000000..b5474435a --- /dev/null +++ b/libc/sysv/consts/ND_RA_FLAG_HOME_AGENT.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nd,ND_RA_FLAG_HOME_AGENT,0x20,0,0,0,0,0x20 diff --git a/libc/sysv/consts/ND_RA_FLAG_MANAGED.S b/libc/sysv/consts/ND_RA_FLAG_MANAGED.S new file mode 100644 index 000000000..f82c394a8 --- /dev/null +++ b/libc/sysv/consts/ND_RA_FLAG_MANAGED.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nd,ND_RA_FLAG_MANAGED,0x80,0x80,0x80,0x80,0x80,0x80 diff --git a/libc/sysv/consts/ND_RA_FLAG_OTHER.S b/libc/sysv/consts/ND_RA_FLAG_OTHER.S new file mode 100644 index 000000000..9b6c68a3b --- /dev/null +++ b/libc/sysv/consts/ND_RA_FLAG_OTHER.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nd,ND_RA_FLAG_OTHER,0x40,0x40,0x40,0x40,0x40,0x40 diff --git a/libc/sysv/consts/ND_REDIRECT.S b/libc/sysv/consts/ND_REDIRECT.S new file mode 100644 index 000000000..4644874e1 --- /dev/null +++ b/libc/sysv/consts/ND_REDIRECT.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nd,ND_REDIRECT,137,137,137,137,137,0 diff --git a/libc/sysv/consts/ND_ROUTER_ADVERT.S b/libc/sysv/consts/ND_ROUTER_ADVERT.S new file mode 100644 index 000000000..4ac749441 --- /dev/null +++ b/libc/sysv/consts/ND_ROUTER_ADVERT.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nd,ND_ROUTER_ADVERT,134,134,134,134,134,0 diff --git a/libc/sysv/consts/ND_ROUTER_SOLICIT.S b/libc/sysv/consts/ND_ROUTER_SOLICIT.S new file mode 100644 index 000000000..9b619ccec --- /dev/null +++ b/libc/sysv/consts/ND_ROUTER_SOLICIT.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nd,ND_ROUTER_SOLICIT,133,133,133,133,133,0 diff --git a/libc/sysv/consts/NEW_TIME.S b/libc/sysv/consts/NEW_TIME.S new file mode 100644 index 000000000..36e147905 --- /dev/null +++ b/libc/sysv/consts/NEW_TIME.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,NEW_TIME,3,4,3,0,0,0 diff --git a/libc/sysv/consts/NFDBITS.S b/libc/sysv/consts/NFDBITS.S new file mode 100644 index 000000000..09c290bc7 --- /dev/null +++ b/libc/sysv/consts/NFDBITS.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,NFDBITS,0x40,0x20,0x40,0x20,0x20,0 diff --git a/libc/sysv/consts/NGREG.S b/libc/sysv/consts/NGREG.S new file mode 100644 index 000000000..4fcc715da --- /dev/null +++ b/libc/sysv/consts/NGREG.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,NGREG,23,0,0,0,0,0 diff --git a/libc/sysv/consts/NGROUPS.S b/libc/sysv/consts/NGROUPS.S new file mode 100644 index 000000000..49d27302f --- /dev/null +++ b/libc/sysv/consts/NGROUPS.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,NGROUPS,0x010000,0x10,0x0400,0x10,0x10,0 diff --git a/libc/sysv/consts/NGROUPS_MAX.S b/libc/sysv/consts/NGROUPS_MAX.S new file mode 100644 index 000000000..e1eccd19e --- /dev/null +++ b/libc/sysv/consts/NGROUPS_MAX.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,NGROUPS_MAX,0x010000,0x10,0x03ff,0x10,0x10,0 diff --git a/libc/sysv/consts/NL_ARGMAX.S b/libc/sysv/consts/NL_ARGMAX.S new file mode 100644 index 000000000..8029886e8 --- /dev/null +++ b/libc/sysv/consts/NL_ARGMAX.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,NL_ARGMAX,0x1000,9,0x1000,9,9,0 diff --git a/libc/sysv/consts/NL_CAT_LOCALE.S b/libc/sysv/consts/NL_CAT_LOCALE.S new file mode 100644 index 000000000..b7b0b61fc --- /dev/null +++ b/libc/sysv/consts/NL_CAT_LOCALE.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,NL_CAT_LOCALE,1,1,1,1,1,0 diff --git a/libc/sysv/consts/NL_LANGMAX.S b/libc/sysv/consts/NL_LANGMAX.S new file mode 100644 index 000000000..8668c98d6 --- /dev/null +++ b/libc/sysv/consts/NL_LANGMAX.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,NL_LANGMAX,0x0800,14,31,14,14,0 diff --git a/libc/sysv/consts/NL_MSGMAX.S b/libc/sysv/consts/NL_MSGMAX.S new file mode 100644 index 000000000..92076b3cc --- /dev/null +++ b/libc/sysv/consts/NL_MSGMAX.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,NL_MSGMAX,0x7fffffff,0x7fff,0x7fff,0x7fff,0x7fff,0 diff --git a/libc/sysv/consts/NL_NMAX.S b/libc/sysv/consts/NL_NMAX.S new file mode 100644 index 000000000..b73271b18 --- /dev/null +++ b/libc/sysv/consts/NL_NMAX.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,NL_NMAX,0x7fffffff,1,1,0,0,0 diff --git a/libc/sysv/consts/NL_SETD.S b/libc/sysv/consts/NL_SETD.S new file mode 100644 index 000000000..f7f8b3b79 --- /dev/null +++ b/libc/sysv/consts/NL_SETD.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,NL_SETD,1,1,0,1,1,0 diff --git a/libc/sysv/consts/NL_SETMAX.S b/libc/sysv/consts/NL_SETMAX.S new file mode 100644 index 000000000..49b0c7d5a --- /dev/null +++ b/libc/sysv/consts/NL_SETMAX.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,NL_SETMAX,0x7fffffff,255,255,255,255,0 diff --git a/libc/sysv/consts/NL_TEXTMAX.S b/libc/sysv/consts/NL_TEXTMAX.S new file mode 100644 index 000000000..ae5d3959a --- /dev/null +++ b/libc/sysv/consts/NL_TEXTMAX.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,NL_TEXTMAX,0x7fffffff,0x0800,0x0800,255,255,0 diff --git a/libc/sysv/consts/NOEXPR.S b/libc/sysv/consts/NOEXPR.S new file mode 100644 index 000000000..dda607b42 --- /dev/null +++ b/libc/sysv/consts/NOEXPR.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,NOEXPR,0x050001,53,53,49,49,0 diff --git a/libc/sysv/consts/NOFILE.S b/libc/sysv/consts/NOFILE.S new file mode 100644 index 000000000..443b78c29 --- /dev/null +++ b/libc/sysv/consts/NOFILE.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,NOFILE,0x0100,0x0100,0x40,0x40,0x40,0 diff --git a/libc/sysv/consts/NOGROUP.S b/libc/sysv/consts/NOGROUP.S new file mode 100644 index 000000000..f7db809a0 --- /dev/null +++ b/libc/sysv/consts/NOGROUP.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,NOGROUP,-1,0xffff,0xffff,0xffff,0xffff,0 diff --git a/libc/sysv/consts/NOSTR.S b/libc/sysv/consts/NOSTR.S new file mode 100644 index 000000000..a1e9e29cd --- /dev/null +++ b/libc/sysv/consts/NOSTR.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,NOSTR,0x050003,55,55,48,48,0 diff --git a/libc/sysv/consts/OLD_TIME.S b/libc/sysv/consts/OLD_TIME.S new file mode 100644 index 000000000..7fc2d155e --- /dev/null +++ b/libc/sysv/consts/OLD_TIME.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,OLD_TIME,4,3,2,0,0,0 diff --git a/libc/sysv/consts/ORDERED_QUEUE_TAG.S b/libc/sysv/consts/ORDERED_QUEUE_TAG.S new file mode 100644 index 000000000..a70c7d042 --- /dev/null +++ b/libc/sysv/consts/ORDERED_QUEUE_TAG.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,ORDERED_QUEUE_TAG,34,0,0,0,0,0 diff --git a/libc/sysv/consts/ORIG_RAX.S b/libc/sysv/consts/ORIG_RAX.S new file mode 100644 index 000000000..d9077e080 --- /dev/null +++ b/libc/sysv/consts/ORIG_RAX.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,ORIG_RAX,15,0,0,0,0,0 diff --git a/libc/sysv/consts/PM_STR.S b/libc/sysv/consts/PM_STR.S new file mode 100644 index 000000000..14d6cebd5 --- /dev/null +++ b/libc/sysv/consts/PM_STR.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,PM_STR,0x020027,6,6,5,5,0 diff --git a/libc/sysv/consts/PRE_FETCH.S b/libc/sysv/consts/PRE_FETCH.S new file mode 100644 index 000000000..7d19c4cfe --- /dev/null +++ b/libc/sysv/consts/PRE_FETCH.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,PRE_FETCH,52,0,0,0,0,0 diff --git a/libc/sysv/consts/QUEUE_FULL.S b/libc/sysv/consts/QUEUE_FULL.S new file mode 100644 index 000000000..42cf5b046 --- /dev/null +++ b/libc/sysv/consts/QUEUE_FULL.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,QUEUE_FULL,20,0,0,0,0,0 diff --git a/libc/sysv/consts/RADIXCHAR.S b/libc/sysv/consts/RADIXCHAR.S new file mode 100644 index 000000000..a907fd1fc --- /dev/null +++ b/libc/sysv/consts/RADIXCHAR.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,RADIXCHAR,0x010000,50,50,44,44,0 diff --git a/libc/sysv/consts/REASSIGN_BLOCKS.S b/libc/sysv/consts/REASSIGN_BLOCKS.S new file mode 100644 index 000000000..d5e038195 --- /dev/null +++ b/libc/sysv/consts/REASSIGN_BLOCKS.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,REASSIGN_BLOCKS,7,0,0,0,0,0 diff --git a/libc/sysv/consts/RECEIVE_DIAGNOSTIC.S b/libc/sysv/consts/RECEIVE_DIAGNOSTIC.S new file mode 100644 index 000000000..4b1010d97 --- /dev/null +++ b/libc/sysv/consts/RECEIVE_DIAGNOSTIC.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,RECEIVE_DIAGNOSTIC,28,0,0,0,0,0 diff --git a/libc/sysv/consts/RECOVERED_ERROR.S b/libc/sysv/consts/RECOVERED_ERROR.S new file mode 100644 index 000000000..3774f5f99 --- /dev/null +++ b/libc/sysv/consts/RECOVERED_ERROR.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,RECOVERED_ERROR,1,0,0,0,0,0 diff --git a/libc/sysv/consts/RECOVER_BUFFERED_DATA.S b/libc/sysv/consts/RECOVER_BUFFERED_DATA.S new file mode 100644 index 000000000..71f655622 --- /dev/null +++ b/libc/sysv/consts/RECOVER_BUFFERED_DATA.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,RECOVER_BUFFERED_DATA,20,0,0,0,0,0 diff --git a/libc/sysv/consts/RELEASE_RECOVERY.S b/libc/sysv/consts/RELEASE_RECOVERY.S new file mode 100644 index 000000000..21d4260df --- /dev/null +++ b/libc/sysv/consts/RELEASE_RECOVERY.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,RELEASE_RECOVERY,0x10,0,0,0,0,0 diff --git a/libc/sysv/consts/REQUEST_SENSE.S b/libc/sysv/consts/REQUEST_SENSE.S new file mode 100644 index 000000000..4fc3784d0 --- /dev/null +++ b/libc/sysv/consts/REQUEST_SENSE.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,REQUEST_SENSE,3,0,0,0,0,0 diff --git a/libc/sysv/consts/RESERVATION_CONFLICT.S b/libc/sysv/consts/RESERVATION_CONFLICT.S new file mode 100644 index 000000000..acccfac46 --- /dev/null +++ b/libc/sysv/consts/RESERVATION_CONFLICT.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,RESERVATION_CONFLICT,12,0,0,0,0,0 diff --git a/libc/sysv/consts/RESERVE.S b/libc/sysv/consts/RESERVE.S new file mode 100644 index 000000000..d95570005 --- /dev/null +++ b/libc/sysv/consts/RESERVE.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,RESERVE,22,0,0,0,0,0 diff --git a/libc/sysv/consts/RESERVE_10.S b/libc/sysv/consts/RESERVE_10.S new file mode 100644 index 000000000..57b904233 --- /dev/null +++ b/libc/sysv/consts/RESERVE_10.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,RESERVE_10,86,0,0,0,0,0 diff --git a/libc/sysv/consts/RESTORE_POINTERS.S b/libc/sysv/consts/RESTORE_POINTERS.S new file mode 100644 index 000000000..70c931be4 --- /dev/null +++ b/libc/sysv/consts/RESTORE_POINTERS.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,RESTORE_POINTERS,3,0,0,0,0,0 diff --git a/libc/sysv/consts/REZERO_UNIT.S b/libc/sysv/consts/REZERO_UNIT.S new file mode 100644 index 000000000..45834ce13 --- /dev/null +++ b/libc/sysv/consts/REZERO_UNIT.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,REZERO_UNIT,1,0,0,0,0,0 diff --git a/libc/sysv/consts/RE_DUP_MAX.S b/libc/sysv/consts/RE_DUP_MAX.S new file mode 100644 index 000000000..3a8dd0ef4 --- /dev/null +++ b/libc/sysv/consts/RE_DUP_MAX.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,RE_DUP_MAX,0x7fff,255,255,255,255,0 diff --git a/libc/sysv/consts/RTCF_DOREDIRECT.S b/libc/sysv/consts/RTCF_DOREDIRECT.S new file mode 100644 index 000000000..0fdcdb0f5 --- /dev/null +++ b/libc/sysv/consts/RTCF_DOREDIRECT.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,RTCF_DOREDIRECT,0x01000000,0,0,0,0,0 diff --git a/libc/sysv/consts/RUN_LVL.S b/libc/sysv/consts/RUN_LVL.S new file mode 100644 index 000000000..16e842e68 --- /dev/null +++ b/libc/sysv/consts/RUN_LVL.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,RUN_LVL,1,1,0,0,0,0 diff --git a/libc/sysv/consts/SAVE_POINTERS.S b/libc/sysv/consts/SAVE_POINTERS.S new file mode 100644 index 000000000..9bb07f104 --- /dev/null +++ b/libc/sysv/consts/SAVE_POINTERS.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,SAVE_POINTERS,2,0,0,0,0,0 diff --git a/libc/sysv/consts/SEM_INFO.S b/libc/sysv/consts/SEM_INFO.S new file mode 100644 index 000000000..505d5ac41 --- /dev/null +++ b/libc/sysv/consts/SEM_INFO.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,SEM_INFO,19,0,11,0,0,0 diff --git a/libc/sysv/consts/SEM_STAT.S b/libc/sysv/consts/SEM_STAT.S new file mode 100644 index 000000000..f56d78dfb --- /dev/null +++ b/libc/sysv/consts/SEM_STAT.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,SEM_STAT,18,0,10,0,0,0 diff --git a/libc/sysv/consts/SEM_VALUE_MAX.S b/libc/sysv/consts/SEM_VALUE_MAX.S new file mode 100644 index 000000000..392e908ea --- /dev/null +++ b/libc/sysv/consts/SEM_VALUE_MAX.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,SEM_VALUE_MAX,0x7fffffff,0x7fff,0x7fffffff,0xffffffff,0xffffffff,0 diff --git a/libc/sysv/consts/SHMLBA.S b/libc/sysv/consts/SHMLBA.S new file mode 100644 index 000000000..7f5607cdb --- /dev/null +++ b/libc/sysv/consts/SHMLBA.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,SHMLBA,0,0x1000,0x1000,0x1000,0x1000,0 diff --git a/libc/sysv/consts/SIMPLE_QUEUE_TAG.S b/libc/sysv/consts/SIMPLE_QUEUE_TAG.S new file mode 100644 index 000000000..ebab27b7b --- /dev/null +++ b/libc/sysv/consts/SIMPLE_QUEUE_TAG.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,SIMPLE_QUEUE_TAG,0x20,0,0,0,0,0 diff --git a/libc/sysv/consts/SPACE.S b/libc/sysv/consts/SPACE.S new file mode 100644 index 000000000..524d578c2 --- /dev/null +++ b/libc/sysv/consts/SPACE.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,SPACE,17,0,0,0,0,0 diff --git a/libc/sysv/consts/START_STOP.S b/libc/sysv/consts/START_STOP.S new file mode 100644 index 000000000..12824bea5 --- /dev/null +++ b/libc/sysv/consts/START_STOP.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,START_STOP,27,0,0,0,0,0 diff --git a/libc/sysv/consts/STATUS_MASK.S b/libc/sysv/consts/STATUS_MASK.S new file mode 100644 index 000000000..85ea8426d --- /dev/null +++ b/libc/sysv/consts/STATUS_MASK.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,STATUS_MASK,62,0,0,0,0,0 diff --git a/libc/sysv/consts/STA_RONLY.S b/libc/sysv/consts/STA_RONLY.S new file mode 100644 index 000000000..c18110c3d --- /dev/null +++ b/libc/sysv/consts/STA_RONLY.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,STA_RONLY,0xff00,0,0xff00,0,0,0 diff --git a/libc/sysv/consts/SWAP_FLAG_DISCARD.S b/libc/sysv/consts/SWAP_FLAG_DISCARD.S new file mode 100644 index 000000000..2941ea68e --- /dev/null +++ b/libc/sysv/consts/SWAP_FLAG_DISCARD.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,SWAP_FLAG_DISCARD,0x010000,0,0,0,0,0 diff --git a/libc/sysv/consts/SYMLOOP_MAX.S b/libc/sysv/consts/SYMLOOP_MAX.S new file mode 100644 index 000000000..2906fd59a --- /dev/null +++ b/libc/sysv/consts/SYMLOOP_MAX.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,SYMLOOP_MAX,0,0,0,0x20,0x20,0 diff --git a/libc/sysv/consts/SYNCHRONIZE_CACHE.S b/libc/sysv/consts/SYNCHRONIZE_CACHE.S new file mode 100644 index 000000000..20fc70ef6 --- /dev/null +++ b/libc/sysv/consts/SYNCHRONIZE_CACHE.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,SYNCHRONIZE_CACHE,53,0,0,0,0,0 diff --git a/libc/sysv/consts/THOUSEP.S b/libc/sysv/consts/THOUSEP.S new file mode 100644 index 000000000..61ba68536 --- /dev/null +++ b/libc/sysv/consts/THOUSEP.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,THOUSEP,0x010001,51,51,45,45,0 diff --git a/libc/sysv/consts/TH_ACK.S b/libc/sysv/consts/TH_ACK.S new file mode 100644 index 000000000..1847e2d16 --- /dev/null +++ b/libc/sysv/consts/TH_ACK.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,TH_ACK,16,16,16,16,16,16 diff --git a/libc/sysv/consts/TH_FIN.S b/libc/sysv/consts/TH_FIN.S new file mode 100644 index 000000000..9a6cf38a2 --- /dev/null +++ b/libc/sysv/consts/TH_FIN.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,TH_FIN,1,1,1,1,1,1 diff --git a/libc/sysv/consts/TH_PUSH.S b/libc/sysv/consts/TH_PUSH.S new file mode 100644 index 000000000..574fe9a02 --- /dev/null +++ b/libc/sysv/consts/TH_PUSH.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,TH_PUSH,8,8,8,8,8,0 diff --git a/libc/sysv/consts/TH_RST.S b/libc/sysv/consts/TH_RST.S new file mode 100644 index 000000000..f6a1a6761 --- /dev/null +++ b/libc/sysv/consts/TH_RST.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,TH_RST,4,4,4,4,4,4 diff --git a/libc/sysv/consts/TH_SYN.S b/libc/sysv/consts/TH_SYN.S new file mode 100644 index 000000000..fc133046d --- /dev/null +++ b/libc/sysv/consts/TH_SYN.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,TH_SYN,2,2,2,2,2,2 diff --git a/libc/sysv/consts/TH_URG.S b/libc/sysv/consts/TH_URG.S new file mode 100644 index 000000000..35cead2cb --- /dev/null +++ b/libc/sysv/consts/TH_URG.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,TH_URG,32,32,32,32,32,32 diff --git a/libc/sysv/consts/TIME_UTC.S b/libc/sysv/consts/TIME_UTC.S new file mode 100644 index 000000000..c7432d5c6 --- /dev/null +++ b/libc/sysv/consts/TIME_UTC.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,TIME_UTC,1,0,1,0,0,0 diff --git a/libc/sysv/consts/TMP_MAX.S b/libc/sysv/consts/TMP_MAX.S new file mode 100644 index 000000000..16664f24a --- /dev/null +++ b/libc/sysv/consts/TMP_MAX.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,TMP_MAX,0x03a2f8,0x1269ae40,0x1269ae40,0x7fffffff,0x7fffffff,0 diff --git a/libc/sysv/consts/TSS_DTOR_ITERATIONS.S b/libc/sysv/consts/TSS_DTOR_ITERATIONS.S new file mode 100644 index 000000000..180b58fce --- /dev/null +++ b/libc/sysv/consts/TSS_DTOR_ITERATIONS.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,TSS_DTOR_ITERATIONS,0,0,4,0,0,0 diff --git a/libc/sysv/consts/TTY_NAME_MAX.S b/libc/sysv/consts/TTY_NAME_MAX.S new file mode 100644 index 000000000..01ff94da5 --- /dev/null +++ b/libc/sysv/consts/TTY_NAME_MAX.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,TTY_NAME_MAX,0x20,0,0,260,260,0 diff --git a/libc/sysv/consts/UIO_MAXIOV.S b/libc/sysv/consts/UIO_MAXIOV.S new file mode 100644 index 000000000..fc2eb9409 --- /dev/null +++ b/libc/sysv/consts/UIO_MAXIOV.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,UIO_MAXIOV,0x0400,0,0,0x0400,0x0400,0 diff --git a/libc/sysv/consts/UNIT_ATTENTION.S b/libc/sysv/consts/UNIT_ATTENTION.S new file mode 100644 index 000000000..d6f8ca82b --- /dev/null +++ b/libc/sysv/consts/UNIT_ATTENTION.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,UNIT_ATTENTION,6,0,0,0,0,0 diff --git a/libc/sysv/consts/UPDATE_BLOCK.S b/libc/sysv/consts/UPDATE_BLOCK.S new file mode 100644 index 000000000..abae66afd --- /dev/null +++ b/libc/sysv/consts/UPDATE_BLOCK.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,UPDATE_BLOCK,61,0,0,0,0,0 diff --git a/libc/sysv/consts/USER_PROCESS.S b/libc/sysv/consts/USER_PROCESS.S new file mode 100644 index 000000000..5e019c91f --- /dev/null +++ b/libc/sysv/consts/USER_PROCESS.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,USER_PROCESS,7,7,4,0,0,0 diff --git a/libc/sysv/consts/UT_HOSTSIZE.S b/libc/sysv/consts/UT_HOSTSIZE.S new file mode 100644 index 000000000..b53bad134 --- /dev/null +++ b/libc/sysv/consts/UT_HOSTSIZE.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,UT_HOSTSIZE,0x0100,0x10,0,0x0100,0x0100,0 diff --git a/libc/sysv/consts/UT_LINESIZE.S b/libc/sysv/consts/UT_LINESIZE.S new file mode 100644 index 000000000..86c4b8654 --- /dev/null +++ b/libc/sysv/consts/UT_LINESIZE.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,UT_LINESIZE,0x20,8,0,8,8,0 diff --git a/libc/sysv/consts/UT_NAMESIZE.S b/libc/sysv/consts/UT_NAMESIZE.S new file mode 100644 index 000000000..986bc8ae8 --- /dev/null +++ b/libc/sysv/consts/UT_NAMESIZE.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,UT_NAMESIZE,0x20,8,0,0x20,0x20,0 diff --git a/libc/sysv/consts/YESEXPR.S b/libc/sysv/consts/YESEXPR.S new file mode 100644 index 000000000..66a9e6510 --- /dev/null +++ b/libc/sysv/consts/YESEXPR.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,YESEXPR,0x050000,52,52,47,47,0 diff --git a/libc/sysv/consts/YESSTR.S b/libc/sysv/consts/YESSTR.S new file mode 100644 index 000000000..0735ede4b --- /dev/null +++ b/libc/sysv/consts/YESSTR.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,YESSTR,0x050002,54,54,46,46,0 diff --git a/libc/sysv/consts/_XOPEN_ENH_I18N.S b/libc/sysv/consts/_XOPEN_ENH_I18N.S new file mode 100644 index 000000000..4deccb3d2 --- /dev/null +++ b/libc/sysv/consts/_XOPEN_ENH_I18N.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,_XOPEN_ENH_I18N,1,1,-1,-1,-1,0 diff --git a/libc/sysv/consts/_XOPEN_IOV_MAX.S b/libc/sysv/consts/_XOPEN_IOV_MAX.S new file mode 100644 index 000000000..8917cb87a --- /dev/null +++ b/libc/sysv/consts/_XOPEN_IOV_MAX.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,_XOPEN_IOV_MAX,0x10,0x10,0x10,0x10,0x10,0 diff --git a/libc/sysv/consts/_XOPEN_NAME_MAX.S b/libc/sysv/consts/_XOPEN_NAME_MAX.S new file mode 100644 index 000000000..228828027 --- /dev/null +++ b/libc/sysv/consts/_XOPEN_NAME_MAX.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,_XOPEN_NAME_MAX,63,63,63,63,63,63 diff --git a/libc/sysv/consts/_XOPEN_PATH_MAX.S b/libc/sysv/consts/_XOPEN_PATH_MAX.S new file mode 100644 index 000000000..2a1180087 --- /dev/null +++ b/libc/sysv/consts/_XOPEN_PATH_MAX.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,_XOPEN_PATH_MAX,255,255,255,255,255,255 diff --git a/libc/sysv/consts/_XOPEN_SOURCE.S b/libc/sysv/consts/_XOPEN_SOURCE.S new file mode 100644 index 000000000..aac415294 --- /dev/null +++ b/libc/sysv/consts/_XOPEN_SOURCE.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,_XOPEN_SOURCE,700,0,0,0,0,0 diff --git a/libc/sysv/consts/_XOPEN_UNIX.S b/libc/sysv/consts/_XOPEN_UNIX.S new file mode 100644 index 000000000..892da559b --- /dev/null +++ b/libc/sysv/consts/_XOPEN_UNIX.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,_XOPEN_UNIX,1,1,-1,-1,-1,0 diff --git a/libc/sysv/consts/_XOPEN_VERSION.S b/libc/sysv/consts/_XOPEN_VERSION.S new file mode 100644 index 000000000..20a5261e0 --- /dev/null +++ b/libc/sysv/consts/_XOPEN_VERSION.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon misc,_XOPEN_VERSION,700,600,0,0,0,0 diff --git a/libc/sysv/consts/__NR___mac_syscall.S b/libc/sysv/consts/__NR___mac_syscall.S new file mode 100644 index 000000000..810995d21 --- /dev/null +++ b/libc/sysv/consts/__NR___mac_syscall.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR___mac_syscall,0xfff,0x200017d,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR___sysctl.S b/libc/sysv/consts/__NR___sysctl.S new file mode 100644 index 000000000..254e329f5 --- /dev/null +++ b/libc/sysv/consts/__NR___sysctl.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR___sysctl,0xfff,0xfff,0x00ca,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR__umtx_op.S b/libc/sysv/consts/__NR__umtx_op.S new file mode 100644 index 000000000..69c0c1e4c --- /dev/null +++ b/libc/sysv/consts/__NR__umtx_op.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR__umtx_op,0xfff,0xfff,0x01c6,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_abort2.S b/libc/sysv/consts/__NR_abort2.S new file mode 100644 index 000000000..35009730a --- /dev/null +++ b/libc/sysv/consts/__NR_abort2.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_abort2,0xfff,0xfff,0x01cf,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_abort_with_payload.S b/libc/sysv/consts/__NR_abort_with_payload.S new file mode 100644 index 000000000..56e8f493a --- /dev/null +++ b/libc/sysv/consts/__NR_abort_with_payload.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_abort_with_payload,0xfff,0x2000209,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_accept_nocancel.S b/libc/sysv/consts/__NR_accept_nocancel.S new file mode 100644 index 000000000..f854fa29e --- /dev/null +++ b/libc/sysv/consts/__NR_accept_nocancel.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_accept_nocancel,0xfff,0x2000194,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_access_extended.S b/libc/sysv/consts/__NR_access_extended.S new file mode 100644 index 000000000..d3a3d2a81 --- /dev/null +++ b/libc/sysv/consts/__NR_access_extended.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_access_extended,0xfff,0x200011c,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_acl_aclcheck_fd.S b/libc/sysv/consts/__NR_acl_aclcheck_fd.S new file mode 100644 index 000000000..ab0ffd3bc --- /dev/null +++ b/libc/sysv/consts/__NR_acl_aclcheck_fd.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_acl_aclcheck_fd,0xfff,0xfff,0x0162,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_acl_aclcheck_file.S b/libc/sysv/consts/__NR_acl_aclcheck_file.S new file mode 100644 index 000000000..5da7a3c6b --- /dev/null +++ b/libc/sysv/consts/__NR_acl_aclcheck_file.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_acl_aclcheck_file,0xfff,0xfff,0x0161,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_acl_aclcheck_link.S b/libc/sysv/consts/__NR_acl_aclcheck_link.S new file mode 100644 index 000000000..0925b8a3c --- /dev/null +++ b/libc/sysv/consts/__NR_acl_aclcheck_link.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_acl_aclcheck_link,0xfff,0xfff,0x01ac,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_acl_delete_fd.S b/libc/sysv/consts/__NR_acl_delete_fd.S new file mode 100644 index 000000000..df4ff80bc --- /dev/null +++ b/libc/sysv/consts/__NR_acl_delete_fd.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_acl_delete_fd,0xfff,0xfff,0x0160,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_acl_delete_file.S b/libc/sysv/consts/__NR_acl_delete_file.S new file mode 100644 index 000000000..4a95760c7 --- /dev/null +++ b/libc/sysv/consts/__NR_acl_delete_file.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_acl_delete_file,0xfff,0xfff,0x015f,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_acl_delete_link.S b/libc/sysv/consts/__NR_acl_delete_link.S new file mode 100644 index 000000000..9459e83b3 --- /dev/null +++ b/libc/sysv/consts/__NR_acl_delete_link.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_acl_delete_link,0xfff,0xfff,0x01ab,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_acl_get_fd.S b/libc/sysv/consts/__NR_acl_get_fd.S new file mode 100644 index 000000000..31d8892c9 --- /dev/null +++ b/libc/sysv/consts/__NR_acl_get_fd.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_acl_get_fd,0xfff,0xfff,0x015d,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_acl_get_file.S b/libc/sysv/consts/__NR_acl_get_file.S new file mode 100644 index 000000000..07cdf89da --- /dev/null +++ b/libc/sysv/consts/__NR_acl_get_file.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_acl_get_file,0xfff,0xfff,0x015b,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_acl_get_link.S b/libc/sysv/consts/__NR_acl_get_link.S new file mode 100644 index 000000000..4c0f21d93 --- /dev/null +++ b/libc/sysv/consts/__NR_acl_get_link.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_acl_get_link,0xfff,0xfff,0x01a9,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_acl_set_fd.S b/libc/sysv/consts/__NR_acl_set_fd.S new file mode 100644 index 000000000..37a002652 --- /dev/null +++ b/libc/sysv/consts/__NR_acl_set_fd.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_acl_set_fd,0xfff,0xfff,0x015e,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_acl_set_file.S b/libc/sysv/consts/__NR_acl_set_file.S new file mode 100644 index 000000000..e136b1c66 --- /dev/null +++ b/libc/sysv/consts/__NR_acl_set_file.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_acl_set_file,0xfff,0xfff,0x015c,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_acl_set_link.S b/libc/sysv/consts/__NR_acl_set_link.S new file mode 100644 index 000000000..347732a26 --- /dev/null +++ b/libc/sysv/consts/__NR_acl_set_link.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_acl_set_link,0xfff,0xfff,0x01aa,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_adjfreq.S b/libc/sysv/consts/__NR_adjfreq.S new file mode 100644 index 000000000..84bcbb40b --- /dev/null +++ b/libc/sysv/consts/__NR_adjfreq.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_adjfreq,0xfff,0xfff,0xfff,0x0131,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_adjtime.S b/libc/sysv/consts/__NR_adjtime.S new file mode 100644 index 000000000..d7d901244 --- /dev/null +++ b/libc/sysv/consts/__NR_adjtime.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_adjtime,0xfff,0x200008c,0x008c,0x008c,0x1a5,0xfff diff --git a/libc/sysv/consts/__NR_afs3_syscall.S b/libc/sysv/consts/__NR_afs3_syscall.S new file mode 100644 index 000000000..d68ffcd50 --- /dev/null +++ b/libc/sysv/consts/__NR_afs3_syscall.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_afs3_syscall,0xfff,0xfff,0x0179,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_aio_cancel.S b/libc/sysv/consts/__NR_aio_cancel.S new file mode 100644 index 000000000..2ce6eefa5 --- /dev/null +++ b/libc/sysv/consts/__NR_aio_cancel.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_aio_cancel,0xfff,0x200013c,0x013c,0xfff,0x18f,0xfff diff --git a/libc/sysv/consts/__NR_aio_error.S b/libc/sysv/consts/__NR_aio_error.S new file mode 100644 index 000000000..532dd2e9a --- /dev/null +++ b/libc/sysv/consts/__NR_aio_error.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_aio_error,0xfff,0x200013d,0x013d,0xfff,0x190,0xfff diff --git a/libc/sysv/consts/__NR_aio_fsync.S b/libc/sysv/consts/__NR_aio_fsync.S new file mode 100644 index 000000000..76813330b --- /dev/null +++ b/libc/sysv/consts/__NR_aio_fsync.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_aio_fsync,0xfff,0x2000139,0x01d1,0xfff,0x191,0xfff diff --git a/libc/sysv/consts/__NR_aio_mlock.S b/libc/sysv/consts/__NR_aio_mlock.S new file mode 100644 index 000000000..235724e64 --- /dev/null +++ b/libc/sysv/consts/__NR_aio_mlock.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_aio_mlock,0xfff,0xfff,0x021f,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_aio_read.S b/libc/sysv/consts/__NR_aio_read.S new file mode 100644 index 000000000..141ad6fc0 --- /dev/null +++ b/libc/sysv/consts/__NR_aio_read.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_aio_read,0xfff,0x200013e,0x013e,0xfff,0x192,0xfff diff --git a/libc/sysv/consts/__NR_aio_return.S b/libc/sysv/consts/__NR_aio_return.S new file mode 100644 index 000000000..89a015961 --- /dev/null +++ b/libc/sysv/consts/__NR_aio_return.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_aio_return,0xfff,0x200013a,0x013a,0xfff,0x193,0xfff diff --git a/libc/sysv/consts/__NR_aio_suspend.S b/libc/sysv/consts/__NR_aio_suspend.S new file mode 100644 index 000000000..fc0466ab5 --- /dev/null +++ b/libc/sysv/consts/__NR_aio_suspend.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_aio_suspend,0xfff,0x200013b,0x013b,0xfff,0x1b6,0xfff diff --git a/libc/sysv/consts/__NR_aio_suspend_nocancel.S b/libc/sysv/consts/__NR_aio_suspend_nocancel.S new file mode 100644 index 000000000..dff9f6639 --- /dev/null +++ b/libc/sysv/consts/__NR_aio_suspend_nocancel.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_aio_suspend_nocancel,0xfff,0x20001a5,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_aio_waitcomplete.S b/libc/sysv/consts/__NR_aio_waitcomplete.S new file mode 100644 index 000000000..d5082785e --- /dev/null +++ b/libc/sysv/consts/__NR_aio_waitcomplete.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_aio_waitcomplete,0xfff,0xfff,0x0167,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_aio_write.S b/libc/sysv/consts/__NR_aio_write.S new file mode 100644 index 000000000..6344addda --- /dev/null +++ b/libc/sysv/consts/__NR_aio_write.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_aio_write,0xfff,0x200013f,0x013f,0xfff,0x195,0xfff diff --git a/libc/sysv/consts/__NR_audit.S b/libc/sysv/consts/__NR_audit.S new file mode 100644 index 000000000..70c7a819e --- /dev/null +++ b/libc/sysv/consts/__NR_audit.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_audit,0xfff,0x200015e,0x01bd,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_audit_session_join.S b/libc/sysv/consts/__NR_audit_session_join.S new file mode 100644 index 000000000..7bcb69c71 --- /dev/null +++ b/libc/sysv/consts/__NR_audit_session_join.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_audit_session_join,0xfff,0x20001ad,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_audit_session_port.S b/libc/sysv/consts/__NR_audit_session_port.S new file mode 100644 index 000000000..714878c8f --- /dev/null +++ b/libc/sysv/consts/__NR_audit_session_port.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_audit_session_port,0xfff,0x20001b0,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_audit_session_self.S b/libc/sysv/consts/__NR_audit_session_self.S new file mode 100644 index 000000000..4cad76847 --- /dev/null +++ b/libc/sysv/consts/__NR_audit_session_self.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_audit_session_self,0xfff,0x20001ac,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_auditctl.S b/libc/sysv/consts/__NR_auditctl.S new file mode 100644 index 000000000..86e2f81bf --- /dev/null +++ b/libc/sysv/consts/__NR_auditctl.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_auditctl,0xfff,0x2000167,0x01c5,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_auditon.S b/libc/sysv/consts/__NR_auditon.S new file mode 100644 index 000000000..1eede75d8 --- /dev/null +++ b/libc/sysv/consts/__NR_auditon.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_auditon,0xfff,0x200015f,0x01be,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_bindat.S b/libc/sysv/consts/__NR_bindat.S new file mode 100644 index 000000000..9f17b5488 --- /dev/null +++ b/libc/sysv/consts/__NR_bindat.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_bindat,0xfff,0xfff,0x021a,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_break.S b/libc/sysv/consts/__NR_break.S new file mode 100644 index 000000000..1029fca9d --- /dev/null +++ b/libc/sysv/consts/__NR_break.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_break,0xfff,0xfff,0x0011,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_bsdthread_ctl.S b/libc/sysv/consts/__NR_bsdthread_ctl.S new file mode 100644 index 000000000..ca000a96a --- /dev/null +++ b/libc/sysv/consts/__NR_bsdthread_ctl.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_bsdthread_ctl,0xfff,0x20001de,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_bsdthread_terminate.S b/libc/sysv/consts/__NR_bsdthread_terminate.S new file mode 100644 index 000000000..2646dc6fc --- /dev/null +++ b/libc/sysv/consts/__NR_bsdthread_terminate.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_bsdthread_terminate,0xfff,0x2000169,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_cap_enter.S b/libc/sysv/consts/__NR_cap_enter.S new file mode 100644 index 000000000..a9b96fb43 --- /dev/null +++ b/libc/sysv/consts/__NR_cap_enter.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_cap_enter,0xfff,0xfff,0x0204,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_cap_fcntls_get.S b/libc/sysv/consts/__NR_cap_fcntls_get.S new file mode 100644 index 000000000..7f4de6107 --- /dev/null +++ b/libc/sysv/consts/__NR_cap_fcntls_get.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_cap_fcntls_get,0xfff,0xfff,0x0219,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_cap_fcntls_limit.S b/libc/sysv/consts/__NR_cap_fcntls_limit.S new file mode 100644 index 000000000..762117d52 --- /dev/null +++ b/libc/sysv/consts/__NR_cap_fcntls_limit.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_cap_fcntls_limit,0xfff,0xfff,0x0218,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_cap_getmode.S b/libc/sysv/consts/__NR_cap_getmode.S new file mode 100644 index 000000000..50dcb8a79 --- /dev/null +++ b/libc/sysv/consts/__NR_cap_getmode.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_cap_getmode,0xfff,0xfff,0x0205,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_cap_ioctls_get.S b/libc/sysv/consts/__NR_cap_ioctls_get.S new file mode 100644 index 000000000..550de2904 --- /dev/null +++ b/libc/sysv/consts/__NR_cap_ioctls_get.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_cap_ioctls_get,0xfff,0xfff,0x0217,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_cap_ioctls_limit.S b/libc/sysv/consts/__NR_cap_ioctls_limit.S new file mode 100644 index 000000000..554a4a8f0 --- /dev/null +++ b/libc/sysv/consts/__NR_cap_ioctls_limit.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_cap_ioctls_limit,0xfff,0xfff,0x0216,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_cap_rights_get.S b/libc/sysv/consts/__NR_cap_rights_get.S new file mode 100644 index 000000000..3ffc228ec --- /dev/null +++ b/libc/sysv/consts/__NR_cap_rights_get.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_cap_rights_get,0xfff,0xfff,0x0203,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_cap_rights_limit.S b/libc/sysv/consts/__NR_cap_rights_limit.S new file mode 100644 index 000000000..785b457c7 --- /dev/null +++ b/libc/sysv/consts/__NR_cap_rights_limit.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_cap_rights_limit,0xfff,0xfff,0x0215,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_change_fdguard_np.S b/libc/sysv/consts/__NR_change_fdguard_np.S new file mode 100644 index 000000000..8069c6b99 --- /dev/null +++ b/libc/sysv/consts/__NR_change_fdguard_np.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_change_fdguard_np,0xfff,0x20001bc,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_chflags.S b/libc/sysv/consts/__NR_chflags.S new file mode 100644 index 000000000..4da171edc --- /dev/null +++ b/libc/sysv/consts/__NR_chflags.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_chflags,0xfff,0x2000022,0x0022,0x0022,0x022,0xfff diff --git a/libc/sysv/consts/__NR_chflagsat.S b/libc/sysv/consts/__NR_chflagsat.S new file mode 100644 index 000000000..17c82a0ea --- /dev/null +++ b/libc/sysv/consts/__NR_chflagsat.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_chflagsat,0xfff,0xfff,0x021c,0x006b,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_chmod_extended.S b/libc/sysv/consts/__NR_chmod_extended.S new file mode 100644 index 000000000..eb275938a --- /dev/null +++ b/libc/sysv/consts/__NR_chmod_extended.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_chmod_extended,0xfff,0x200011a,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_clock_getcpuclockid2.S b/libc/sysv/consts/__NR_clock_getcpuclockid2.S new file mode 100644 index 000000000..3f70f32db --- /dev/null +++ b/libc/sysv/consts/__NR_clock_getcpuclockid2.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_clock_getcpuclockid2,0xfff,0xfff,0x00f7,0xfff,0x1e2,0xfff diff --git a/libc/sysv/consts/__NR_clonefileat.S b/libc/sysv/consts/__NR_clonefileat.S new file mode 100644 index 000000000..33435a557 --- /dev/null +++ b/libc/sysv/consts/__NR_clonefileat.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_clonefileat,0xfff,0x20001ce,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_close_nocancel.S b/libc/sysv/consts/__NR_close_nocancel.S new file mode 100644 index 000000000..c328230b2 --- /dev/null +++ b/libc/sysv/consts/__NR_close_nocancel.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_close_nocancel,0xfff,0x200018f,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_closefrom.S b/libc/sysv/consts/__NR_closefrom.S new file mode 100644 index 000000000..66f210f09 --- /dev/null +++ b/libc/sysv/consts/__NR_closefrom.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_closefrom,0xfff,0xfff,0x01fd,0x011f,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_coalition.S b/libc/sysv/consts/__NR_coalition.S new file mode 100644 index 000000000..9e5e03cca --- /dev/null +++ b/libc/sysv/consts/__NR_coalition.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_coalition,0xfff,0x20001ca,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_coalition_info.S b/libc/sysv/consts/__NR_coalition_info.S new file mode 100644 index 000000000..8d6566feb --- /dev/null +++ b/libc/sysv/consts/__NR_coalition_info.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_coalition_info,0xfff,0x20001cb,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_connect_nocancel.S b/libc/sysv/consts/__NR_connect_nocancel.S new file mode 100644 index 000000000..be367bde0 --- /dev/null +++ b/libc/sysv/consts/__NR_connect_nocancel.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_connect_nocancel,0xfff,0x2000199,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_connectat.S b/libc/sysv/consts/__NR_connectat.S new file mode 100644 index 000000000..bc68f3817 --- /dev/null +++ b/libc/sysv/consts/__NR_connectat.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_connectat,0xfff,0xfff,0x021b,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_connectx.S b/libc/sysv/consts/__NR_connectx.S new file mode 100644 index 000000000..b01b19366 --- /dev/null +++ b/libc/sysv/consts/__NR_connectx.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_connectx,0xfff,0x20001bf,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_copyfile.S b/libc/sysv/consts/__NR_copyfile.S new file mode 100644 index 000000000..946a0e32c --- /dev/null +++ b/libc/sysv/consts/__NR_copyfile.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_copyfile,0xfff,0x20000e3,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_cpuset.S b/libc/sysv/consts/__NR_cpuset.S new file mode 100644 index 000000000..5933a92cc --- /dev/null +++ b/libc/sysv/consts/__NR_cpuset.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_cpuset,0xfff,0xfff,0x01e4,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_cpuset_getdomain.S b/libc/sysv/consts/__NR_cpuset_getdomain.S new file mode 100644 index 000000000..6862b2d12 --- /dev/null +++ b/libc/sysv/consts/__NR_cpuset_getdomain.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_cpuset_getdomain,0xfff,0xfff,0x0231,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_cpuset_getid.S b/libc/sysv/consts/__NR_cpuset_getid.S new file mode 100644 index 000000000..e2d9e7fcc --- /dev/null +++ b/libc/sysv/consts/__NR_cpuset_getid.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_cpuset_getid,0xfff,0xfff,0x01e6,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_cpuset_setdomain.S b/libc/sysv/consts/__NR_cpuset_setdomain.S new file mode 100644 index 000000000..1b00e4fde --- /dev/null +++ b/libc/sysv/consts/__NR_cpuset_setdomain.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_cpuset_setdomain,0xfff,0xfff,0x0232,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_cpuset_setid.S b/libc/sysv/consts/__NR_cpuset_setid.S new file mode 100644 index 000000000..54593297c --- /dev/null +++ b/libc/sysv/consts/__NR_cpuset_setid.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_cpuset_setid,0xfff,0xfff,0x01e5,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_csops.S b/libc/sysv/consts/__NR_csops.S new file mode 100644 index 000000000..ff17c2021 --- /dev/null +++ b/libc/sysv/consts/__NR_csops.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_csops,0xfff,0x20000a9,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_csops_audittoken.S b/libc/sysv/consts/__NR_csops_audittoken.S new file mode 100644 index 000000000..8a3aa6bc8 --- /dev/null +++ b/libc/sysv/consts/__NR_csops_audittoken.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_csops_audittoken,0xfff,0x20000aa,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_csrctl.S b/libc/sysv/consts/__NR_csrctl.S new file mode 100644 index 000000000..f80df7696 --- /dev/null +++ b/libc/sysv/consts/__NR_csrctl.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_csrctl,0xfff,0x20001e3,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_delete.S b/libc/sysv/consts/__NR_delete.S new file mode 100644 index 000000000..da2368c63 --- /dev/null +++ b/libc/sysv/consts/__NR_delete.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_delete,0xfff,0x20000e2,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_disable_threadsignal.S b/libc/sysv/consts/__NR_disable_threadsignal.S new file mode 100644 index 000000000..082332b6a --- /dev/null +++ b/libc/sysv/consts/__NR_disable_threadsignal.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_disable_threadsignal,0xfff,0x200014b,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_disconnectx.S b/libc/sysv/consts/__NR_disconnectx.S new file mode 100644 index 000000000..9b1f18762 --- /dev/null +++ b/libc/sysv/consts/__NR_disconnectx.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_disconnectx,0xfff,0x20001c0,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_eaccess.S b/libc/sysv/consts/__NR_eaccess.S new file mode 100644 index 000000000..53c349a6c --- /dev/null +++ b/libc/sysv/consts/__NR_eaccess.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_eaccess,0xfff,0xfff,0x0178,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_exchangedata.S b/libc/sysv/consts/__NR_exchangedata.S new file mode 100644 index 000000000..62d4e376f --- /dev/null +++ b/libc/sysv/consts/__NR_exchangedata.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_exchangedata,0xfff,0x20000df,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_extattr_delete_fd.S b/libc/sysv/consts/__NR_extattr_delete_fd.S new file mode 100644 index 000000000..a914725c8 --- /dev/null +++ b/libc/sysv/consts/__NR_extattr_delete_fd.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_extattr_delete_fd,0xfff,0xfff,0x0175,0xfff,0x16e,0xfff diff --git a/libc/sysv/consts/__NR_extattr_delete_file.S b/libc/sysv/consts/__NR_extattr_delete_file.S new file mode 100644 index 000000000..864e4757f --- /dev/null +++ b/libc/sysv/consts/__NR_extattr_delete_file.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_extattr_delete_file,0xfff,0xfff,0x0166,0xfff,0x16b,0xfff diff --git a/libc/sysv/consts/__NR_extattr_delete_link.S b/libc/sysv/consts/__NR_extattr_delete_link.S new file mode 100644 index 000000000..cc9a381c7 --- /dev/null +++ b/libc/sysv/consts/__NR_extattr_delete_link.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_extattr_delete_link,0xfff,0xfff,0x019e,0xfff,0x171,0xfff diff --git a/libc/sysv/consts/__NR_extattr_get_fd.S b/libc/sysv/consts/__NR_extattr_get_fd.S new file mode 100644 index 000000000..692e80c14 --- /dev/null +++ b/libc/sysv/consts/__NR_extattr_get_fd.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_extattr_get_fd,0xfff,0xfff,0x0174,0xfff,0x16d,0xfff diff --git a/libc/sysv/consts/__NR_extattr_get_file.S b/libc/sysv/consts/__NR_extattr_get_file.S new file mode 100644 index 000000000..86271650b --- /dev/null +++ b/libc/sysv/consts/__NR_extattr_get_file.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_extattr_get_file,0xfff,0xfff,0x0165,0xfff,0x16a,0xfff diff --git a/libc/sysv/consts/__NR_extattr_get_link.S b/libc/sysv/consts/__NR_extattr_get_link.S new file mode 100644 index 000000000..48e377e47 --- /dev/null +++ b/libc/sysv/consts/__NR_extattr_get_link.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_extattr_get_link,0xfff,0xfff,0x019d,0xfff,0x170,0xfff diff --git a/libc/sysv/consts/__NR_extattr_list_fd.S b/libc/sysv/consts/__NR_extattr_list_fd.S new file mode 100644 index 000000000..0756351d9 --- /dev/null +++ b/libc/sysv/consts/__NR_extattr_list_fd.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_extattr_list_fd,0xfff,0xfff,0x01b5,0xfff,0x172,0xfff diff --git a/libc/sysv/consts/__NR_extattr_list_file.S b/libc/sysv/consts/__NR_extattr_list_file.S new file mode 100644 index 000000000..c41d71f12 --- /dev/null +++ b/libc/sysv/consts/__NR_extattr_list_file.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_extattr_list_file,0xfff,0xfff,0x01b6,0xfff,0x173,0xfff diff --git a/libc/sysv/consts/__NR_extattr_list_link.S b/libc/sysv/consts/__NR_extattr_list_link.S new file mode 100644 index 000000000..5c99e3c8c --- /dev/null +++ b/libc/sysv/consts/__NR_extattr_list_link.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_extattr_list_link,0xfff,0xfff,0x01b7,0xfff,0x174,0xfff diff --git a/libc/sysv/consts/__NR_extattr_set_fd.S b/libc/sysv/consts/__NR_extattr_set_fd.S new file mode 100644 index 000000000..8cfdf7bdf --- /dev/null +++ b/libc/sysv/consts/__NR_extattr_set_fd.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_extattr_set_fd,0xfff,0xfff,0x0173,0xfff,0x16c,0xfff diff --git a/libc/sysv/consts/__NR_extattr_set_file.S b/libc/sysv/consts/__NR_extattr_set_file.S new file mode 100644 index 000000000..c310aeaa6 --- /dev/null +++ b/libc/sysv/consts/__NR_extattr_set_file.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_extattr_set_file,0xfff,0xfff,0x0164,0xfff,0x169,0xfff diff --git a/libc/sysv/consts/__NR_extattr_set_link.S b/libc/sysv/consts/__NR_extattr_set_link.S new file mode 100644 index 000000000..d7d12f69b --- /dev/null +++ b/libc/sysv/consts/__NR_extattr_set_link.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_extattr_set_link,0xfff,0xfff,0x019c,0xfff,0x16f,0xfff diff --git a/libc/sysv/consts/__NR_extattrctl.S b/libc/sysv/consts/__NR_extattrctl.S new file mode 100644 index 000000000..a545d0265 --- /dev/null +++ b/libc/sysv/consts/__NR_extattrctl.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_extattrctl,0xfff,0xfff,0x0163,0xfff,0x168,0xfff diff --git a/libc/sysv/consts/__NR_fchflags.S b/libc/sysv/consts/__NR_fchflags.S new file mode 100644 index 000000000..99205ed78 --- /dev/null +++ b/libc/sysv/consts/__NR_fchflags.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_fchflags,0xfff,0x2000023,0x0023,0x0023,0x023,0xfff diff --git a/libc/sysv/consts/__NR_fchmod_extended.S b/libc/sysv/consts/__NR_fchmod_extended.S new file mode 100644 index 000000000..1fac5522d --- /dev/null +++ b/libc/sysv/consts/__NR_fchmod_extended.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_fchmod_extended,0xfff,0x200011b,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_fclonefileat.S b/libc/sysv/consts/__NR_fclonefileat.S new file mode 100644 index 000000000..18b7b465b --- /dev/null +++ b/libc/sysv/consts/__NR_fclonefileat.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_fclonefileat,0xfff,0x2000205,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_fcntl_nocancel.S b/libc/sysv/consts/__NR_fcntl_nocancel.S new file mode 100644 index 000000000..6c53432c6 --- /dev/null +++ b/libc/sysv/consts/__NR_fcntl_nocancel.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_fcntl_nocancel,0xfff,0x2000196,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_fexecve.S b/libc/sysv/consts/__NR_fexecve.S new file mode 100644 index 000000000..863eda8c0 --- /dev/null +++ b/libc/sysv/consts/__NR_fexecve.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_fexecve,0xfff,0xfff,0x01ec,0xfff,0x1d1,0xfff diff --git a/libc/sysv/consts/__NR_ffclock_getcounter.S b/libc/sysv/consts/__NR_ffclock_getcounter.S new file mode 100644 index 000000000..d728162c2 --- /dev/null +++ b/libc/sysv/consts/__NR_ffclock_getcounter.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_ffclock_getcounter,0xfff,0xfff,0x00f1,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_ffclock_getestimate.S b/libc/sysv/consts/__NR_ffclock_getestimate.S new file mode 100644 index 000000000..6ac10c1d3 --- /dev/null +++ b/libc/sysv/consts/__NR_ffclock_getestimate.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_ffclock_getestimate,0xfff,0xfff,0x00f3,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_ffclock_setestimate.S b/libc/sysv/consts/__NR_ffclock_setestimate.S new file mode 100644 index 000000000..35134d77e --- /dev/null +++ b/libc/sysv/consts/__NR_ffclock_setestimate.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_ffclock_setestimate,0xfff,0xfff,0x00f2,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_ffsctl.S b/libc/sysv/consts/__NR_ffsctl.S new file mode 100644 index 000000000..e00d7544d --- /dev/null +++ b/libc/sysv/consts/__NR_ffsctl.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_ffsctl,0xfff,0x20000f5,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_fgetattrlist.S b/libc/sysv/consts/__NR_fgetattrlist.S new file mode 100644 index 000000000..050f68474 --- /dev/null +++ b/libc/sysv/consts/__NR_fgetattrlist.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_fgetattrlist,0xfff,0x20000e4,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_fhlink.S b/libc/sysv/consts/__NR_fhlink.S new file mode 100644 index 000000000..24450072b --- /dev/null +++ b/libc/sysv/consts/__NR_fhlink.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_fhlink,0xfff,0xfff,0x0235,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_fhlinkat.S b/libc/sysv/consts/__NR_fhlinkat.S new file mode 100644 index 000000000..a9a3a344b --- /dev/null +++ b/libc/sysv/consts/__NR_fhlinkat.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_fhlinkat,0xfff,0xfff,0x0236,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_fhopen.S b/libc/sysv/consts/__NR_fhopen.S new file mode 100644 index 000000000..22eeb5c84 --- /dev/null +++ b/libc/sysv/consts/__NR_fhopen.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_fhopen,0xfff,0x20000f8,0x012a,0x0108,0x18c,0xfff diff --git a/libc/sysv/consts/__NR_fhreadlink.S b/libc/sysv/consts/__NR_fhreadlink.S new file mode 100644 index 000000000..7f2997782 --- /dev/null +++ b/libc/sysv/consts/__NR_fhreadlink.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_fhreadlink,0xfff,0xfff,0x0237,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_fhstat.S b/libc/sysv/consts/__NR_fhstat.S new file mode 100644 index 000000000..65ecea128 --- /dev/null +++ b/libc/sysv/consts/__NR_fhstat.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_fhstat,0xfff,0xfff,0x0229,0x0126,0x1c3,0xfff diff --git a/libc/sysv/consts/__NR_fhstatfs.S b/libc/sysv/consts/__NR_fhstatfs.S new file mode 100644 index 000000000..546126189 --- /dev/null +++ b/libc/sysv/consts/__NR_fhstatfs.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_fhstatfs,0xfff,0xfff,0x022e,0x0041,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_fileport_makefd.S b/libc/sysv/consts/__NR_fileport_makefd.S new file mode 100644 index 000000000..1a5cdd7b4 --- /dev/null +++ b/libc/sysv/consts/__NR_fileport_makefd.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_fileport_makefd,0xfff,0x20001af,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_fileport_makeport.S b/libc/sysv/consts/__NR_fileport_makeport.S new file mode 100644 index 000000000..c04943389 --- /dev/null +++ b/libc/sysv/consts/__NR_fileport_makeport.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_fileport_makeport,0xfff,0x20001ae,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_fmount.S b/libc/sysv/consts/__NR_fmount.S new file mode 100644 index 000000000..162455073 --- /dev/null +++ b/libc/sysv/consts/__NR_fmount.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_fmount,0xfff,0x200020e,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_fpathconf.S b/libc/sysv/consts/__NR_fpathconf.S new file mode 100644 index 000000000..f8004f3bb --- /dev/null +++ b/libc/sysv/consts/__NR_fpathconf.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_fpathconf,0xfff,0x20000c0,0x00c0,0x00c0,0x0c0,0xfff diff --git a/libc/sysv/consts/__NR_fs_snapshot.S b/libc/sysv/consts/__NR_fs_snapshot.S new file mode 100644 index 000000000..15d50345d --- /dev/null +++ b/libc/sysv/consts/__NR_fs_snapshot.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_fs_snapshot,0xfff,0x2000206,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_fsctl.S b/libc/sysv/consts/__NR_fsctl.S new file mode 100644 index 000000000..8a5b98c0e --- /dev/null +++ b/libc/sysv/consts/__NR_fsctl.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_fsctl,0xfff,0x20000f2,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_fsetattrlist.S b/libc/sysv/consts/__NR_fsetattrlist.S new file mode 100644 index 000000000..79822fed5 --- /dev/null +++ b/libc/sysv/consts/__NR_fsetattrlist.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_fsetattrlist,0xfff,0x20000e5,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_fstat_extended.S b/libc/sysv/consts/__NR_fstat_extended.S new file mode 100644 index 000000000..8877a6739 --- /dev/null +++ b/libc/sysv/consts/__NR_fstat_extended.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_fstat_extended,0xfff,0x2000119,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_fsync_nocancel.S b/libc/sysv/consts/__NR_fsync_nocancel.S new file mode 100644 index 000000000..ef9acfe21 --- /dev/null +++ b/libc/sysv/consts/__NR_fsync_nocancel.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_fsync_nocancel,0xfff,0x2000198,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_get_tcb.S b/libc/sysv/consts/__NR_get_tcb.S new file mode 100644 index 000000000..ab430793a --- /dev/null +++ b/libc/sysv/consts/__NR_get_tcb.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_get_tcb,0xfff,0xfff,0xfff,0x014a,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_getattrlist.S b/libc/sysv/consts/__NR_getattrlist.S new file mode 100644 index 000000000..2ddcafac5 --- /dev/null +++ b/libc/sysv/consts/__NR_getattrlist.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_getattrlist,0xfff,0x20000dc,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_getattrlistat.S b/libc/sysv/consts/__NR_getattrlistat.S new file mode 100644 index 000000000..b1668176a --- /dev/null +++ b/libc/sysv/consts/__NR_getattrlistat.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_getattrlistat,0xfff,0x20001dc,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_getattrlistbulk.S b/libc/sysv/consts/__NR_getattrlistbulk.S new file mode 100644 index 000000000..6c16c3367 --- /dev/null +++ b/libc/sysv/consts/__NR_getattrlistbulk.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_getattrlistbulk,0xfff,0x20001cd,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_getaudit.S b/libc/sysv/consts/__NR_getaudit.S new file mode 100644 index 000000000..0bfbae3f4 --- /dev/null +++ b/libc/sysv/consts/__NR_getaudit.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_getaudit,0xfff,0xfff,0x01c1,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_getaudit_addr.S b/libc/sysv/consts/__NR_getaudit_addr.S new file mode 100644 index 000000000..fd6082e49 --- /dev/null +++ b/libc/sysv/consts/__NR_getaudit_addr.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_getaudit_addr,0xfff,0x2000165,0x01c3,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_getauid.S b/libc/sysv/consts/__NR_getauid.S new file mode 100644 index 000000000..0eb2a13eb --- /dev/null +++ b/libc/sysv/consts/__NR_getauid.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_getauid,0xfff,0x2000161,0x01bf,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_getcontext.S b/libc/sysv/consts/__NR_getcontext.S new file mode 100644 index 000000000..be4eaee5b --- /dev/null +++ b/libc/sysv/consts/__NR_getcontext.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_getcontext,0xfff,0xfff,0x01a5,0xfff,0x133,0xfff diff --git a/libc/sysv/consts/__NR_getdirentries.S b/libc/sysv/consts/__NR_getdirentries.S new file mode 100644 index 000000000..28e597a38 --- /dev/null +++ b/libc/sysv/consts/__NR_getdirentries.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_getdirentries,0xfff,0x2000158,0x022a,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_getdirentriesattr.S b/libc/sysv/consts/__NR_getdirentriesattr.S new file mode 100644 index 000000000..a2377e0fd --- /dev/null +++ b/libc/sysv/consts/__NR_getdirentriesattr.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_getdirentriesattr,0xfff,0x20000de,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_getdtablecount.S b/libc/sysv/consts/__NR_getdtablecount.S new file mode 100644 index 000000000..bccd7e80b --- /dev/null +++ b/libc/sysv/consts/__NR_getdtablecount.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_getdtablecount,0xfff,0xfff,0xfff,0x0012,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_getdtablesize.S b/libc/sysv/consts/__NR_getdtablesize.S new file mode 100644 index 000000000..9a18199f3 --- /dev/null +++ b/libc/sysv/consts/__NR_getdtablesize.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_getdtablesize,0xfff,0x2000059,0x0059,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_getfh.S b/libc/sysv/consts/__NR_getfh.S new file mode 100644 index 000000000..b23cde496 --- /dev/null +++ b/libc/sysv/consts/__NR_getfh.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_getfh,0xfff,0x20000a1,0x00a1,0x00a1,0x18b,0xfff diff --git a/libc/sysv/consts/__NR_getfhat.S b/libc/sysv/consts/__NR_getfhat.S new file mode 100644 index 000000000..3c90fbd23 --- /dev/null +++ b/libc/sysv/consts/__NR_getfhat.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_getfhat,0xfff,0xfff,0x0234,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_getfsstat.S b/libc/sysv/consts/__NR_getfsstat.S new file mode 100644 index 000000000..2f2474cf2 --- /dev/null +++ b/libc/sysv/consts/__NR_getfsstat.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_getfsstat,0xfff,0x200015b,0x022d,0x003e,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_gethostid.S b/libc/sysv/consts/__NR_gethostid.S new file mode 100644 index 000000000..b609d1e7e --- /dev/null +++ b/libc/sysv/consts/__NR_gethostid.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_gethostid,0xfff,0xfff,0x008e,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_gethostuuid.S b/libc/sysv/consts/__NR_gethostuuid.S new file mode 100644 index 000000000..57ea08519 --- /dev/null +++ b/libc/sysv/consts/__NR_gethostuuid.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_gethostuuid,0xfff,0x200008e,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_getkerninfo.S b/libc/sysv/consts/__NR_getkerninfo.S new file mode 100644 index 000000000..83649f688 --- /dev/null +++ b/libc/sysv/consts/__NR_getkerninfo.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_getkerninfo,0xfff,0xfff,0x003f,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_getlogin.S b/libc/sysv/consts/__NR_getlogin.S new file mode 100644 index 000000000..f6ad9f938 --- /dev/null +++ b/libc/sysv/consts/__NR_getlogin.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_getlogin,0xfff,0x2000031,0x0031,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_getlogin_r.S b/libc/sysv/consts/__NR_getlogin_r.S new file mode 100644 index 000000000..d076b710e --- /dev/null +++ b/libc/sysv/consts/__NR_getlogin_r.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_getlogin_r,0xfff,0xfff,0xfff,0x008d,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_getloginclass.S b/libc/sysv/consts/__NR_getloginclass.S new file mode 100644 index 000000000..d2ddd4bdb --- /dev/null +++ b/libc/sysv/consts/__NR_getloginclass.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_getloginclass,0xfff,0xfff,0x020b,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_getpagesize.S b/libc/sysv/consts/__NR_getpagesize.S new file mode 100644 index 000000000..e7b69e31e --- /dev/null +++ b/libc/sysv/consts/__NR_getpagesize.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_getpagesize,0xfff,0xfff,0x0040,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_getrtable.S b/libc/sysv/consts/__NR_getrtable.S new file mode 100644 index 000000000..bcb5330eb --- /dev/null +++ b/libc/sysv/consts/__NR_getrtable.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_getrtable,0xfff,0xfff,0xfff,0x0137,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_getsgroups.S b/libc/sysv/consts/__NR_getsgroups.S new file mode 100644 index 000000000..3d498f8c4 --- /dev/null +++ b/libc/sysv/consts/__NR_getsgroups.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_getsgroups,0xfff,0x2000120,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_getthrid.S b/libc/sysv/consts/__NR_getthrid.S new file mode 100644 index 000000000..153b4ac32 --- /dev/null +++ b/libc/sysv/consts/__NR_getthrid.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_getthrid,0xfff,0xfff,0xfff,0x012b,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_getwgroups.S b/libc/sysv/consts/__NR_getwgroups.S new file mode 100644 index 000000000..24f0a1525 --- /dev/null +++ b/libc/sysv/consts/__NR_getwgroups.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_getwgroups,0xfff,0x2000122,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_grab_pgo_data.S b/libc/sysv/consts/__NR_grab_pgo_data.S new file mode 100644 index 000000000..41062175f --- /dev/null +++ b/libc/sysv/consts/__NR_grab_pgo_data.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_grab_pgo_data,0xfff,0x20001ed,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_gssd_syscall.S b/libc/sysv/consts/__NR_gssd_syscall.S new file mode 100644 index 000000000..3c2a28e41 --- /dev/null +++ b/libc/sysv/consts/__NR_gssd_syscall.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_gssd_syscall,0xfff,0xfff,0x01f9,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_guarded_close_np.S b/libc/sysv/consts/__NR_guarded_close_np.S new file mode 100644 index 000000000..0a1148764 --- /dev/null +++ b/libc/sysv/consts/__NR_guarded_close_np.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_guarded_close_np,0xfff,0x20001ba,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_guarded_kqueue_np.S b/libc/sysv/consts/__NR_guarded_kqueue_np.S new file mode 100644 index 000000000..ec2721b20 --- /dev/null +++ b/libc/sysv/consts/__NR_guarded_kqueue_np.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_guarded_kqueue_np,0xfff,0x20001bb,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_guarded_open_dprotected_np.S b/libc/sysv/consts/__NR_guarded_open_dprotected_np.S new file mode 100644 index 000000000..d6edd8985 --- /dev/null +++ b/libc/sysv/consts/__NR_guarded_open_dprotected_np.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_guarded_open_dprotected_np,0xfff,0x20001e4,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_guarded_open_np.S b/libc/sysv/consts/__NR_guarded_open_np.S new file mode 100644 index 000000000..5f7db9487 --- /dev/null +++ b/libc/sysv/consts/__NR_guarded_open_np.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_guarded_open_np,0xfff,0x20001b9,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_guarded_pwrite_np.S b/libc/sysv/consts/__NR_guarded_pwrite_np.S new file mode 100644 index 000000000..ba815c05c --- /dev/null +++ b/libc/sysv/consts/__NR_guarded_pwrite_np.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_guarded_pwrite_np,0xfff,0x20001e6,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_guarded_write_np.S b/libc/sysv/consts/__NR_guarded_write_np.S new file mode 100644 index 000000000..393a59061 --- /dev/null +++ b/libc/sysv/consts/__NR_guarded_write_np.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_guarded_write_np,0xfff,0x20001e5,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_guarded_writev_np.S b/libc/sysv/consts/__NR_guarded_writev_np.S new file mode 100644 index 000000000..3038e3629 --- /dev/null +++ b/libc/sysv/consts/__NR_guarded_writev_np.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_guarded_writev_np,0xfff,0x20001e7,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_identitysvc.S b/libc/sysv/consts/__NR_identitysvc.S new file mode 100644 index 000000000..f21b81b15 --- /dev/null +++ b/libc/sysv/consts/__NR_identitysvc.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_identitysvc,0xfff,0x2000125,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_initgroups.S b/libc/sysv/consts/__NR_initgroups.S new file mode 100644 index 000000000..16ab23a58 --- /dev/null +++ b/libc/sysv/consts/__NR_initgroups.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_initgroups,0xfff,0x20000f3,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_iopolicysys.S b/libc/sysv/consts/__NR_iopolicysys.S new file mode 100644 index 000000000..54bf16447 --- /dev/null +++ b/libc/sysv/consts/__NR_iopolicysys.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_iopolicysys,0xfff,0x2000142,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_issetugid.S b/libc/sysv/consts/__NR_issetugid.S new file mode 100644 index 000000000..bd0a2d504 --- /dev/null +++ b/libc/sysv/consts/__NR_issetugid.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_issetugid,0xfff,0x2000147,0x00fd,0x00fd,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_jail.S b/libc/sysv/consts/__NR_jail.S new file mode 100644 index 000000000..c99973fd8 --- /dev/null +++ b/libc/sysv/consts/__NR_jail.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_jail,0xfff,0xfff,0x0152,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_jail_attach.S b/libc/sysv/consts/__NR_jail_attach.S new file mode 100644 index 000000000..115c8b770 --- /dev/null +++ b/libc/sysv/consts/__NR_jail_attach.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_jail_attach,0xfff,0xfff,0x01b4,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_jail_get.S b/libc/sysv/consts/__NR_jail_get.S new file mode 100644 index 000000000..6b86e9e6e --- /dev/null +++ b/libc/sysv/consts/__NR_jail_get.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_jail_get,0xfff,0xfff,0x01fa,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_jail_remove.S b/libc/sysv/consts/__NR_jail_remove.S new file mode 100644 index 000000000..ed695c7e9 --- /dev/null +++ b/libc/sysv/consts/__NR_jail_remove.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_jail_remove,0xfff,0xfff,0x01fc,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_jail_set.S b/libc/sysv/consts/__NR_jail_set.S new file mode 100644 index 000000000..3d55fbe9d --- /dev/null +++ b/libc/sysv/consts/__NR_jail_set.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_jail_set,0xfff,0xfff,0x01fb,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_kas_info.S b/libc/sysv/consts/__NR_kas_info.S new file mode 100644 index 000000000..a84c92cae --- /dev/null +++ b/libc/sysv/consts/__NR_kas_info.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_kas_info,0xfff,0x20001b7,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_kbind.S b/libc/sysv/consts/__NR_kbind.S new file mode 100644 index 000000000..9b3cb1d0e --- /dev/null +++ b/libc/sysv/consts/__NR_kbind.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_kbind,0xfff,0xfff,0xfff,0x0056,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_kdebug_trace.S b/libc/sysv/consts/__NR_kdebug_trace.S new file mode 100644 index 000000000..0e57d7536 --- /dev/null +++ b/libc/sysv/consts/__NR_kdebug_trace.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_kdebug_trace,0xfff,0x20000b3,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_kdebug_trace_string.S b/libc/sysv/consts/__NR_kdebug_trace_string.S new file mode 100644 index 000000000..384300459 --- /dev/null +++ b/libc/sysv/consts/__NR_kdebug_trace_string.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_kdebug_trace_string,0xfff,0x20000b2,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_kdebug_typefilter.S b/libc/sysv/consts/__NR_kdebug_typefilter.S new file mode 100644 index 000000000..27a1a551d --- /dev/null +++ b/libc/sysv/consts/__NR_kdebug_typefilter.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_kdebug_typefilter,0xfff,0x20000b1,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_kenv.S b/libc/sysv/consts/__NR_kenv.S new file mode 100644 index 000000000..1412e1125 --- /dev/null +++ b/libc/sysv/consts/__NR_kenv.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_kenv,0xfff,0xfff,0x0186,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_kevent.S b/libc/sysv/consts/__NR_kevent.S new file mode 100644 index 000000000..2f74ea20d --- /dev/null +++ b/libc/sysv/consts/__NR_kevent.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_kevent,0xfff,0x2000171,0x0230,0x0048,0x1b3,0xfff diff --git a/libc/sysv/consts/__NR_kevent_id.S b/libc/sysv/consts/__NR_kevent_id.S new file mode 100644 index 000000000..2ef048ce5 --- /dev/null +++ b/libc/sysv/consts/__NR_kevent_id.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_kevent_id,0xfff,0x2000177,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_kevent_qos.S b/libc/sysv/consts/__NR_kevent_qos.S new file mode 100644 index 000000000..3e0f80f2d --- /dev/null +++ b/libc/sysv/consts/__NR_kevent_qos.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_kevent_qos,0xfff,0x2000176,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_kldfind.S b/libc/sysv/consts/__NR_kldfind.S new file mode 100644 index 000000000..e41062f50 --- /dev/null +++ b/libc/sysv/consts/__NR_kldfind.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_kldfind,0xfff,0xfff,0x0132,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_kldfirstmod.S b/libc/sysv/consts/__NR_kldfirstmod.S new file mode 100644 index 000000000..cd7e14b63 --- /dev/null +++ b/libc/sysv/consts/__NR_kldfirstmod.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_kldfirstmod,0xfff,0xfff,0x0135,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_kldload.S b/libc/sysv/consts/__NR_kldload.S new file mode 100644 index 000000000..59b2c60ed --- /dev/null +++ b/libc/sysv/consts/__NR_kldload.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_kldload,0xfff,0xfff,0x0130,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_kldnext.S b/libc/sysv/consts/__NR_kldnext.S new file mode 100644 index 000000000..ce9a5bf23 --- /dev/null +++ b/libc/sysv/consts/__NR_kldnext.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_kldnext,0xfff,0xfff,0x0133,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_kldstat.S b/libc/sysv/consts/__NR_kldstat.S new file mode 100644 index 000000000..4c8b46ae6 --- /dev/null +++ b/libc/sysv/consts/__NR_kldstat.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_kldstat,0xfff,0xfff,0x0134,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_kldsym.S b/libc/sysv/consts/__NR_kldsym.S new file mode 100644 index 000000000..fc650f529 --- /dev/null +++ b/libc/sysv/consts/__NR_kldsym.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_kldsym,0xfff,0xfff,0x0151,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_kldunload.S b/libc/sysv/consts/__NR_kldunload.S new file mode 100644 index 000000000..81e55d102 --- /dev/null +++ b/libc/sysv/consts/__NR_kldunload.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_kldunload,0xfff,0xfff,0x0131,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_kldunloadf.S b/libc/sysv/consts/__NR_kldunloadf.S new file mode 100644 index 000000000..20792bf45 --- /dev/null +++ b/libc/sysv/consts/__NR_kldunloadf.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_kldunloadf,0xfff,0xfff,0x01bc,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_kmq_notify.S b/libc/sysv/consts/__NR_kmq_notify.S new file mode 100644 index 000000000..138cf3fd1 --- /dev/null +++ b/libc/sysv/consts/__NR_kmq_notify.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_kmq_notify,0xfff,0xfff,0x01cd,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_kmq_setattr.S b/libc/sysv/consts/__NR_kmq_setattr.S new file mode 100644 index 000000000..dbb1d115d --- /dev/null +++ b/libc/sysv/consts/__NR_kmq_setattr.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_kmq_setattr,0xfff,0xfff,0x01ca,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_kmq_timedreceive.S b/libc/sysv/consts/__NR_kmq_timedreceive.S new file mode 100644 index 000000000..bb768dcca --- /dev/null +++ b/libc/sysv/consts/__NR_kmq_timedreceive.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_kmq_timedreceive,0xfff,0xfff,0x01cb,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_kmq_timedsend.S b/libc/sysv/consts/__NR_kmq_timedsend.S new file mode 100644 index 000000000..34fecec49 --- /dev/null +++ b/libc/sysv/consts/__NR_kmq_timedsend.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_kmq_timedsend,0xfff,0xfff,0x01cc,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_kmq_unlink.S b/libc/sysv/consts/__NR_kmq_unlink.S new file mode 100644 index 000000000..1e6483f92 --- /dev/null +++ b/libc/sysv/consts/__NR_kmq_unlink.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_kmq_unlink,0xfff,0xfff,0x01ce,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_kqueue.S b/libc/sysv/consts/__NR_kqueue.S new file mode 100644 index 000000000..3108e58e9 --- /dev/null +++ b/libc/sysv/consts/__NR_kqueue.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_kqueue,0xfff,0x200016a,0x016a,0x010d,0x158,0xfff diff --git a/libc/sysv/consts/__NR_ksem_close.S b/libc/sysv/consts/__NR_ksem_close.S new file mode 100644 index 000000000..779b9f162 --- /dev/null +++ b/libc/sysv/consts/__NR_ksem_close.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_ksem_close,0xfff,0xfff,0x0190,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_ksem_destroy.S b/libc/sysv/consts/__NR_ksem_destroy.S new file mode 100644 index 000000000..efe5a7d33 --- /dev/null +++ b/libc/sysv/consts/__NR_ksem_destroy.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_ksem_destroy,0xfff,0xfff,0x0198,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_ksem_getvalue.S b/libc/sysv/consts/__NR_ksem_getvalue.S new file mode 100644 index 000000000..47b17c461 --- /dev/null +++ b/libc/sysv/consts/__NR_ksem_getvalue.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_ksem_getvalue,0xfff,0xfff,0x0197,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_ksem_init.S b/libc/sysv/consts/__NR_ksem_init.S new file mode 100644 index 000000000..42abd1928 --- /dev/null +++ b/libc/sysv/consts/__NR_ksem_init.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_ksem_init,0xfff,0xfff,0x0194,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_ksem_open.S b/libc/sysv/consts/__NR_ksem_open.S new file mode 100644 index 000000000..fe27b3711 --- /dev/null +++ b/libc/sysv/consts/__NR_ksem_open.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_ksem_open,0xfff,0xfff,0x0195,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_ksem_post.S b/libc/sysv/consts/__NR_ksem_post.S new file mode 100644 index 000000000..6b058a9d8 --- /dev/null +++ b/libc/sysv/consts/__NR_ksem_post.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_ksem_post,0xfff,0xfff,0x0191,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_ksem_timedwait.S b/libc/sysv/consts/__NR_ksem_timedwait.S new file mode 100644 index 000000000..482a1f833 --- /dev/null +++ b/libc/sysv/consts/__NR_ksem_timedwait.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_ksem_timedwait,0xfff,0xfff,0x01b9,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_ksem_trywait.S b/libc/sysv/consts/__NR_ksem_trywait.S new file mode 100644 index 000000000..9aae27aa2 --- /dev/null +++ b/libc/sysv/consts/__NR_ksem_trywait.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_ksem_trywait,0xfff,0xfff,0x0193,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_ksem_unlink.S b/libc/sysv/consts/__NR_ksem_unlink.S new file mode 100644 index 000000000..3c17c10c9 --- /dev/null +++ b/libc/sysv/consts/__NR_ksem_unlink.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_ksem_unlink,0xfff,0xfff,0x0196,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_ksem_wait.S b/libc/sysv/consts/__NR_ksem_wait.S new file mode 100644 index 000000000..2b6fb7adb --- /dev/null +++ b/libc/sysv/consts/__NR_ksem_wait.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_ksem_wait,0xfff,0xfff,0x0192,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_ktimer_create.S b/libc/sysv/consts/__NR_ktimer_create.S new file mode 100644 index 000000000..3b6a4921e --- /dev/null +++ b/libc/sysv/consts/__NR_ktimer_create.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_ktimer_create,0xfff,0xfff,0x00eb,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_ktimer_delete.S b/libc/sysv/consts/__NR_ktimer_delete.S new file mode 100644 index 000000000..59e18bfcc --- /dev/null +++ b/libc/sysv/consts/__NR_ktimer_delete.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_ktimer_delete,0xfff,0xfff,0x00ec,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_ktimer_getoverrun.S b/libc/sysv/consts/__NR_ktimer_getoverrun.S new file mode 100644 index 000000000..3338a81a0 --- /dev/null +++ b/libc/sysv/consts/__NR_ktimer_getoverrun.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_ktimer_getoverrun,0xfff,0xfff,0x00ef,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_ktimer_gettime.S b/libc/sysv/consts/__NR_ktimer_gettime.S new file mode 100644 index 000000000..2647b56b5 --- /dev/null +++ b/libc/sysv/consts/__NR_ktimer_gettime.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_ktimer_gettime,0xfff,0xfff,0x00ee,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_ktimer_settime.S b/libc/sysv/consts/__NR_ktimer_settime.S new file mode 100644 index 000000000..babd9dcde --- /dev/null +++ b/libc/sysv/consts/__NR_ktimer_settime.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_ktimer_settime,0xfff,0xfff,0x00ed,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_lchflags.S b/libc/sysv/consts/__NR_lchflags.S new file mode 100644 index 000000000..857dba90f --- /dev/null +++ b/libc/sysv/consts/__NR_lchflags.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_lchflags,0xfff,0xfff,0x0187,0xfff,0x130,0xfff diff --git a/libc/sysv/consts/__NR_lchmod.S b/libc/sysv/consts/__NR_lchmod.S new file mode 100644 index 000000000..6119e37f7 --- /dev/null +++ b/libc/sysv/consts/__NR_lchmod.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_lchmod,0xfff,0xfff,0x0112,0xfff,0x112,0xfff diff --git a/libc/sysv/consts/__NR_ledger.S b/libc/sysv/consts/__NR_ledger.S new file mode 100644 index 000000000..fcd200a69 --- /dev/null +++ b/libc/sysv/consts/__NR_ledger.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_ledger,0xfff,0x2000175,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_lgetfh.S b/libc/sysv/consts/__NR_lgetfh.S new file mode 100644 index 000000000..b290b8333 --- /dev/null +++ b/libc/sysv/consts/__NR_lgetfh.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_lgetfh,0xfff,0xfff,0x00a0,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_lio_listio.S b/libc/sysv/consts/__NR_lio_listio.S new file mode 100644 index 000000000..bd168cf7d --- /dev/null +++ b/libc/sysv/consts/__NR_lio_listio.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_lio_listio,0xfff,0x2000140,0x0140,0xfff,0x196,0xfff diff --git a/libc/sysv/consts/__NR_lpathconf.S b/libc/sysv/consts/__NR_lpathconf.S new file mode 100644 index 000000000..7a075dfc8 --- /dev/null +++ b/libc/sysv/consts/__NR_lpathconf.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_lpathconf,0xfff,0xfff,0x0201,0xfff,0x1f3,0xfff diff --git a/libc/sysv/consts/__NR_lstat_extended.S b/libc/sysv/consts/__NR_lstat_extended.S new file mode 100644 index 000000000..b03e8c2ed --- /dev/null +++ b/libc/sysv/consts/__NR_lstat_extended.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_lstat_extended,0xfff,0x2000156,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_lutimes.S b/libc/sysv/consts/__NR_lutimes.S new file mode 100644 index 000000000..738ff9bcd --- /dev/null +++ b/libc/sysv/consts/__NR_lutimes.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_lutimes,0xfff,0xfff,0x0114,0xfff,0x1a8,0xfff diff --git a/libc/sysv/consts/__NR_mac_execve.S b/libc/sysv/consts/__NR_mac_execve.S new file mode 100644 index 000000000..78cf46d86 --- /dev/null +++ b/libc/sysv/consts/__NR_mac_execve.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_mac_execve,0xfff,0x200017c,0x019f,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_mac_get_fd.S b/libc/sysv/consts/__NR_mac_get_fd.S new file mode 100644 index 000000000..d6f9cb931 --- /dev/null +++ b/libc/sysv/consts/__NR_mac_get_fd.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_mac_get_fd,0xfff,0x2000184,0x0182,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_mac_get_file.S b/libc/sysv/consts/__NR_mac_get_file.S new file mode 100644 index 000000000..3d8a33545 --- /dev/null +++ b/libc/sysv/consts/__NR_mac_get_file.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_mac_get_file,0xfff,0x200017e,0x0183,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_mac_get_link.S b/libc/sysv/consts/__NR_mac_get_link.S new file mode 100644 index 000000000..95e4e9c04 --- /dev/null +++ b/libc/sysv/consts/__NR_mac_get_link.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_mac_get_link,0xfff,0x2000180,0x019a,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_mac_get_mount.S b/libc/sysv/consts/__NR_mac_get_mount.S new file mode 100644 index 000000000..37d9c78ed --- /dev/null +++ b/libc/sysv/consts/__NR_mac_get_mount.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_mac_get_mount,0xfff,0x20001a9,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_mac_get_pid.S b/libc/sysv/consts/__NR_mac_get_pid.S new file mode 100644 index 000000000..a5ebea8e9 --- /dev/null +++ b/libc/sysv/consts/__NR_mac_get_pid.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_mac_get_pid,0xfff,0x2000186,0x0199,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_mac_get_proc.S b/libc/sysv/consts/__NR_mac_get_proc.S new file mode 100644 index 000000000..7cf5582b3 --- /dev/null +++ b/libc/sysv/consts/__NR_mac_get_proc.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_mac_get_proc,0xfff,0x2000182,0x0180,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_mac_getfsstat.S b/libc/sysv/consts/__NR_mac_getfsstat.S new file mode 100644 index 000000000..8c6d1147e --- /dev/null +++ b/libc/sysv/consts/__NR_mac_getfsstat.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_mac_getfsstat,0xfff,0x20001aa,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_mac_mount.S b/libc/sysv/consts/__NR_mac_mount.S new file mode 100644 index 000000000..ebbe2f449 --- /dev/null +++ b/libc/sysv/consts/__NR_mac_mount.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_mac_mount,0xfff,0x20001a8,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_mac_set_fd.S b/libc/sysv/consts/__NR_mac_set_fd.S new file mode 100644 index 000000000..cccbca9a3 --- /dev/null +++ b/libc/sysv/consts/__NR_mac_set_fd.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_mac_set_fd,0xfff,0x2000185,0x0184,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_mac_set_file.S b/libc/sysv/consts/__NR_mac_set_file.S new file mode 100644 index 000000000..633e11bcb --- /dev/null +++ b/libc/sysv/consts/__NR_mac_set_file.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_mac_set_file,0xfff,0x200017f,0x0185,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_mac_set_link.S b/libc/sysv/consts/__NR_mac_set_link.S new file mode 100644 index 000000000..162f69101 --- /dev/null +++ b/libc/sysv/consts/__NR_mac_set_link.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_mac_set_link,0xfff,0x2000181,0x019b,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_mac_set_proc.S b/libc/sysv/consts/__NR_mac_set_proc.S new file mode 100644 index 000000000..968b9eae7 --- /dev/null +++ b/libc/sysv/consts/__NR_mac_set_proc.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_mac_set_proc,0xfff,0x2000183,0x0181,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_mac_syscall.S b/libc/sysv/consts/__NR_mac_syscall.S new file mode 100644 index 000000000..ded0ec548 --- /dev/null +++ b/libc/sysv/consts/__NR_mac_syscall.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_mac_syscall,0xfff,0xfff,0x018a,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_memorystatus_control.S b/libc/sysv/consts/__NR_memorystatus_control.S new file mode 100644 index 000000000..be05d239a --- /dev/null +++ b/libc/sysv/consts/__NR_memorystatus_control.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_memorystatus_control,0xfff,0x20001b8,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_memorystatus_get_level.S b/libc/sysv/consts/__NR_memorystatus_get_level.S new file mode 100644 index 000000000..f6b92be34 --- /dev/null +++ b/libc/sysv/consts/__NR_memorystatus_get_level.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_memorystatus_get_level,0xfff,0x20001c5,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_microstackshot.S b/libc/sysv/consts/__NR_microstackshot.S new file mode 100644 index 000000000..bec8cb25c --- /dev/null +++ b/libc/sysv/consts/__NR_microstackshot.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_microstackshot,0xfff,0x20001ec,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_minherit.S b/libc/sysv/consts/__NR_minherit.S new file mode 100644 index 000000000..ec4c9a5e5 --- /dev/null +++ b/libc/sysv/consts/__NR_minherit.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_minherit,0xfff,0x20000fa,0x00fa,0x00fa,0x111,0xfff diff --git a/libc/sysv/consts/__NR_mkdir_extended.S b/libc/sysv/consts/__NR_mkdir_extended.S new file mode 100644 index 000000000..e25b27b49 --- /dev/null +++ b/libc/sysv/consts/__NR_mkdir_extended.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_mkdir_extended,0xfff,0x2000124,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_mkfifo_extended.S b/libc/sysv/consts/__NR_mkfifo_extended.S new file mode 100644 index 000000000..174a84266 --- /dev/null +++ b/libc/sysv/consts/__NR_mkfifo_extended.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_mkfifo_extended,0xfff,0x2000123,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_modfind.S b/libc/sysv/consts/__NR_modfind.S new file mode 100644 index 000000000..8165339cd --- /dev/null +++ b/libc/sysv/consts/__NR_modfind.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_modfind,0xfff,0xfff,0x012f,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_modfnext.S b/libc/sysv/consts/__NR_modfnext.S new file mode 100644 index 000000000..9564a335d --- /dev/null +++ b/libc/sysv/consts/__NR_modfnext.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_modfnext,0xfff,0xfff,0x012e,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_modnext.S b/libc/sysv/consts/__NR_modnext.S new file mode 100644 index 000000000..6edb7923c --- /dev/null +++ b/libc/sysv/consts/__NR_modnext.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_modnext,0xfff,0xfff,0x012c,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_modstat.S b/libc/sysv/consts/__NR_modstat.S new file mode 100644 index 000000000..bc5e1a589 --- /dev/null +++ b/libc/sysv/consts/__NR_modstat.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_modstat,0xfff,0xfff,0x012d,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_modwatch.S b/libc/sysv/consts/__NR_modwatch.S new file mode 100644 index 000000000..18e3d4bfc --- /dev/null +++ b/libc/sysv/consts/__NR_modwatch.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_modwatch,0xfff,0x20000e9,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_mquery.S b/libc/sysv/consts/__NR_mquery.S new file mode 100644 index 000000000..ed0be3293 --- /dev/null +++ b/libc/sysv/consts/__NR_mquery.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_mquery,0xfff,0xfff,0xfff,0x011e,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_mremap_encrypted.S b/libc/sysv/consts/__NR_mremap_encrypted.S new file mode 100644 index 000000000..efb15e030 --- /dev/null +++ b/libc/sysv/consts/__NR_mremap_encrypted.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_mremap_encrypted,0xfff,0x20001e9,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_msgrcv_nocancel.S b/libc/sysv/consts/__NR_msgrcv_nocancel.S new file mode 100644 index 000000000..5d02784a5 --- /dev/null +++ b/libc/sysv/consts/__NR_msgrcv_nocancel.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_msgrcv_nocancel,0xfff,0x20001a3,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_msgsnd_nocancel.S b/libc/sysv/consts/__NR_msgsnd_nocancel.S new file mode 100644 index 000000000..ba3fada21 --- /dev/null +++ b/libc/sysv/consts/__NR_msgsnd_nocancel.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_msgsnd_nocancel,0xfff,0x20001a2,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_msgsys.S b/libc/sysv/consts/__NR_msgsys.S new file mode 100644 index 000000000..17174177d --- /dev/null +++ b/libc/sysv/consts/__NR_msgsys.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_msgsys,0xfff,0x20000fc,0x00aa,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_msync_nocancel.S b/libc/sysv/consts/__NR_msync_nocancel.S new file mode 100644 index 000000000..996b3071c --- /dev/null +++ b/libc/sysv/consts/__NR_msync_nocancel.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_msync_nocancel,0xfff,0x2000195,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_necp_client_action.S b/libc/sysv/consts/__NR_necp_client_action.S new file mode 100644 index 000000000..5988cc34e --- /dev/null +++ b/libc/sysv/consts/__NR_necp_client_action.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_necp_client_action,0xfff,0x20001f6,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_necp_match_policy.S b/libc/sysv/consts/__NR_necp_match_policy.S new file mode 100644 index 000000000..809121c85 --- /dev/null +++ b/libc/sysv/consts/__NR_necp_match_policy.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_necp_match_policy,0xfff,0x20001cc,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_necp_open.S b/libc/sysv/consts/__NR_necp_open.S new file mode 100644 index 000000000..44e54d97f --- /dev/null +++ b/libc/sysv/consts/__NR_necp_open.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_necp_open,0xfff,0x20001f5,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_necp_session_action.S b/libc/sysv/consts/__NR_necp_session_action.S new file mode 100644 index 000000000..f22f91243 --- /dev/null +++ b/libc/sysv/consts/__NR_necp_session_action.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_necp_session_action,0xfff,0x200020b,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_necp_session_open.S b/libc/sysv/consts/__NR_necp_session_open.S new file mode 100644 index 000000000..c05c7a236 --- /dev/null +++ b/libc/sysv/consts/__NR_necp_session_open.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_necp_session_open,0xfff,0x200020a,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_net_qos_guideline.S b/libc/sysv/consts/__NR_net_qos_guideline.S new file mode 100644 index 000000000..67b5577e8 --- /dev/null +++ b/libc/sysv/consts/__NR_net_qos_guideline.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_net_qos_guideline,0xfff,0x200020d,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_netagent_trigger.S b/libc/sysv/consts/__NR_netagent_trigger.S new file mode 100644 index 000000000..7ecd5fa6d --- /dev/null +++ b/libc/sysv/consts/__NR_netagent_trigger.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_netagent_trigger,0xfff,0x20001ea,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_nfsclnt.S b/libc/sysv/consts/__NR_nfsclnt.S new file mode 100644 index 000000000..4f94bbfdc --- /dev/null +++ b/libc/sysv/consts/__NR_nfsclnt.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_nfsclnt,0xfff,0x20000f7,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_nfssvc.S b/libc/sysv/consts/__NR_nfssvc.S new file mode 100644 index 000000000..678e65b97 --- /dev/null +++ b/libc/sysv/consts/__NR_nfssvc.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_nfssvc,0xfff,0x200009b,0x009b,0x009b,0x09b,0xfff diff --git a/libc/sysv/consts/__NR_nfstat.S b/libc/sysv/consts/__NR_nfstat.S new file mode 100644 index 000000000..a9abdf9c6 --- /dev/null +++ b/libc/sysv/consts/__NR_nfstat.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_nfstat,0xfff,0xfff,0x0117,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_nlm_syscall.S b/libc/sysv/consts/__NR_nlm_syscall.S new file mode 100644 index 000000000..3ea89bf44 --- /dev/null +++ b/libc/sysv/consts/__NR_nlm_syscall.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_nlm_syscall,0xfff,0xfff,0x009a,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_nlstat.S b/libc/sysv/consts/__NR_nlstat.S new file mode 100644 index 000000000..5bc35e363 --- /dev/null +++ b/libc/sysv/consts/__NR_nlstat.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_nlstat,0xfff,0xfff,0x0118,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_nmount.S b/libc/sysv/consts/__NR_nmount.S new file mode 100644 index 000000000..7dd0915e9 --- /dev/null +++ b/libc/sysv/consts/__NR_nmount.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_nmount,0xfff,0xfff,0x017a,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_nnpfs_syscall.S b/libc/sysv/consts/__NR_nnpfs_syscall.S new file mode 100644 index 000000000..30ae7f51e --- /dev/null +++ b/libc/sysv/consts/__NR_nnpfs_syscall.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_nnpfs_syscall,0xfff,0xfff,0x0153,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_nstat.S b/libc/sysv/consts/__NR_nstat.S new file mode 100644 index 000000000..5f6d07437 --- /dev/null +++ b/libc/sysv/consts/__NR_nstat.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_nstat,0xfff,0xfff,0x0116,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_ntp_adjtime.S b/libc/sysv/consts/__NR_ntp_adjtime.S new file mode 100644 index 000000000..0a0387d98 --- /dev/null +++ b/libc/sysv/consts/__NR_ntp_adjtime.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_ntp_adjtime,0xfff,0x200020f,0x00b0,0xfff,0x0b0,0xfff diff --git a/libc/sysv/consts/__NR_ntp_gettime.S b/libc/sysv/consts/__NR_ntp_gettime.S new file mode 100644 index 000000000..35440256e --- /dev/null +++ b/libc/sysv/consts/__NR_ntp_gettime.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_ntp_gettime,0xfff,0x2000210,0x00f8,0xfff,0x1c0,0xfff diff --git a/libc/sysv/consts/__NR_obreak.S b/libc/sysv/consts/__NR_obreak.S new file mode 100644 index 000000000..0c5159931 --- /dev/null +++ b/libc/sysv/consts/__NR_obreak.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_obreak,0xfff,0xfff,0xfff,0x0011,0x011,0xfff diff --git a/libc/sysv/consts/__NR_old_semwait_signal.S b/libc/sysv/consts/__NR_old_semwait_signal.S new file mode 100644 index 000000000..7ed5d0180 --- /dev/null +++ b/libc/sysv/consts/__NR_old_semwait_signal.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_old_semwait_signal,0xfff,0x2000172,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_old_semwait_signal_nocancel.S b/libc/sysv/consts/__NR_old_semwait_signal_nocancel.S new file mode 100644 index 000000000..180c00e50 --- /dev/null +++ b/libc/sysv/consts/__NR_old_semwait_signal_nocancel.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_old_semwait_signal_nocancel,0xfff,0x2000173,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_open_dprotected_np.S b/libc/sysv/consts/__NR_open_dprotected_np.S new file mode 100644 index 000000000..ff9faa0de --- /dev/null +++ b/libc/sysv/consts/__NR_open_dprotected_np.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_open_dprotected_np,0xfff,0x20000d8,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_open_extended.S b/libc/sysv/consts/__NR_open_extended.S new file mode 100644 index 000000000..92e2e6c38 --- /dev/null +++ b/libc/sysv/consts/__NR_open_extended.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_open_extended,0xfff,0x2000115,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_open_nocancel.S b/libc/sysv/consts/__NR_open_nocancel.S new file mode 100644 index 000000000..f1b0917cd --- /dev/null +++ b/libc/sysv/consts/__NR_open_nocancel.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_open_nocancel,0xfff,0x200018e,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_openat_nocancel.S b/libc/sysv/consts/__NR_openat_nocancel.S new file mode 100644 index 000000000..2277857db --- /dev/null +++ b/libc/sysv/consts/__NR_openat_nocancel.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_openat_nocancel,0xfff,0x20001d0,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_openbyid_np.S b/libc/sysv/consts/__NR_openbyid_np.S new file mode 100644 index 000000000..0a0e63b7a --- /dev/null +++ b/libc/sysv/consts/__NR_openbyid_np.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_openbyid_np,0xfff,0x20001df,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_os_fault_with_payload.S b/libc/sysv/consts/__NR_os_fault_with_payload.S new file mode 100644 index 000000000..e934ca8f2 --- /dev/null +++ b/libc/sysv/consts/__NR_os_fault_with_payload.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_os_fault_with_payload,0xfff,0x2000211,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_pathconf.S b/libc/sysv/consts/__NR_pathconf.S new file mode 100644 index 000000000..8adcef14d --- /dev/null +++ b/libc/sysv/consts/__NR_pathconf.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_pathconf,0xfff,0x20000bf,0x00bf,0x00bf,0x0bf,0xfff diff --git a/libc/sysv/consts/__NR_pdfork.S b/libc/sysv/consts/__NR_pdfork.S new file mode 100644 index 000000000..0dffaa717 --- /dev/null +++ b/libc/sysv/consts/__NR_pdfork.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_pdfork,0xfff,0xfff,0x0206,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_pdgetpid.S b/libc/sysv/consts/__NR_pdgetpid.S new file mode 100644 index 000000000..40641f250 --- /dev/null +++ b/libc/sysv/consts/__NR_pdgetpid.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_pdgetpid,0xfff,0xfff,0x0208,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_pdkill.S b/libc/sysv/consts/__NR_pdkill.S new file mode 100644 index 000000000..9fe46f6b2 --- /dev/null +++ b/libc/sysv/consts/__NR_pdkill.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_pdkill,0xfff,0xfff,0x0207,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_peeloff.S b/libc/sysv/consts/__NR_peeloff.S new file mode 100644 index 000000000..fb0e7fde5 --- /dev/null +++ b/libc/sysv/consts/__NR_peeloff.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_peeloff,0xfff,0x20001c1,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_persona.S b/libc/sysv/consts/__NR_persona.S new file mode 100644 index 000000000..add76381d --- /dev/null +++ b/libc/sysv/consts/__NR_persona.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_persona,0xfff,0x20001ee,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_pid_hibernate.S b/libc/sysv/consts/__NR_pid_hibernate.S new file mode 100644 index 000000000..8605a6e0a --- /dev/null +++ b/libc/sysv/consts/__NR_pid_hibernate.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_pid_hibernate,0xfff,0x20001b3,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_pid_resume.S b/libc/sysv/consts/__NR_pid_resume.S new file mode 100644 index 000000000..7c9ecf01b --- /dev/null +++ b/libc/sysv/consts/__NR_pid_resume.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_pid_resume,0xfff,0x20001b2,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_pid_shutdown_sockets.S b/libc/sysv/consts/__NR_pid_shutdown_sockets.S new file mode 100644 index 000000000..b1c2bdaf2 --- /dev/null +++ b/libc/sysv/consts/__NR_pid_shutdown_sockets.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_pid_shutdown_sockets,0xfff,0x20001b4,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_pid_suspend.S b/libc/sysv/consts/__NR_pid_suspend.S new file mode 100644 index 000000000..3b63c61ca --- /dev/null +++ b/libc/sysv/consts/__NR_pid_suspend.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_pid_suspend,0xfff,0x20001b1,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_poll_nocancel.S b/libc/sysv/consts/__NR_poll_nocancel.S new file mode 100644 index 000000000..c58de5746 --- /dev/null +++ b/libc/sysv/consts/__NR_poll_nocancel.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_poll_nocancel,0xfff,0x20001a1,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_posix_openpt.S b/libc/sysv/consts/__NR_posix_openpt.S new file mode 100644 index 000000000..536ed8c52 --- /dev/null +++ b/libc/sysv/consts/__NR_posix_openpt.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_posix_openpt,0xfff,0xfff,0x01f8,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_pread_nocancel.S b/libc/sysv/consts/__NR_pread_nocancel.S new file mode 100644 index 000000000..038614697 --- /dev/null +++ b/libc/sysv/consts/__NR_pread_nocancel.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_pread_nocancel,0xfff,0x200019e,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_proc_info.S b/libc/sysv/consts/__NR_proc_info.S new file mode 100644 index 000000000..85a75ac67 --- /dev/null +++ b/libc/sysv/consts/__NR_proc_info.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_proc_info,0xfff,0x2000150,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_proc_rlimit_control.S b/libc/sysv/consts/__NR_proc_rlimit_control.S new file mode 100644 index 000000000..a9b6c34a8 --- /dev/null +++ b/libc/sysv/consts/__NR_proc_rlimit_control.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_proc_rlimit_control,0xfff,0x20001be,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_proc_trace_log.S b/libc/sysv/consts/__NR_proc_trace_log.S new file mode 100644 index 000000000..caa15a540 --- /dev/null +++ b/libc/sysv/consts/__NR_proc_trace_log.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_proc_trace_log,0xfff,0x20001dd,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_proc_uuid_policy.S b/libc/sysv/consts/__NR_proc_uuid_policy.S new file mode 100644 index 000000000..703df3312 --- /dev/null +++ b/libc/sysv/consts/__NR_proc_uuid_policy.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_proc_uuid_policy,0xfff,0x20001c4,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_procctl.S b/libc/sysv/consts/__NR_procctl.S new file mode 100644 index 000000000..1d77a70c6 --- /dev/null +++ b/libc/sysv/consts/__NR_procctl.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_procctl,0xfff,0xfff,0x0220,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_process_policy.S b/libc/sysv/consts/__NR_process_policy.S new file mode 100644 index 000000000..0d82eca70 --- /dev/null +++ b/libc/sysv/consts/__NR_process_policy.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_process_policy,0xfff,0x2000143,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_profil.S b/libc/sysv/consts/__NR_profil.S new file mode 100644 index 000000000..6b85ed903 --- /dev/null +++ b/libc/sysv/consts/__NR_profil.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_profil,0xfff,0xfff,0x002c,0x002c,0x02c,0xfff diff --git a/libc/sysv/consts/__NR_pselect_nocancel.S b/libc/sysv/consts/__NR_pselect_nocancel.S new file mode 100644 index 000000000..4781b6f72 --- /dev/null +++ b/libc/sysv/consts/__NR_pselect_nocancel.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_pselect_nocancel,0xfff,0x200018b,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_psynch_cvbroad.S b/libc/sysv/consts/__NR_psynch_cvbroad.S new file mode 100644 index 000000000..831e0fc23 --- /dev/null +++ b/libc/sysv/consts/__NR_psynch_cvbroad.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_psynch_cvbroad,0xfff,0x200012f,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_psynch_cvclrprepost.S b/libc/sysv/consts/__NR_psynch_cvclrprepost.S new file mode 100644 index 000000000..155c8e41a --- /dev/null +++ b/libc/sysv/consts/__NR_psynch_cvclrprepost.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_psynch_cvclrprepost,0xfff,0x2000138,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_psynch_cvsignal.S b/libc/sysv/consts/__NR_psynch_cvsignal.S new file mode 100644 index 000000000..9485288bc --- /dev/null +++ b/libc/sysv/consts/__NR_psynch_cvsignal.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_psynch_cvsignal,0xfff,0x2000130,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_psynch_cvwait.S b/libc/sysv/consts/__NR_psynch_cvwait.S new file mode 100644 index 000000000..838028922 --- /dev/null +++ b/libc/sysv/consts/__NR_psynch_cvwait.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_psynch_cvwait,0xfff,0x2000131,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_psynch_mutexdrop.S b/libc/sysv/consts/__NR_psynch_mutexdrop.S new file mode 100644 index 000000000..fda6498a3 --- /dev/null +++ b/libc/sysv/consts/__NR_psynch_mutexdrop.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_psynch_mutexdrop,0xfff,0x200012e,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_psynch_mutexwait.S b/libc/sysv/consts/__NR_psynch_mutexwait.S new file mode 100644 index 000000000..8735e6f38 --- /dev/null +++ b/libc/sysv/consts/__NR_psynch_mutexwait.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_psynch_mutexwait,0xfff,0x200012d,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_psynch_rw_downgrade.S b/libc/sysv/consts/__NR_psynch_rw_downgrade.S new file mode 100644 index 000000000..e1b6b679e --- /dev/null +++ b/libc/sysv/consts/__NR_psynch_rw_downgrade.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_psynch_rw_downgrade,0xfff,0x200012b,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_psynch_rw_longrdlock.S b/libc/sysv/consts/__NR_psynch_rw_longrdlock.S new file mode 100644 index 000000000..89d9a1cbc --- /dev/null +++ b/libc/sysv/consts/__NR_psynch_rw_longrdlock.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_psynch_rw_longrdlock,0xfff,0x2000129,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_psynch_rw_rdlock.S b/libc/sysv/consts/__NR_psynch_rw_rdlock.S new file mode 100644 index 000000000..e509262ac --- /dev/null +++ b/libc/sysv/consts/__NR_psynch_rw_rdlock.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_psynch_rw_rdlock,0xfff,0x2000132,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_psynch_rw_unlock.S b/libc/sysv/consts/__NR_psynch_rw_unlock.S new file mode 100644 index 000000000..db4921e24 --- /dev/null +++ b/libc/sysv/consts/__NR_psynch_rw_unlock.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_psynch_rw_unlock,0xfff,0x2000134,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_psynch_rw_unlock2.S b/libc/sysv/consts/__NR_psynch_rw_unlock2.S new file mode 100644 index 000000000..03137523d --- /dev/null +++ b/libc/sysv/consts/__NR_psynch_rw_unlock2.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_psynch_rw_unlock2,0xfff,0x2000135,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_psynch_rw_upgrade.S b/libc/sysv/consts/__NR_psynch_rw_upgrade.S new file mode 100644 index 000000000..07cb79b78 --- /dev/null +++ b/libc/sysv/consts/__NR_psynch_rw_upgrade.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_psynch_rw_upgrade,0xfff,0x200012c,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_psynch_rw_wrlock.S b/libc/sysv/consts/__NR_psynch_rw_wrlock.S new file mode 100644 index 000000000..ed535dad3 --- /dev/null +++ b/libc/sysv/consts/__NR_psynch_rw_wrlock.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_psynch_rw_wrlock,0xfff,0x2000133,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_psynch_rw_yieldwrlock.S b/libc/sysv/consts/__NR_psynch_rw_yieldwrlock.S new file mode 100644 index 000000000..43049f2d6 --- /dev/null +++ b/libc/sysv/consts/__NR_psynch_rw_yieldwrlock.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_psynch_rw_yieldwrlock,0xfff,0x200012a,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_pthread_canceled.S b/libc/sysv/consts/__NR_pthread_canceled.S new file mode 100644 index 000000000..db21c137d --- /dev/null +++ b/libc/sysv/consts/__NR_pthread_canceled.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_pthread_canceled,0xfff,0x200014d,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_pthread_chdir.S b/libc/sysv/consts/__NR_pthread_chdir.S new file mode 100644 index 000000000..9cb6b6ae3 --- /dev/null +++ b/libc/sysv/consts/__NR_pthread_chdir.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_pthread_chdir,0xfff,0x200015c,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_pthread_fchdir.S b/libc/sysv/consts/__NR_pthread_fchdir.S new file mode 100644 index 000000000..6879cec6f --- /dev/null +++ b/libc/sysv/consts/__NR_pthread_fchdir.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_pthread_fchdir,0xfff,0x200015d,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_pthread_kill.S b/libc/sysv/consts/__NR_pthread_kill.S new file mode 100644 index 000000000..364d8e630 --- /dev/null +++ b/libc/sysv/consts/__NR_pthread_kill.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_pthread_kill,0xfff,0x2000148,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_pthread_markcancel.S b/libc/sysv/consts/__NR_pthread_markcancel.S new file mode 100644 index 000000000..b98c6ddf0 --- /dev/null +++ b/libc/sysv/consts/__NR_pthread_markcancel.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_pthread_markcancel,0xfff,0x200014c,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_pthread_sigmask.S b/libc/sysv/consts/__NR_pthread_sigmask.S new file mode 100644 index 000000000..082b103f0 --- /dev/null +++ b/libc/sysv/consts/__NR_pthread_sigmask.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_pthread_sigmask,0xfff,0x2000149,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_pwrite_nocancel.S b/libc/sysv/consts/__NR_pwrite_nocancel.S new file mode 100644 index 000000000..bdfb4f1a4 --- /dev/null +++ b/libc/sysv/consts/__NR_pwrite_nocancel.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_pwrite_nocancel,0xfff,0x200019f,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_quota.S b/libc/sysv/consts/__NR_quota.S new file mode 100644 index 000000000..78da1a55e --- /dev/null +++ b/libc/sysv/consts/__NR_quota.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_quota,0xfff,0xfff,0x0095,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_rctl_add_rule.S b/libc/sysv/consts/__NR_rctl_add_rule.S new file mode 100644 index 000000000..9b1b71165 --- /dev/null +++ b/libc/sysv/consts/__NR_rctl_add_rule.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_rctl_add_rule,0xfff,0xfff,0x0210,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_rctl_get_limits.S b/libc/sysv/consts/__NR_rctl_get_limits.S new file mode 100644 index 000000000..f1e4510fa --- /dev/null +++ b/libc/sysv/consts/__NR_rctl_get_limits.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_rctl_get_limits,0xfff,0xfff,0x020f,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_rctl_get_racct.S b/libc/sysv/consts/__NR_rctl_get_racct.S new file mode 100644 index 000000000..ebc497a49 --- /dev/null +++ b/libc/sysv/consts/__NR_rctl_get_racct.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_rctl_get_racct,0xfff,0xfff,0x020d,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_rctl_get_rules.S b/libc/sysv/consts/__NR_rctl_get_rules.S new file mode 100644 index 000000000..8d9133ca0 --- /dev/null +++ b/libc/sysv/consts/__NR_rctl_get_rules.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_rctl_get_rules,0xfff,0xfff,0x020e,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_rctl_remove_rule.S b/libc/sysv/consts/__NR_rctl_remove_rule.S new file mode 100644 index 000000000..557e26209 --- /dev/null +++ b/libc/sysv/consts/__NR_rctl_remove_rule.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_rctl_remove_rule,0xfff,0xfff,0x0211,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_read_nocancel.S b/libc/sysv/consts/__NR_read_nocancel.S new file mode 100644 index 000000000..a62c34bf9 --- /dev/null +++ b/libc/sysv/consts/__NR_read_nocancel.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_read_nocancel,0xfff,0x200018c,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_readv_nocancel.S b/libc/sysv/consts/__NR_readv_nocancel.S new file mode 100644 index 000000000..bdecd444b --- /dev/null +++ b/libc/sysv/consts/__NR_readv_nocancel.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_readv_nocancel,0xfff,0x200019b,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_recv.S b/libc/sysv/consts/__NR_recv.S new file mode 100644 index 000000000..0bcb742a6 --- /dev/null +++ b/libc/sysv/consts/__NR_recv.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_recv,0xfff,0xfff,0x0066,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_recvfrom_nocancel.S b/libc/sysv/consts/__NR_recvfrom_nocancel.S new file mode 100644 index 000000000..fc216c0d6 --- /dev/null +++ b/libc/sysv/consts/__NR_recvfrom_nocancel.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_recvfrom_nocancel,0xfff,0x2000193,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_recvmsg_nocancel.S b/libc/sysv/consts/__NR_recvmsg_nocancel.S new file mode 100644 index 000000000..3a4bfc6d0 --- /dev/null +++ b/libc/sysv/consts/__NR_recvmsg_nocancel.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_recvmsg_nocancel,0xfff,0x2000191,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_recvmsg_x.S b/libc/sysv/consts/__NR_recvmsg_x.S new file mode 100644 index 000000000..1b9563af2 --- /dev/null +++ b/libc/sysv/consts/__NR_recvmsg_x.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_recvmsg_x,0xfff,0x20001e0,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_renameatx_np.S b/libc/sysv/consts/__NR_renameatx_np.S new file mode 100644 index 000000000..3c227a9f0 --- /dev/null +++ b/libc/sysv/consts/__NR_renameatx_np.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_renameatx_np,0xfff,0x20001e8,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_revoke.S b/libc/sysv/consts/__NR_revoke.S new file mode 100644 index 000000000..1dae74860 --- /dev/null +++ b/libc/sysv/consts/__NR_revoke.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_revoke,0xfff,0x2000038,0x0038,0x0038,0x038,0xfff diff --git a/libc/sysv/consts/__NR_rfork.S b/libc/sysv/consts/__NR_rfork.S new file mode 100644 index 000000000..a3aa92576 --- /dev/null +++ b/libc/sysv/consts/__NR_rfork.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_rfork,0xfff,0xfff,0x00fb,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_rtprio.S b/libc/sysv/consts/__NR_rtprio.S new file mode 100644 index 000000000..0f40d3ccf --- /dev/null +++ b/libc/sysv/consts/__NR_rtprio.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_rtprio,0xfff,0xfff,0x00a6,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_rtprio_thread.S b/libc/sysv/consts/__NR_rtprio_thread.S new file mode 100644 index 000000000..7acc130b7 --- /dev/null +++ b/libc/sysv/consts/__NR_rtprio_thread.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_rtprio_thread,0xfff,0xfff,0x01d2,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_sctp_generic_recvmsg.S b/libc/sysv/consts/__NR_sctp_generic_recvmsg.S new file mode 100644 index 000000000..9bf42553f --- /dev/null +++ b/libc/sysv/consts/__NR_sctp_generic_recvmsg.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_sctp_generic_recvmsg,0xfff,0xfff,0x01da,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_sctp_generic_sendmsg.S b/libc/sysv/consts/__NR_sctp_generic_sendmsg.S new file mode 100644 index 000000000..c30266fbc --- /dev/null +++ b/libc/sysv/consts/__NR_sctp_generic_sendmsg.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_sctp_generic_sendmsg,0xfff,0xfff,0x01d8,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_sctp_generic_sendmsg_iov.S b/libc/sysv/consts/__NR_sctp_generic_sendmsg_iov.S new file mode 100644 index 000000000..729af0dc4 --- /dev/null +++ b/libc/sysv/consts/__NR_sctp_generic_sendmsg_iov.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_sctp_generic_sendmsg_iov,0xfff,0xfff,0x01d9,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_sctp_peeloff.S b/libc/sysv/consts/__NR_sctp_peeloff.S new file mode 100644 index 000000000..737d97f78 --- /dev/null +++ b/libc/sysv/consts/__NR_sctp_peeloff.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_sctp_peeloff,0xfff,0xfff,0x01d7,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_searchfs.S b/libc/sysv/consts/__NR_searchfs.S new file mode 100644 index 000000000..6a5f282c7 --- /dev/null +++ b/libc/sysv/consts/__NR_searchfs.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_searchfs,0xfff,0x20000e1,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_select_nocancel.S b/libc/sysv/consts/__NR_select_nocancel.S new file mode 100644 index 000000000..eeca7ec63 --- /dev/null +++ b/libc/sysv/consts/__NR_select_nocancel.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_select_nocancel,0xfff,0x2000197,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_sem_close.S b/libc/sysv/consts/__NR_sem_close.S new file mode 100644 index 000000000..2b44a0826 --- /dev/null +++ b/libc/sysv/consts/__NR_sem_close.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_sem_close,0xfff,0x200010d,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_sem_open.S b/libc/sysv/consts/__NR_sem_open.S new file mode 100644 index 000000000..ec83486f6 --- /dev/null +++ b/libc/sysv/consts/__NR_sem_open.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_sem_open,0xfff,0x200010c,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_sem_post.S b/libc/sysv/consts/__NR_sem_post.S new file mode 100644 index 000000000..a09cb6f63 --- /dev/null +++ b/libc/sysv/consts/__NR_sem_post.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_sem_post,0xfff,0x2000111,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_sem_trywait.S b/libc/sysv/consts/__NR_sem_trywait.S new file mode 100644 index 000000000..d6e59a8f9 --- /dev/null +++ b/libc/sysv/consts/__NR_sem_trywait.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_sem_trywait,0xfff,0x2000110,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_sem_unlink.S b/libc/sysv/consts/__NR_sem_unlink.S new file mode 100644 index 000000000..c89f35cd7 --- /dev/null +++ b/libc/sysv/consts/__NR_sem_unlink.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_sem_unlink,0xfff,0x200010e,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_sem_wait.S b/libc/sysv/consts/__NR_sem_wait.S new file mode 100644 index 000000000..69014467e --- /dev/null +++ b/libc/sysv/consts/__NR_sem_wait.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_sem_wait,0xfff,0x200010f,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_sem_wait_nocancel.S b/libc/sysv/consts/__NR_sem_wait_nocancel.S new file mode 100644 index 000000000..70be96dcf --- /dev/null +++ b/libc/sysv/consts/__NR_sem_wait_nocancel.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_sem_wait_nocancel,0xfff,0x20001a4,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_semsys.S b/libc/sysv/consts/__NR_semsys.S new file mode 100644 index 000000000..1cf854f6f --- /dev/null +++ b/libc/sysv/consts/__NR_semsys.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_semsys,0xfff,0x20000fb,0x00a9,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_semwait_signal.S b/libc/sysv/consts/__NR_semwait_signal.S new file mode 100644 index 000000000..4116ed08c --- /dev/null +++ b/libc/sysv/consts/__NR_semwait_signal.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_semwait_signal,0xfff,0x200014e,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_semwait_signal_nocancel.S b/libc/sysv/consts/__NR_semwait_signal_nocancel.S new file mode 100644 index 000000000..3c37b2355 --- /dev/null +++ b/libc/sysv/consts/__NR_semwait_signal_nocancel.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_semwait_signal_nocancel,0xfff,0x20001a7,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_send.S b/libc/sysv/consts/__NR_send.S new file mode 100644 index 000000000..cb98901b5 --- /dev/null +++ b/libc/sysv/consts/__NR_send.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_send,0xfff,0xfff,0x0065,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_sendmsg_nocancel.S b/libc/sysv/consts/__NR_sendmsg_nocancel.S new file mode 100644 index 000000000..aa17e512b --- /dev/null +++ b/libc/sysv/consts/__NR_sendmsg_nocancel.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_sendmsg_nocancel,0xfff,0x2000192,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_sendmsg_x.S b/libc/sysv/consts/__NR_sendmsg_x.S new file mode 100644 index 000000000..8e7874a5c --- /dev/null +++ b/libc/sysv/consts/__NR_sendmsg_x.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_sendmsg_x,0xfff,0x20001e1,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_sendsyslog.S b/libc/sysv/consts/__NR_sendsyslog.S new file mode 100644 index 000000000..8fd30b341 --- /dev/null +++ b/libc/sysv/consts/__NR_sendsyslog.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_sendsyslog,0xfff,0xfff,0xfff,0x0070,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_sendto_nocancel.S b/libc/sysv/consts/__NR_sendto_nocancel.S new file mode 100644 index 000000000..aac1058eb --- /dev/null +++ b/libc/sysv/consts/__NR_sendto_nocancel.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_sendto_nocancel,0xfff,0x200019d,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_set_tcb.S b/libc/sysv/consts/__NR_set_tcb.S new file mode 100644 index 000000000..70a3cb95e --- /dev/null +++ b/libc/sysv/consts/__NR_set_tcb.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_set_tcb,0xfff,0xfff,0xfff,0x0149,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_setattrlist.S b/libc/sysv/consts/__NR_setattrlist.S new file mode 100644 index 000000000..933f9f67d --- /dev/null +++ b/libc/sysv/consts/__NR_setattrlist.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_setattrlist,0xfff,0x20000dd,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_setattrlistat.S b/libc/sysv/consts/__NR_setattrlistat.S new file mode 100644 index 000000000..7a2cc34ae --- /dev/null +++ b/libc/sysv/consts/__NR_setattrlistat.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_setattrlistat,0xfff,0x200020c,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_setaudit.S b/libc/sysv/consts/__NR_setaudit.S new file mode 100644 index 000000000..4af3a95bd --- /dev/null +++ b/libc/sysv/consts/__NR_setaudit.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_setaudit,0xfff,0xfff,0x01c2,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_setaudit_addr.S b/libc/sysv/consts/__NR_setaudit_addr.S new file mode 100644 index 000000000..a7c76d214 --- /dev/null +++ b/libc/sysv/consts/__NR_setaudit_addr.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_setaudit_addr,0xfff,0x2000166,0x01c4,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_setauid.S b/libc/sysv/consts/__NR_setauid.S new file mode 100644 index 000000000..32bf66d3b --- /dev/null +++ b/libc/sysv/consts/__NR_setauid.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_setauid,0xfff,0x2000162,0x01c0,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_setcontext.S b/libc/sysv/consts/__NR_setcontext.S new file mode 100644 index 000000000..a7b156775 --- /dev/null +++ b/libc/sysv/consts/__NR_setcontext.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_setcontext,0xfff,0xfff,0x01a6,0xfff,0x134,0xfff diff --git a/libc/sysv/consts/__NR_setegid.S b/libc/sysv/consts/__NR_setegid.S new file mode 100644 index 000000000..684291b6f --- /dev/null +++ b/libc/sysv/consts/__NR_setegid.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_setegid,0xfff,0x20000b6,0x00b6,0x00b6,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_seteuid.S b/libc/sysv/consts/__NR_seteuid.S new file mode 100644 index 000000000..7b6d092e2 --- /dev/null +++ b/libc/sysv/consts/__NR_seteuid.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_seteuid,0xfff,0x20000b7,0x00b7,0x00b7,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_setfib.S b/libc/sysv/consts/__NR_setfib.S new file mode 100644 index 000000000..4e17c2892 --- /dev/null +++ b/libc/sysv/consts/__NR_setfib.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_setfib,0xfff,0xfff,0x00af,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_sethostid.S b/libc/sysv/consts/__NR_sethostid.S new file mode 100644 index 000000000..5f00d6108 --- /dev/null +++ b/libc/sysv/consts/__NR_sethostid.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_sethostid,0xfff,0xfff,0x008f,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_setlogin.S b/libc/sysv/consts/__NR_setlogin.S new file mode 100644 index 000000000..c611abf21 --- /dev/null +++ b/libc/sysv/consts/__NR_setlogin.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_setlogin,0xfff,0x2000032,0x0032,0x0032,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_setloginclass.S b/libc/sysv/consts/__NR_setloginclass.S new file mode 100644 index 000000000..788ecfe22 --- /dev/null +++ b/libc/sysv/consts/__NR_setloginclass.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_setloginclass,0xfff,0xfff,0x020c,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_setprivexec.S b/libc/sysv/consts/__NR_setprivexec.S new file mode 100644 index 000000000..98cf6a4e0 --- /dev/null +++ b/libc/sysv/consts/__NR_setprivexec.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_setprivexec,0xfff,0x2000098,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_setrtable.S b/libc/sysv/consts/__NR_setrtable.S new file mode 100644 index 000000000..105e134bd --- /dev/null +++ b/libc/sysv/consts/__NR_setrtable.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_setrtable,0xfff,0xfff,0xfff,0x0136,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_setsgroups.S b/libc/sysv/consts/__NR_setsgroups.S new file mode 100644 index 000000000..3cccb8025 --- /dev/null +++ b/libc/sysv/consts/__NR_setsgroups.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_setsgroups,0xfff,0x200011f,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_settid.S b/libc/sysv/consts/__NR_settid.S new file mode 100644 index 000000000..a503d1108 --- /dev/null +++ b/libc/sysv/consts/__NR_settid.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_settid,0xfff,0x200011d,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_settid_with_pid.S b/libc/sysv/consts/__NR_settid_with_pid.S new file mode 100644 index 000000000..7eac35fd7 --- /dev/null +++ b/libc/sysv/consts/__NR_settid_with_pid.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_settid_with_pid,0xfff,0x2000137,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_setugid.S b/libc/sysv/consts/__NR_setugid.S new file mode 100644 index 000000000..bff48880c --- /dev/null +++ b/libc/sysv/consts/__NR_setugid.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_setugid,0xfff,0xfff,0x0176,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_setwgroups.S b/libc/sysv/consts/__NR_setwgroups.S new file mode 100644 index 000000000..8eba918a6 --- /dev/null +++ b/libc/sysv/consts/__NR_setwgroups.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_setwgroups,0xfff,0x2000121,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_sfi_ctl.S b/libc/sysv/consts/__NR_sfi_ctl.S new file mode 100644 index 000000000..a3fc48e04 --- /dev/null +++ b/libc/sysv/consts/__NR_sfi_ctl.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_sfi_ctl,0xfff,0x20001c8,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_sfi_pidctl.S b/libc/sysv/consts/__NR_sfi_pidctl.S new file mode 100644 index 000000000..d07915085 --- /dev/null +++ b/libc/sysv/consts/__NR_sfi_pidctl.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_sfi_pidctl,0xfff,0x20001c9,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_shared_region_check_np.S b/libc/sysv/consts/__NR_shared_region_check_np.S new file mode 100644 index 000000000..df81c227b --- /dev/null +++ b/libc/sysv/consts/__NR_shared_region_check_np.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_shared_region_check_np,0xfff,0x2000126,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_shared_region_map_and_slide_np.S b/libc/sysv/consts/__NR_shared_region_map_and_slide_np.S new file mode 100644 index 000000000..2070082ba --- /dev/null +++ b/libc/sysv/consts/__NR_shared_region_map_and_slide_np.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_shared_region_map_and_slide_np,0xfff,0x20001b6,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_shm_open.S b/libc/sysv/consts/__NR_shm_open.S new file mode 100644 index 000000000..d305b2cff --- /dev/null +++ b/libc/sysv/consts/__NR_shm_open.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_shm_open,0xfff,0x200010a,0x01e2,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_shm_unlink.S b/libc/sysv/consts/__NR_shm_unlink.S new file mode 100644 index 000000000..40b7f2988 --- /dev/null +++ b/libc/sysv/consts/__NR_shm_unlink.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_shm_unlink,0xfff,0x200010b,0x01e3,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_shmsys.S b/libc/sysv/consts/__NR_shmsys.S new file mode 100644 index 000000000..0df8a304a --- /dev/null +++ b/libc/sysv/consts/__NR_shmsys.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_shmsys,0xfff,0x20000fd,0x00ab,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_sigblock.S b/libc/sysv/consts/__NR_sigblock.S new file mode 100644 index 000000000..cc8d4aa08 --- /dev/null +++ b/libc/sysv/consts/__NR_sigblock.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_sigblock,0xfff,0xfff,0x006d,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_sigqueue.S b/libc/sysv/consts/__NR_sigqueue.S new file mode 100644 index 000000000..4fda7f126 --- /dev/null +++ b/libc/sysv/consts/__NR_sigqueue.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_sigqueue,0xfff,0xfff,0x01c8,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_sigsetmask.S b/libc/sysv/consts/__NR_sigsetmask.S new file mode 100644 index 000000000..93975d953 --- /dev/null +++ b/libc/sysv/consts/__NR_sigsetmask.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_sigsetmask,0xfff,0xfff,0x006e,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_sigstack.S b/libc/sysv/consts/__NR_sigstack.S new file mode 100644 index 000000000..57e0060fd --- /dev/null +++ b/libc/sysv/consts/__NR_sigstack.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_sigstack,0xfff,0xfff,0x0070,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_sigsuspend_nocancel.S b/libc/sysv/consts/__NR_sigsuspend_nocancel.S new file mode 100644 index 000000000..8a0e4f4e6 --- /dev/null +++ b/libc/sysv/consts/__NR_sigsuspend_nocancel.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_sigsuspend_nocancel,0xfff,0x200019a,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_sigvec.S b/libc/sysv/consts/__NR_sigvec.S new file mode 100644 index 000000000..9e06c6563 --- /dev/null +++ b/libc/sysv/consts/__NR_sigvec.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_sigvec,0xfff,0xfff,0x006c,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_sigwait.S b/libc/sysv/consts/__NR_sigwait.S new file mode 100644 index 000000000..0565054df --- /dev/null +++ b/libc/sysv/consts/__NR_sigwait.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_sigwait,0xfff,0x200014a,0x01ad,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_sigwait_nocancel.S b/libc/sysv/consts/__NR_sigwait_nocancel.S new file mode 100644 index 000000000..4b45521ac --- /dev/null +++ b/libc/sysv/consts/__NR_sigwait_nocancel.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_sigwait_nocancel,0xfff,0x20001a6,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_sigwaitinfo.S b/libc/sysv/consts/__NR_sigwaitinfo.S new file mode 100644 index 000000000..d1b7f9528 --- /dev/null +++ b/libc/sysv/consts/__NR_sigwaitinfo.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_sigwaitinfo,0xfff,0xfff,0x015a,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_socket_delegate.S b/libc/sysv/consts/__NR_socket_delegate.S new file mode 100644 index 000000000..26f854ebb --- /dev/null +++ b/libc/sysv/consts/__NR_socket_delegate.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_socket_delegate,0xfff,0x20001c2,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_sstk.S b/libc/sysv/consts/__NR_sstk.S new file mode 100644 index 000000000..75da6caef --- /dev/null +++ b/libc/sysv/consts/__NR_sstk.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_sstk,0xfff,0xfff,0x0046,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_stack_snapshot_with_config.S b/libc/sysv/consts/__NR_stack_snapshot_with_config.S new file mode 100644 index 000000000..455b38e54 --- /dev/null +++ b/libc/sysv/consts/__NR_stack_snapshot_with_config.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_stack_snapshot_with_config,0xfff,0x20001eb,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_stat_extended.S b/libc/sysv/consts/__NR_stat_extended.S new file mode 100644 index 000000000..b2fb45bce --- /dev/null +++ b/libc/sysv/consts/__NR_stat_extended.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_stat_extended,0xfff,0x2000155,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_swapcontext.S b/libc/sysv/consts/__NR_swapcontext.S new file mode 100644 index 000000000..be61d0a76 --- /dev/null +++ b/libc/sysv/consts/__NR_swapcontext.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_swapcontext,0xfff,0xfff,0x01a7,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_swapctl.S b/libc/sysv/consts/__NR_swapctl.S new file mode 100644 index 000000000..c5ff5affb --- /dev/null +++ b/libc/sysv/consts/__NR_swapctl.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_swapctl,0xfff,0xfff,0xfff,0x00c1,0x10f,0xfff diff --git a/libc/sysv/consts/__NR_syscall.S b/libc/sysv/consts/__NR_syscall.S new file mode 100644 index 000000000..c482d23cc --- /dev/null +++ b/libc/sysv/consts/__NR_syscall.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_syscall,0xfff,0xfff,0xfff,0x00c6,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_sysctl.S b/libc/sysv/consts/__NR_sysctl.S new file mode 100644 index 000000000..541f3b694 --- /dev/null +++ b/libc/sysv/consts/__NR_sysctl.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_sysctl,0xfff,0x20000ca,0xfff,0x00ca,0x0ca,0xfff diff --git a/libc/sysv/consts/__NR_sysctlbyname.S b/libc/sysv/consts/__NR_sysctlbyname.S new file mode 100644 index 000000000..9b56e6435 --- /dev/null +++ b/libc/sysv/consts/__NR_sysctlbyname.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_sysctlbyname,0xfff,0x2000112,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_system_override.S b/libc/sysv/consts/__NR_system_override.S new file mode 100644 index 000000000..9bfe6ba0a --- /dev/null +++ b/libc/sysv/consts/__NR_system_override.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_system_override,0xfff,0x20001c6,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_telemetry.S b/libc/sysv/consts/__NR_telemetry.S new file mode 100644 index 000000000..903fd0526 --- /dev/null +++ b/libc/sysv/consts/__NR_telemetry.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_telemetry,0xfff,0x20001c3,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_terminate_with_payload.S b/libc/sysv/consts/__NR_terminate_with_payload.S new file mode 100644 index 000000000..05da8ac4f --- /dev/null +++ b/libc/sysv/consts/__NR_terminate_with_payload.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_terminate_with_payload,0xfff,0x2000208,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_tfork.S b/libc/sysv/consts/__NR_tfork.S new file mode 100644 index 000000000..6d8d6487f --- /dev/null +++ b/libc/sysv/consts/__NR_tfork.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_tfork,0xfff,0xfff,0xfff,0x0008,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_thr_create.S b/libc/sysv/consts/__NR_thr_create.S new file mode 100644 index 000000000..578761c55 --- /dev/null +++ b/libc/sysv/consts/__NR_thr_create.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_thr_create,0xfff,0xfff,0x01ae,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_thr_exit.S b/libc/sysv/consts/__NR_thr_exit.S new file mode 100644 index 000000000..c5c2e699d --- /dev/null +++ b/libc/sysv/consts/__NR_thr_exit.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_thr_exit,0xfff,0xfff,0x01af,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_thr_kill.S b/libc/sysv/consts/__NR_thr_kill.S new file mode 100644 index 000000000..6c1b7ca99 --- /dev/null +++ b/libc/sysv/consts/__NR_thr_kill.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_thr_kill,0xfff,0xfff,0x01b1,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_thr_kill2.S b/libc/sysv/consts/__NR_thr_kill2.S new file mode 100644 index 000000000..00e9849d0 --- /dev/null +++ b/libc/sysv/consts/__NR_thr_kill2.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_thr_kill2,0xfff,0xfff,0x01e1,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_thr_self.S b/libc/sysv/consts/__NR_thr_self.S new file mode 100644 index 000000000..53c298d26 --- /dev/null +++ b/libc/sysv/consts/__NR_thr_self.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_thr_self,0xfff,0xfff,0x01b0,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_thr_set_name.S b/libc/sysv/consts/__NR_thr_set_name.S new file mode 100644 index 000000000..3421d2d74 --- /dev/null +++ b/libc/sysv/consts/__NR_thr_set_name.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_thr_set_name,0xfff,0xfff,0x01d0,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_thr_suspend.S b/libc/sysv/consts/__NR_thr_suspend.S new file mode 100644 index 000000000..527d493f2 --- /dev/null +++ b/libc/sysv/consts/__NR_thr_suspend.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_thr_suspend,0xfff,0xfff,0x01ba,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_thr_wake.S b/libc/sysv/consts/__NR_thr_wake.S new file mode 100644 index 000000000..0d0cfd881 --- /dev/null +++ b/libc/sysv/consts/__NR_thr_wake.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_thr_wake,0xfff,0xfff,0x01bb,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_thread_selfcounts.S b/libc/sysv/consts/__NR_thread_selfcounts.S new file mode 100644 index 000000000..443f99455 --- /dev/null +++ b/libc/sysv/consts/__NR_thread_selfcounts.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_thread_selfcounts,0xfff,0x20000ba,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_thread_selfid.S b/libc/sysv/consts/__NR_thread_selfid.S new file mode 100644 index 000000000..15c3d7dc6 --- /dev/null +++ b/libc/sysv/consts/__NR_thread_selfid.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_thread_selfid,0xfff,0x2000174,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_thread_selfusage.S b/libc/sysv/consts/__NR_thread_selfusage.S new file mode 100644 index 000000000..eb0dbcd63 --- /dev/null +++ b/libc/sysv/consts/__NR_thread_selfusage.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_thread_selfusage,0xfff,0x20001e2,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_threxit.S b/libc/sysv/consts/__NR_threxit.S new file mode 100644 index 000000000..cd6c55b50 --- /dev/null +++ b/libc/sysv/consts/__NR_threxit.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_threxit,0xfff,0xfff,0xfff,0x012e,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_thrkill.S b/libc/sysv/consts/__NR_thrkill.S new file mode 100644 index 000000000..3bcde5475 --- /dev/null +++ b/libc/sysv/consts/__NR_thrkill.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_thrkill,0xfff,0xfff,0xfff,0x0077,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_thrsigdivert.S b/libc/sysv/consts/__NR_thrsigdivert.S new file mode 100644 index 000000000..5b5168665 --- /dev/null +++ b/libc/sysv/consts/__NR_thrsigdivert.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_thrsigdivert,0xfff,0xfff,0xfff,0x012f,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_thrsleep.S b/libc/sysv/consts/__NR_thrsleep.S new file mode 100644 index 000000000..08c755e1f --- /dev/null +++ b/libc/sysv/consts/__NR_thrsleep.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_thrsleep,0xfff,0xfff,0xfff,0x005e,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_thrwakeup.S b/libc/sysv/consts/__NR_thrwakeup.S new file mode 100644 index 000000000..7a5df278a --- /dev/null +++ b/libc/sysv/consts/__NR_thrwakeup.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_thrwakeup,0xfff,0xfff,0xfff,0x012d,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_ulock_wait.S b/libc/sysv/consts/__NR_ulock_wait.S new file mode 100644 index 000000000..02486f5df --- /dev/null +++ b/libc/sysv/consts/__NR_ulock_wait.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_ulock_wait,0xfff,0x2000203,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_ulock_wake.S b/libc/sysv/consts/__NR_ulock_wake.S new file mode 100644 index 000000000..86d9d89a8 --- /dev/null +++ b/libc/sysv/consts/__NR_ulock_wake.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_ulock_wake,0xfff,0x2000204,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_umask_extended.S b/libc/sysv/consts/__NR_umask_extended.S new file mode 100644 index 000000000..52f32ce0d --- /dev/null +++ b/libc/sysv/consts/__NR_umask_extended.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_umask_extended,0xfff,0x2000116,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_undelete.S b/libc/sysv/consts/__NR_undelete.S new file mode 100644 index 000000000..c8e754e78 --- /dev/null +++ b/libc/sysv/consts/__NR_undelete.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_undelete,0xfff,0x20000cd,0x00cd,0xfff,0x0cd,0xfff diff --git a/libc/sysv/consts/__NR_unmount.S b/libc/sysv/consts/__NR_unmount.S new file mode 100644 index 000000000..d62cec4d0 --- /dev/null +++ b/libc/sysv/consts/__NR_unmount.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_unmount,0xfff,0x200009f,0x0016,0x0016,0x016,0xfff diff --git a/libc/sysv/consts/__NR_unveil.S b/libc/sysv/consts/__NR_unveil.S new file mode 100644 index 000000000..c26275437 --- /dev/null +++ b/libc/sysv/consts/__NR_unveil.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_unveil,0xfff,0xfff,0xfff,0x0072,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_usrctl.S b/libc/sysv/consts/__NR_usrctl.S new file mode 100644 index 000000000..b5e22c6fa --- /dev/null +++ b/libc/sysv/consts/__NR_usrctl.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_usrctl,0xfff,0x20001bd,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_utrace.S b/libc/sysv/consts/__NR_utrace.S new file mode 100644 index 000000000..1c830af55 --- /dev/null +++ b/libc/sysv/consts/__NR_utrace.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_utrace,0xfff,0xfff,0x014f,0x00d1,0x132,0xfff diff --git a/libc/sysv/consts/__NR_uuidgen.S b/libc/sysv/consts/__NR_uuidgen.S new file mode 100644 index 000000000..0dfb36f87 --- /dev/null +++ b/libc/sysv/consts/__NR_uuidgen.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_uuidgen,0xfff,0xfff,0x0188,0xfff,0x163,0xfff diff --git a/libc/sysv/consts/__NR_vadvise.S b/libc/sysv/consts/__NR_vadvise.S new file mode 100644 index 000000000..b1e4863eb --- /dev/null +++ b/libc/sysv/consts/__NR_vadvise.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_vadvise,0xfff,0xfff,0x0048,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_vfs_purge.S b/libc/sysv/consts/__NR_vfs_purge.S new file mode 100644 index 000000000..3c009cea8 --- /dev/null +++ b/libc/sysv/consts/__NR_vfs_purge.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_vfs_purge,0xfff,0x20001c7,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_vm_pressure_monitor.S b/libc/sysv/consts/__NR_vm_pressure_monitor.S new file mode 100644 index 000000000..e5af2f7a8 --- /dev/null +++ b/libc/sysv/consts/__NR_vm_pressure_monitor.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_vm_pressure_monitor,0xfff,0x2000128,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_wait.S b/libc/sysv/consts/__NR_wait.S new file mode 100644 index 000000000..bc5ff24e8 --- /dev/null +++ b/libc/sysv/consts/__NR_wait.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_wait,0xfff,0xfff,0x0054,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_wait4_nocancel.S b/libc/sysv/consts/__NR_wait4_nocancel.S new file mode 100644 index 000000000..b5c0bc406 --- /dev/null +++ b/libc/sysv/consts/__NR_wait4_nocancel.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_wait4_nocancel,0xfff,0x2000190,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_wait6.S b/libc/sysv/consts/__NR_wait6.S new file mode 100644 index 000000000..25f159d1a --- /dev/null +++ b/libc/sysv/consts/__NR_wait6.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_wait6,0xfff,0xfff,0x0214,0xfff,0x1e1,0xfff diff --git a/libc/sysv/consts/__NR_waitevent.S b/libc/sysv/consts/__NR_waitevent.S new file mode 100644 index 000000000..c7d8d5921 --- /dev/null +++ b/libc/sysv/consts/__NR_waitevent.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_waitevent,0xfff,0x20000e8,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_waitid_nocancel.S b/libc/sysv/consts/__NR_waitid_nocancel.S new file mode 100644 index 000000000..2300a006e --- /dev/null +++ b/libc/sysv/consts/__NR_waitid_nocancel.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_waitid_nocancel,0xfff,0x20001a0,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_watchevent.S b/libc/sysv/consts/__NR_watchevent.S new file mode 100644 index 000000000..5e2e33449 --- /dev/null +++ b/libc/sysv/consts/__NR_watchevent.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_watchevent,0xfff,0x20000e7,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_work_interval_ctl.S b/libc/sysv/consts/__NR_work_interval_ctl.S new file mode 100644 index 000000000..b6c07db6d --- /dev/null +++ b/libc/sysv/consts/__NR_work_interval_ctl.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_work_interval_ctl,0xfff,0x20001f3,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_workq_kernreturn.S b/libc/sysv/consts/__NR_workq_kernreturn.S new file mode 100644 index 000000000..0b12e4bf6 --- /dev/null +++ b/libc/sysv/consts/__NR_workq_kernreturn.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_workq_kernreturn,0xfff,0x2000170,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_workq_open.S b/libc/sysv/consts/__NR_workq_open.S new file mode 100644 index 000000000..65f82ae65 --- /dev/null +++ b/libc/sysv/consts/__NR_workq_open.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_workq_open,0xfff,0x200016f,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_write_nocancel.S b/libc/sysv/consts/__NR_write_nocancel.S new file mode 100644 index 000000000..03c496a5e --- /dev/null +++ b/libc/sysv/consts/__NR_write_nocancel.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_write_nocancel,0xfff,0x200018d,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_writev_nocancel.S b/libc/sysv/consts/__NR_writev_nocancel.S new file mode 100644 index 000000000..bfcc2eceb --- /dev/null +++ b/libc/sysv/consts/__NR_writev_nocancel.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_writev_nocancel,0xfff,0x200019c,0xfff,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/__NR_yield.S b/libc/sysv/consts/__NR_yield.S new file mode 100644 index 000000000..74ec8055e --- /dev/null +++ b/libc/sysv/consts/__NR_yield.S @@ -0,0 +1,2 @@ +#include "libc/sysv/consts/syscon.internal.h" +.syscon nr,__NR_yield,0xfff,0xfff,0x0141,0xfff,0xfff,0xfff diff --git a/libc/sysv/consts/fan.h b/libc/sysv/consts/fan.h index 1276490a6..7b4784d44 100644 --- a/libc/sysv/consts/fan.h +++ b/libc/sysv/consts/fan.h @@ -1,41 +1,84 @@ #ifndef COSMOPOLITAN_LIBC_SYSV_CONSTS_FAN_H_ #define COSMOPOLITAN_LIBC_SYSV_CONSTS_FAN_H_ +#include "libc/runtime/symbolic.h" -#define FAN_CLASS_NOTIF 0 -#define FAN_ACCESS 1 -#define FAN_ACCESS_PERM 0x020000 -#define FAN_ALLOW 1 -#define FAN_ALL_CLASS_BITS 12 -#define FAN_ALL_EVENTS 59 -#define FAN_ALL_INIT_FLAGS 63 -#define FAN_ALL_MARK_FLAGS 255 -#define FAN_ALL_OUTGOING_EVENTS 0x03403b -#define FAN_ALL_PERM_EVENTS 0x030000 -#define FAN_CLASS_CONTENT 4 -#define FAN_CLASS_PRE_CONTENT 8 -#define FAN_CLOEXEC 1 -#define FAN_CLOSE 24 -#define FAN_CLOSE_NOWRITE 0x10 -#define FAN_CLOSE_WRITE 8 -#define FAN_DENY 2 -#define FAN_EVENT_METADATA_LEN 24 -#define FAN_EVENT_ON_CHILD 0x08000000 -#define FAN_MARK_ADD 1 -#define FAN_MARK_DONT_FOLLOW 4 -#define FAN_MARK_FLUSH 0x80 -#define FAN_MARK_IGNORED_MASK 0x20 -#define FAN_MARK_IGNORED_SURV_MODIFY 0x40 -#define FAN_MARK_MOUNT 0x10 -#define FAN_MARK_ONLYDIR 8 -#define FAN_MARK_REMOVE 2 -#define FAN_MODIFY 2 -#define FAN_NOFD -1 -#define FAN_NONBLOCK 2 -#define FAN_ONDIR 0x40000000 -#define FAN_OPEN 0x20 -#define FAN_OPEN_PERM 0x010000 -#define FAN_Q_OVERFLOW 0x4000 -#define FAN_UNLIMITED_MARKS 0x20 -#define FAN_UNLIMITED_QUEUE 0x10 +#define FAN_ACCESS SYMBOLIC(FAN_ACCESS) +#define FAN_ACCESS_PERM SYMBOLIC(FAN_ACCESS_PERM) +#define FAN_ALLOW SYMBOLIC(FAN_ALLOW) +#define FAN_ALL_CLASS_BITS SYMBOLIC(FAN_ALL_CLASS_BITS) +#define FAN_ALL_EVENTS SYMBOLIC(FAN_ALL_EVENTS) +#define FAN_ALL_INIT_FLAGS SYMBOLIC(FAN_ALL_INIT_FLAGS) +#define FAN_ALL_MARK_FLAGS SYMBOLIC(FAN_ALL_MARK_FLAGS) +#define FAN_ALL_OUTGOING_EVENTS SYMBOLIC(FAN_ALL_OUTGOING_EVENTS) +#define FAN_ALL_PERM_EVENTS SYMBOLIC(FAN_ALL_PERM_EVENTS) +#define FAN_CLASS_CONTENT SYMBOLIC(FAN_CLASS_CONTENT) +#define FAN_CLASS_NOTIF SYMBOLIC(FAN_CLASS_NOTIF) +#define FAN_CLASS_PRE_CONTENT SYMBOLIC(FAN_CLASS_PRE_CONTENT) +#define FAN_CLOEXEC SYMBOLIC(FAN_CLOEXEC) +#define FAN_CLOSE SYMBOLIC(FAN_CLOSE) +#define FAN_CLOSE_NOWRITE SYMBOLIC(FAN_CLOSE_NOWRITE) +#define FAN_CLOSE_WRITE SYMBOLIC(FAN_CLOSE_WRITE) +#define FAN_DENY SYMBOLIC(FAN_DENY) +#define FAN_EVENT_METADATA_LEN SYMBOLIC(FAN_EVENT_METADATA_LEN) +#define FAN_EVENT_ON_CHILD SYMBOLIC(FAN_EVENT_ON_CHILD) +#define FAN_MARK_ADD SYMBOLIC(FAN_MARK_ADD) +#define FAN_MARK_DONT_FOLLOW SYMBOLIC(FAN_MARK_DONT_FOLLOW) +#define FAN_MARK_FLUSH SYMBOLIC(FAN_MARK_FLUSH) +#define FAN_MARK_IGNORED_MASK SYMBOLIC(FAN_MARK_IGNORED_MASK) +#define FAN_MARK_IGNORED_SURV_MODIFY SYMBOLIC(FAN_MARK_IGNORED_SURV_MODIFY) +#define FAN_MARK_MOUNT SYMBOLIC(FAN_MARK_MOUNT) +#define FAN_MARK_ONLYDIR SYMBOLIC(FAN_MARK_ONLYDIR) +#define FAN_MARK_REMOVE SYMBOLIC(FAN_MARK_REMOVE) +#define FAN_MODIFY SYMBOLIC(FAN_MODIFY) +#define FAN_NOFD SYMBOLIC(FAN_NOFD) +#define FAN_NONBLOCK SYMBOLIC(FAN_NONBLOCK) +#define FAN_ONDIR SYMBOLIC(FAN_ONDIR) +#define FAN_OPEN SYMBOLIC(FAN_OPEN) +#define FAN_OPEN_PERM SYMBOLIC(FAN_OPEN_PERM) +#define FAN_Q_OVERFLOW SYMBOLIC(FAN_Q_OVERFLOW) +#define FAN_UNLIMITED_MARKS SYMBOLIC(FAN_UNLIMITED_MARKS) +#define FAN_UNLIMITED_QUEUE SYMBOLIC(FAN_UNLIMITED_QUEUE) +#if !(__ASSEMBLER__ + __LINKER__ + 0) +COSMOPOLITAN_C_START_ + +extern const unsigned int FAN_ACCESS; +extern const unsigned int FAN_ACCESS_PERM; +extern const unsigned int FAN_ALLOW; +extern const unsigned int FAN_ALL_CLASS_BITS; +extern const unsigned int FAN_ALL_EVENTS; +extern const unsigned int FAN_ALL_INIT_FLAGS; +extern const unsigned int FAN_ALL_MARK_FLAGS; +extern const unsigned int FAN_ALL_OUTGOING_EVENTS; +extern const unsigned int FAN_ALL_PERM_EVENTS; +extern const unsigned int FAN_CLASS_CONTENT; +extern const unsigned int FAN_CLASS_NOTIF; +extern const unsigned int FAN_CLASS_PRE_CONTENT; +extern const unsigned int FAN_CLOEXEC; +extern const unsigned int FAN_CLOSE; +extern const unsigned int FAN_CLOSE_NOWRITE; +extern const unsigned int FAN_CLOSE_WRITE; +extern const unsigned int FAN_DENY; +extern const unsigned int FAN_EVENT_METADATA_LEN; +extern const unsigned int FAN_EVENT_ON_CHILD; +extern const unsigned int FAN_MARK_ADD; +extern const unsigned int FAN_MARK_DONT_FOLLOW; +extern const unsigned int FAN_MARK_FLUSH; +extern const unsigned int FAN_MARK_IGNORED_MASK; +extern const unsigned int FAN_MARK_IGNORED_SURV_MODIFY; +extern const unsigned int FAN_MARK_MOUNT; +extern const unsigned int FAN_MARK_ONLYDIR; +extern const unsigned int FAN_MARK_REMOVE; +extern const unsigned int FAN_MODIFY; +extern const unsigned int FAN_NOFD; +extern const unsigned int FAN_NONBLOCK; +extern const unsigned int FAN_ONDIR; +extern const unsigned int FAN_OPEN; +extern const unsigned int FAN_OPEN_PERM; +extern const unsigned int FAN_Q_OVERFLOW; +extern const unsigned int FAN_UNLIMITED_MARKS; +extern const unsigned int FAN_UNLIMITED_QUEUE; + +COSMOPOLITAN_C_END_ +#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */ #endif /* COSMOPOLITAN_LIBC_SYSV_CONSTS_FAN_H_ */ diff --git a/libc/sysv/consts/in.h b/libc/sysv/consts/in.h index c43ccff39..17416c789 100644 --- a/libc/sysv/consts/in.h +++ b/libc/sysv/consts/in.h @@ -1,31 +1,66 @@ #ifndef COSMOPOLITAN_LIBC_SYSV_CONSTS_IN_H_ #define COSMOPOLITAN_LIBC_SYSV_CONSTS_IN_H_ +#include "libc/runtime/symbolic.h" -#define IN_ACCESS 1 -#define IN_ALL_EVENTS 0x0fff -#define IN_ATTRIB 4 -#define IN_CLOEXEC 0x080000 -#define IN_CLOSE 24 -#define IN_CLOSE_NOWRITE 0x10 -#define IN_CLOSE_WRITE 8 -#define IN_CREATE 0x0100 -#define IN_DELETE 0x0200 -#define IN_DELETE_SELF 0x0400 -#define IN_DONT_FOLLOW 0x02000000 -#define IN_EXCL_UNLINK 0x04000000 -#define IN_IGNORED 0x8000 -#define IN_ISDIR 0x40000000 -#define IN_MASK_ADD 0x20000000 -#define IN_MODIFY 2 -#define IN_MOVE 192 -#define IN_MOVED_FROM 0x40 -#define IN_MOVED_TO 0x80 -#define IN_MOVE_SELF 0x0800 -#define IN_NONBLOCK 0x0800 -#define IN_ONESHOT 0x80000000 -#define IN_ONLYDIR 0x01000000 -#define IN_OPEN 0x20 -#define IN_Q_OVERFLOW 0x4000 -#define IN_UNMOUNT 0x2000 +#define IN_ACCESS SYMBOLIC(IN_ACCESS) +#define IN_ALL_EVENTS SYMBOLIC(IN_ALL_EVENTS) +#define IN_ATTRIB SYMBOLIC(IN_ATTRIB) +#define IN_CLOEXEC SYMBOLIC(IN_CLOEXEC) +#define IN_CLOSE SYMBOLIC(IN_CLOSE) +#define IN_CLOSE_NOWRITE SYMBOLIC(IN_CLOSE_NOWRITE) +#define IN_CLOSE_WRITE SYMBOLIC(IN_CLOSE_WRITE) +#define IN_CREATE SYMBOLIC(IN_CREATE) +#define IN_DELETE SYMBOLIC(IN_DELETE) +#define IN_DELETE_SELF SYMBOLIC(IN_DELETE_SELF) +#define IN_DONT_FOLLOW SYMBOLIC(IN_DONT_FOLLOW) +#define IN_EXCL_UNLINK SYMBOLIC(IN_EXCL_UNLINK) +#define IN_IGNORED SYMBOLIC(IN_IGNORED) +#define IN_ISDIR SYMBOLIC(IN_ISDIR) +#define IN_LOOPBACKNET SYMBOLIC(IN_LOOPBACKNET) +#define IN_MASK_ADD SYMBOLIC(IN_MASK_ADD) +#define IN_MODIFY SYMBOLIC(IN_MODIFY) +#define IN_MOVE SYMBOLIC(IN_MOVE) +#define IN_MOVED_FROM SYMBOLIC(IN_MOVED_FROM) +#define IN_MOVED_TO SYMBOLIC(IN_MOVED_TO) +#define IN_MOVE_SELF SYMBOLIC(IN_MOVE_SELF) +#define IN_NONBLOCK SYMBOLIC(IN_NONBLOCK) +#define IN_ONESHOT SYMBOLIC(IN_ONESHOT) +#define IN_ONLYDIR SYMBOLIC(IN_ONLYDIR) +#define IN_OPEN SYMBOLIC(IN_OPEN) +#define IN_Q_OVERFLOW SYMBOLIC(IN_Q_OVERFLOW) +#define IN_UNMOUNT SYMBOLIC(IN_UNMOUNT) +#if !(__ASSEMBLER__ + __LINKER__ + 0) +COSMOPOLITAN_C_START_ + +extern const uint32_t IN_ACCESS; +extern const uint32_t IN_ALL_EVENTS; +extern const uint32_t IN_ATTRIB; +extern const uint32_t IN_CLOEXEC; +extern const uint32_t IN_CLOSE; +extern const uint32_t IN_CLOSE_NOWRITE; +extern const uint32_t IN_CLOSE_WRITE; +extern const uint32_t IN_CREATE; +extern const uint32_t IN_DELETE; +extern const uint32_t IN_DELETE_SELF; +extern const uint32_t IN_DONT_FOLLOW; +extern const uint32_t IN_EXCL_UNLINK; +extern const uint32_t IN_IGNORED; +extern const uint32_t IN_ISDIR; +extern const uint32_t IN_LOOPBACKNET; +extern const uint32_t IN_MASK_ADD; +extern const uint32_t IN_MODIFY; +extern const uint32_t IN_MOVE; +extern const uint32_t IN_MOVED_FROM; +extern const uint32_t IN_MOVED_TO; +extern const uint32_t IN_MOVE_SELF; +extern const uint32_t IN_NONBLOCK; +extern const uint32_t IN_ONESHOT; +extern const uint32_t IN_ONLYDIR; +extern const uint32_t IN_OPEN; +extern const uint32_t IN_Q_OVERFLOW; +extern const uint32_t IN_UNMOUNT; + +COSMOPOLITAN_C_END_ +#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */ #endif /* COSMOPOLITAN_LIBC_SYSV_CONSTS_IN_H_ */ diff --git a/libc/sysv/consts/inaddr.h b/libc/sysv/consts/inaddr.h index dc6c4c120..08773d6fc 100644 --- a/libc/sysv/consts/inaddr.h +++ b/libc/sysv/consts/inaddr.h @@ -19,6 +19,4 @@ #define INADDR_MAX_LOCAL_GROUP 0xE00000FFu #define INADDR_UNSPEC_GROUP 0xE0000000u -#define IN_LOOPBACKNET 127 - #endif /* COSMOPOLITAN_LIBC_SYSV_CONSTS_INADDR_H_ */ diff --git a/libc/sysv/consts/nd.h b/libc/sysv/consts/nd.h new file mode 100644 index 000000000..2777898e9 --- /dev/null +++ b/libc/sysv/consts/nd.h @@ -0,0 +1,34 @@ +#ifndef COSMOPOLITAN_LIBC_SYSV_CONSTS_ND_H_ +#define COSMOPOLITAN_LIBC_SYSV_CONSTS_ND_H_ +#include "libc/runtime/symbolic.h" + +#define ND_NA_FLAG_OVERRIDE SYMBOLIC(ND_NA_FLAG_OVERRIDE) +#define ND_NA_FLAG_ROUTER SYMBOLIC(ND_NA_FLAG_ROUTER) +#define ND_NA_FLAG_SOLICITED SYMBOLIC(ND_NA_FLAG_SOLICITED) +#define ND_NEIGHBOR_ADVERT SYMBOLIC(ND_NEIGHBOR_ADVERT) +#define ND_NEIGHBOR_SOLICIT SYMBOLIC(ND_NEIGHBOR_SOLICIT) +#define ND_RA_FLAG_HOME_AGENT SYMBOLIC(ND_RA_FLAG_HOME_AGENT) +#define ND_RA_FLAG_MANAGED SYMBOLIC(ND_RA_FLAG_MANAGED) +#define ND_RA_FLAG_OTHER SYMBOLIC(ND_RA_FLAG_OTHER) +#define ND_REDIRECT SYMBOLIC(ND_REDIRECT) +#define ND_ROUTER_ADVERT SYMBOLIC(ND_ROUTER_ADVERT) +#define ND_ROUTER_SOLICIT SYMBOLIC(ND_ROUTER_SOLICIT) + +#if !(__ASSEMBLER__ + __LINKER__ + 0) +COSMOPOLITAN_C_START_ + +extern const long ND_NA_FLAG_OVERRIDE; +extern const long ND_NA_FLAG_ROUTER; +extern const long ND_NA_FLAG_SOLICITED; +extern const long ND_NEIGHBOR_ADVERT; +extern const long ND_NEIGHBOR_SOLICIT; +extern const long ND_RA_FLAG_HOME_AGENT; +extern const long ND_RA_FLAG_MANAGED; +extern const long ND_RA_FLAG_OTHER; +extern const long ND_REDIRECT; +extern const long ND_ROUTER_ADVERT; +extern const long ND_ROUTER_SOLICIT; + +COSMOPOLITAN_C_END_ +#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */ +#endif /* COSMOPOLITAN_LIBC_SYSV_CONSTS_ND_H_ */ diff --git a/libc/sysv/consts/nr.h b/libc/sysv/consts/nr.h index e6607d7ef..c926b9dcc 100644 --- a/libc/sysv/consts/nr.h +++ b/libc/sysv/consts/nr.h @@ -336,340 +336,1207 @@ extern const long __NR_io_uring_register; extern const long __NR_pledge; extern const long __NR_msyscall; extern const long __NR_ktrace; +extern const long __NR_kqueue; +extern const long __NR_kevent; +extern const long __NR_revoke; +extern const long __NR_setlogin; +extern const long __NR_getfh; +extern const long __NR_chflags; +extern const long __NR_getfsstat; +extern const long __NR_nfssvc; +extern const long __NR_adjtime; +extern const long __NR_fchflags; +extern const long __NR_seteuid; +extern const long __NR_setegid; +extern const long __NR_fpathconf; +extern const long __NR_fhopen; +extern const long __NR_unmount; +extern const long __NR_issetugid; +extern const long __NR_minherit; +extern const long __NR_pathconf; +extern const long __NR_sysctl; +extern const long __NR_ntp_adjtime; +extern const long __NR_ntp_gettime; +extern const long __NR_shm_unlink; +extern const long __NR_shm_open; +extern const long __NR_aio_read; +extern const long __NR_aio_suspend; +extern const long __NR_aio_cancel; +extern const long __NR_aio_fsync; +extern const long __NR_aio_error; +extern const long __NR_aio_return; +extern const long __NR_aio_write; +extern const long __NR_aio_waitcomplete; +extern const long __NR_aio_suspend_nocancel; +extern const long __NR_aio_mlock; +extern const long __NR_sigwait; +extern const long __NR_undelete; +extern const long __NR_getlogin; +extern const long __NR_getdtablesize; +extern const long __NR_setauid; +extern const long __NR_audit; +extern const long __NR_auditctl; +extern const long __NR_getaudit_addr; +extern const long __NR_getdirentries; +extern const long __NR_lio_listio; +extern const long __NR_setaudit_addr; +extern const long __NR_getauid; +extern const long __NR_semsys; +extern const long __NR_auditon; +extern const long __NR_msgsys; +extern const long __NR_shmsys; +extern const long __NR_fhstat; +extern const long __NR_chflagsat; +extern const long __NR_profil; +extern const long __NR_fhstatfs; +extern const long __NR_utrace; +extern const long __NR_closefrom; +extern const long __NR_pthread_markcancel; +extern const long __NR_pthread_kill; +extern const long __NR_pthread_fchdir; +extern const long __NR_pthread_sigmask; +extern const long __NR_pthread_chdir; +extern const long __NR_pthread_canceled; +extern const long __NR_disable_threadsignal; +extern const long __NR_abort_with_payload; +extern const long __NR_accept_nocancel; +extern const long __NR_access_extended; +extern const long __NR_audit_session_join; +extern const long __NR_audit_session_port; +extern const long __NR_audit_session_self; +extern const long __NR_bsdthread_ctl; +extern const long __NR_bsdthread_terminate; +extern const long __NR_change_fdguard_np; +extern const long __NR_chmod_extended; +extern const long __NR_clonefileat; +extern const long __NR_close_nocancel; +extern const long __NR_coalition; +extern const long __NR_coalition_info; +extern const long __NR_connect_nocancel; +extern const long __NR_connectx; +extern const long __NR_copyfile; +extern const long __NR_csops; +extern const long __NR_csops_audittoken; +extern const long __NR_csrctl; +extern const long __NR_delete; +extern const long __NR_disconnectx; +extern const long __NR_exchangedata; +extern const long __NR_fchmod_extended; +extern const long __NR_fclonefileat; +extern const long __NR_fcntl_nocancel; +extern const long __NR_ffsctl; +extern const long __NR_fgetattrlist; +extern const long __NR_fileport_makefd; +extern const long __NR_fileport_makeport; +extern const long __NR_fmount; +extern const long __NR_fs_snapshot; +extern const long __NR_fsctl; +extern const long __NR_fsetattrlist; +extern const long __NR_fstat_extended; +extern const long __NR_fsync_nocancel; +extern const long __NR_getattrlist; +extern const long __NR_getattrlistat; +extern const long __NR_getattrlistbulk; +extern const long __NR_getdirentriesattr; +extern const long __NR_gethostuuid; +extern const long __NR_getsgroups; +extern const long __NR_getwgroups; +extern const long __NR_grab_pgo_data; +extern const long __NR_guarded_close_np; +extern const long __NR_guarded_kqueue_np; +extern const long __NR_guarded_open_np; +extern const long __NR_guarded_pwrite_np; +extern const long __NR_guarded_write_np; +extern const long __NR_guarded_writev_np; +extern const long __NR_identitysvc; +extern const long __NR_initgroups; +extern const long __NR_iopolicysys; +extern const long __NR_kas_info; +extern const long __NR_kdebug_trace; +extern const long __NR_kdebug_trace_string; +extern const long __NR_kdebug_typefilter; +extern const long __NR_kevent_id; +extern const long __NR_kevent_qos; +extern const long __NR_ledger; +extern const long __NR_lstat_extended; +extern const long __NR_memorystatus_control; +extern const long __NR_memorystatus_get_level; +extern const long __NR_microstackshot; +extern const long __NR_mkdir_extended; +extern const long __NR_mkfifo_extended; +extern const long __NR_modwatch; +extern const long __NR_mremap_encrypted; +extern const long __NR_msgrcv_nocancel; +extern const long __NR_msgsnd_nocancel; +extern const long __NR_msync_nocancel; +extern const long __NR_necp_client_action; +extern const long __NR_necp_match_policy; +extern const long __NR_necp_open; +extern const long __NR_necp_session_action; +extern const long __NR_necp_session_open; +extern const long __NR_net_qos_guideline; +extern const long __NR_netagent_trigger; +extern const long __NR_nfsclnt; +extern const long __NR_open_dprotected_np; +extern const long __NR_open_extended; +extern const long __NR_open_nocancel; +extern const long __NR_openat_nocancel; +extern const long __NR_openbyid_np; +extern const long __NR_os_fault_with_payload; +extern const long __NR_peeloff; +extern const long __NR_persona; +extern const long __NR_pid_hibernate; +extern const long __NR_pid_resume; +extern const long __NR_pid_shutdown_sockets; +extern const long __NR_pid_suspend; +extern const long __NR_poll_nocancel; +extern const long __NR_pread_nocancel; +extern const long __NR_proc_info; +extern const long __NR_proc_rlimit_control; +extern const long __NR_proc_trace_log; +extern const long __NR_proc_uuid_policy; +extern const long __NR_process_policy; +extern const long __NR_pselect_nocancel; +extern const long __NR_psynch_cvbroad; +extern const long __NR_psynch_cvclrprepost; +extern const long __NR_psynch_cvsignal; +extern const long __NR_psynch_mutexdrop; +extern const long __NR_psynch_mutexwait; +extern const long __NR_psynch_rw_downgrade; +extern const long __NR_psynch_rw_longrdlock; +extern const long __NR_psynch_rw_rdlock; +extern const long __NR_psynch_rw_unlock; +extern const long __NR_psynch_rw_unlock2; +extern const long __NR_psynch_rw_upgrade; +extern const long __NR_psynch_rw_wrlock; +extern const long __NR_psynch_rw_yieldwrlock; +extern const long __NR_pwrite_nocancel; +extern const long __NR_read_nocancel; +extern const long __NR_readv_nocancel; +extern const long __NR_recvfrom_nocancel; +extern const long __NR_recvmsg_nocancel; +extern const long __NR_recvmsg_x; +extern const long __NR_renameatx_np; +extern const long __NR_searchfs; +extern const long __NR_select_nocancel; +extern const long __NR_sem_close; +extern const long __NR_sem_open; +extern const long __NR_sem_post; +extern const long __NR_sem_trywait; +extern const long __NR_sem_unlink; +extern const long __NR_sem_wait; +extern const long __NR_sem_wait_nocancel; +extern const long __NR_sendmsg_nocancel; +extern const long __NR_sendmsg_x; +extern const long __NR_sendto_nocancel; +extern const long __NR_setattrlist; +extern const long __NR_setattrlistat; +extern const long __NR_setprivexec; +extern const long __NR_setsgroups; +extern const long __NR_settid; +extern const long __NR_settid_with_pid; +extern const long __NR_setwgroups; +extern const long __NR_sfi_ctl; +extern const long __NR_sfi_pidctl; +extern const long __NR_shared_region_check_np; +extern const long __NR_sigsuspend_nocancel; +extern const long __NR_socket_delegate; +extern const long __NR_stat_extended; +extern const long __NR_sysctlbyname; +extern const long __NR_system_override; +extern const long __NR_telemetry; +extern const long __NR_terminate_with_payload; +extern const long __NR_thread_selfcounts; +extern const long __NR_thread_selfid; +extern const long __NR_thread_selfusage; +extern const long __NR_ulock_wait; +extern const long __NR_ulock_wake; +extern const long __NR_umask_extended; +extern const long __NR_usrctl; +extern const long __NR_vfs_purge; +extern const long __NR_vm_pressure_monitor; +extern const long __NR_wait4_nocancel; +extern const long __NR_waitevent; +extern const long __NR_waitid_nocancel; +extern const long __NR_watchevent; +extern const long __NR_work_interval_ctl; +extern const long __NR_workq_kernreturn; +extern const long __NR_workq_open; +extern const long __NR_write_nocancel; +extern const long __NR_writev_nocancel; +extern const long __NR_abort2; +extern const long __NR_afs3_syscall; +extern const long __NR_bindat; +extern const long __NR_break; +extern const long __NR_cap_enter; +extern const long __NR_cap_fcntls_get; +extern const long __NR_cap_fcntls_limit; +extern const long __NR_cap_getmode; +extern const long __NR_cap_ioctls_get; +extern const long __NR_cap_ioctls_limit; +extern const long __NR_cap_rights_limit; +extern const long __NR_clock_getcpuclockid2; +extern const long __NR_connectat; +extern const long __NR_cpuset; +extern const long __NR_cpuset_getdomain; +extern const long __NR_cpuset_getid; +extern const long __NR_cpuset_setdomain; +extern const long __NR_cpuset_setid; +extern const long __NR_eaccess; +extern const long __NR_extattr_delete_fd; +extern const long __NR_extattr_delete_file; +extern const long __NR_extattr_delete_link; +extern const long __NR_extattr_get_fd; +extern const long __NR_extattr_get_file; +extern const long __NR_extattr_get_link; +extern const long __NR_extattr_list_fd; +extern const long __NR_extattr_list_file; +extern const long __NR_extattr_list_link; +extern const long __NR_extattr_set_fd; +extern const long __NR_extattr_set_file; +extern const long __NR_extattr_set_link; +extern const long __NR_extattrctl; +extern const long __NR_fexecve; +extern const long __NR_ffclock_getcounter; +extern const long __NR_ffclock_getestimate; +extern const long __NR_ffclock_setestimate; +extern const long __NR_fhlink; +extern const long __NR_fhlinkat; +extern const long __NR_fhreadlink; +extern const long __NR_getaudit; +extern const long __NR_getcontext; +extern const long __NR_getfhat; +extern const long __NR_gethostid; +extern const long __NR_getkerninfo; +extern const long __NR_getloginclass; +extern const long __NR_getpagesize; +extern const long __NR_gssd_syscall; +extern const long __NR_jail; +extern const long __NR_jail_attach; +extern const long __NR_jail_get; +extern const long __NR_jail_remove; +extern const long __NR_jail_set; +extern const long __NR_kenv; +extern const long __NR_kldfind; +extern const long __NR_kldfirstmod; +extern const long __NR_kldload; +extern const long __NR_kldnext; +extern const long __NR_kldstat; +extern const long __NR_kldsym; +extern const long __NR_kldunload; +extern const long __NR_kldunloadf; +extern const long __NR_kmq_notify; +extern const long __NR_kmq_setattr; +extern const long __NR_kmq_timedreceive; +extern const long __NR_kmq_timedsend; +extern const long __NR_kmq_unlink; +extern const long __NR_ksem_close; +extern const long __NR_ksem_destroy; +extern const long __NR_ksem_getvalue; +extern const long __NR_ksem_init; +extern const long __NR_ksem_open; +extern const long __NR_ksem_post; +extern const long __NR_ksem_timedwait; +extern const long __NR_ksem_trywait; +extern const long __NR_ksem_unlink; +extern const long __NR_ksem_wait; +extern const long __NR_ktimer_create; +extern const long __NR_ktimer_delete; +extern const long __NR_ktimer_getoverrun; +extern const long __NR_ktimer_gettime; +extern const long __NR_ktimer_settime; +extern const long __NR_lchflags; +extern const long __NR_lchmod; +extern const long __NR_lgetfh; +extern const long __NR_lpathconf; +extern const long __NR_lutimes; +extern const long __NR_mac_syscall; +extern const long __NR_modfind; +extern const long __NR_modfnext; +extern const long __NR_modnext; +extern const long __NR_modstat; +extern const long __NR_nfstat; +extern const long __NR_nlm_syscall; +extern const long __NR_nlstat; +extern const long __NR_nmount; +extern const long __NR_nnpfs_syscall; +extern const long __NR_nstat; +extern const long __NR_pdfork; +extern const long __NR_pdgetpid; +extern const long __NR_pdkill; +extern const long __NR_posix_openpt; +extern const long __NR_procctl; +extern const long __NR_psynch_cvwait; +extern const long __NR_quota; +extern const long __NR_rctl_add_rule; +extern const long __NR_rctl_get_limits; +extern const long __NR_rctl_get_racct; +extern const long __NR_rctl_get_rules; +extern const long __NR_rctl_remove_rule; +extern const long __NR_recv; +extern const long __NR_rfork; +extern const long __NR_rtprio; +extern const long __NR_rtprio_thread; +extern const long __NR_send; +extern const long __NR_setaudit; +extern const long __NR_setcontext; +extern const long __NR_setfib; +extern const long __NR_sethostid; +extern const long __NR_setloginclass; +extern const long __NR_sigblock; +extern const long __NR_sigqueue; +extern const long __NR_sigsetmask; +extern const long __NR_sigstack; +extern const long __NR_sigvec; +extern const long __NR_sigwaitinfo; +extern const long __NR_sstk; +extern const long __NR_swapcontext; +extern const long __NR_thr_create; +extern const long __NR_thr_exit; +extern const long __NR_thr_kill; +extern const long __NR_thr_kill2; +extern const long __NR_thr_self; +extern const long __NR_thr_set_name; +extern const long __NR_thr_suspend; +extern const long __NR_thr_wake; +extern const long __NR_uuidgen; +extern const long __NR_vadvise; +extern const long __NR_wait; +extern const long __NR_wait6; +extern const long __NR_yield; +extern const long __NR_tfork; +extern const long __NR_thrsleep; +extern const long __NR_thrwakeup; +extern const long __NR_threxit; +extern const long __NR_thrsigdivert; +extern const long __NR_set_tcb; +extern const long __NR_get_tcb; +extern const long __NR_adjfreq; +extern const long __NR_getdtablecount; +extern const long __NR_getlogin_r; +extern const long __NR_getrtable; +extern const long __NR_getthrid; +extern const long __NR_kbind; +extern const long __NR_mquery; +extern const long __NR_obreak; +extern const long __NR_sendsyslog; +extern const long __NR_setrtable; +extern const long __NR_swapctl; +extern const long __NR_thrkill; +extern const long __NR_unveil; +extern const long __NR_mac_get_link; +extern const long __NR_mac_set_link; +extern const long __NR_mac_get_fd; +extern const long __NR_mac_get_file; +extern const long __NR_mac_get_proc; +extern const long __NR_mac_set_fd; +extern const long __NR_mac_get_pid; +extern const long __NR_mac_set_proc; +extern const long __NR_mac_set_file; +extern const long __NR_mac_execve; +extern const long __NR_acl_get_link; +extern const long __NR_sigwait_nocancel; +extern const long __NR_cap_rights_get; +extern const long __NR_semwait_signal; +extern const long __NR_acl_set_link; +extern const long __NR_acl_set_fd; +extern const long __NR_old_semwait_signal; +extern const long __NR_setugid; +extern const long __NR_acl_aclcheck_fd; +extern const long __NR_acl_get_fd; +extern const long __NR___sysctl; +extern const long __NR_mac_getfsstat; +extern const long __NR_mac_get_mount; +extern const long __NR_acl_delete_link; +extern const long __NR_mac_mount; +extern const long __NR_acl_get_file; +extern const long __NR_acl_aclcheck_file; +extern const long __NR_acl_delete_fd; +extern const long __NR_acl_aclcheck_link; +extern const long __NR___mac_syscall; +extern const long __NR_acl_set_file; +extern const long __NR_acl_delete_file; +extern const long __NR_syscall; +extern const long __NR__umtx_op; +extern const long __NR_semwait_signal_nocancel; +extern const long __NR_old_semwait_signal_nocancel; +extern const long __NR_sctp_peeloff; +extern const long __NR_sctp_generic_recvmsg; +extern const long __NR_sctp_generic_sendmsg; +extern const long __NR_sctp_generic_sendmsg_iov; +extern const long __NR_shared_region_map_and_slide_np; +extern const long __NR_guarded_open_dprotected_np; +extern const long __NR_stack_snapshot_with_config; COSMOPOLITAN_C_END_ #endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */ -#define __NR_exit SYMBOLIC(__NR_exit) -#define __NR_exit_group SYMBOLIC(__NR_exit_group) -#define __NR_read SYMBOLIC(__NR_read) -#define __NR_write SYMBOLIC(__NR_write) -#define __NR_open SYMBOLIC(__NR_open) -#define __NR_close SYMBOLIC(__NR_close) -#define __NR_stat SYMBOLIC(__NR_stat) -#define __NR_fstat SYMBOLIC(__NR_fstat) -#define __NR_lstat SYMBOLIC(__NR_lstat) -#define __NR_poll SYMBOLIC(__NR_poll) -#define __NR_ppoll SYMBOLIC(__NR_ppoll) -#define __NR_lseek SYMBOLIC(__NR_lseek) -#define __NR_mmap SYMBOLIC(__NR_mmap) -#define __NR_msync SYMBOLIC(__NR_msync) -#define __NR_mprotect SYMBOLIC(__NR_mprotect) -#define __NR_munmap SYMBOLIC(__NR_munmap) -#define __NR_sigaction SYMBOLIC(__NR_sigaction) -#define __NR_sigprocmask SYMBOLIC(__NR_sigprocmask) -#define __NR_ioctl SYMBOLIC(__NR_ioctl) -#define __NR_pread SYMBOLIC(__NR_pread) -#define __NR_pwrite SYMBOLIC(__NR_pwrite) -#define __NR_readv SYMBOLIC(__NR_readv) -#define __NR_writev SYMBOLIC(__NR_writev) -#define __NR_access SYMBOLIC(__NR_access) -#define __NR_pipe SYMBOLIC(__NR_pipe) -#define __NR_select SYMBOLIC(__NR_select) -#define __NR_pselect SYMBOLIC(__NR_pselect) -#define __NR_pselect6 SYMBOLIC(__NR_pselect6) -#define __NR_sched_yield SYMBOLIC(__NR_sched_yield) -#define __NR_mremap SYMBOLIC(__NR_mremap) -#define __NR_mincore SYMBOLIC(__NR_mincore) -#define __NR_madvise SYMBOLIC(__NR_madvise) -#define __NR_shmget SYMBOLIC(__NR_shmget) -#define __NR_shmat SYMBOLIC(__NR_shmat) -#define __NR_shmctl SYMBOLIC(__NR_shmctl) -#define __NR_dup SYMBOLIC(__NR_dup) -#define __NR_dup2 SYMBOLIC(__NR_dup2) -#define __NR_pause SYMBOLIC(__NR_pause) -#define __NR_nanosleep SYMBOLIC(__NR_nanosleep) -#define __NR_getitimer SYMBOLIC(__NR_getitimer) -#define __NR_setitimer SYMBOLIC(__NR_setitimer) -#define __NR_alarm SYMBOLIC(__NR_alarm) -#define __NR_getpid SYMBOLIC(__NR_getpid) -#define __NR_sendfile SYMBOLIC(__NR_sendfile) -#define __NR_socket SYMBOLIC(__NR_socket) -#define __NR_connect SYMBOLIC(__NR_connect) -#define __NR_accept SYMBOLIC(__NR_accept) -#define __NR_sendto SYMBOLIC(__NR_sendto) -#define __NR_recvfrom SYMBOLIC(__NR_recvfrom) -#define __NR_sendmsg SYMBOLIC(__NR_sendmsg) -#define __NR_recvmsg SYMBOLIC(__NR_recvmsg) -#define __NR_shutdown SYMBOLIC(__NR_shutdown) -#define __NR_bind SYMBOLIC(__NR_bind) -#define __NR_listen SYMBOLIC(__NR_listen) -#define __NR_getsockname SYMBOLIC(__NR_getsockname) -#define __NR_getpeername SYMBOLIC(__NR_getpeername) -#define __NR_socketpair SYMBOLIC(__NR_socketpair) -#define __NR_setsockopt SYMBOLIC(__NR_setsockopt) -#define __NR_getsockopt SYMBOLIC(__NR_getsockopt) -#define __NR_fork SYMBOLIC(__NR_fork) -#define __NR_vfork SYMBOLIC(__NR_vfork) -#define __NR_posix_spawn SYMBOLIC(__NR_posix_spawn) -#define __NR_execve LITERALLY(0x003b) -#define __NR_wait4 SYMBOLIC(__NR_wait4) -#define __NR_kill SYMBOLIC(__NR_kill) -#define __NR_killpg SYMBOLIC(__NR_killpg) -#define __NR_clone SYMBOLIC(__NR_clone) -#define __NR_tkill SYMBOLIC(__NR_tkill) -#define __NR_futex SYMBOLIC(__NR_futex) -#define __NR_set_robust_list SYMBOLIC(__NR_set_robust_list) -#define __NR_get_robust_list SYMBOLIC(__NR_get_robust_list) -#define __NR_uname SYMBOLIC(__NR_uname) -#define __NR_semget SYMBOLIC(__NR_semget) -#define __NR_semop SYMBOLIC(__NR_semop) -#define __NR_semctl SYMBOLIC(__NR_semctl) -#define __NR_shmdt SYMBOLIC(__NR_shmdt) -#define __NR_msgget SYMBOLIC(__NR_msgget) -#define __NR_msgsnd SYMBOLIC(__NR_msgsnd) -#define __NR_msgrcv SYMBOLIC(__NR_msgrcv) -#define __NR_msgctl SYMBOLIC(__NR_msgctl) -#define __NR_fcntl SYMBOLIC(__NR_fcntl) -#define __NR_flock SYMBOLIC(__NR_flock) -#define __NR_fsync SYMBOLIC(__NR_fsync) -#define __NR_fdatasync SYMBOLIC(__NR_fdatasync) -#define __NR_truncate SYMBOLIC(__NR_truncate) -#define __NR_ftruncate SYMBOLIC(__NR_ftruncate) -#define __NR_getcwd SYMBOLIC(__NR_getcwd) -#define __NR_chdir SYMBOLIC(__NR_chdir) -#define __NR_fchdir SYMBOLIC(__NR_fchdir) -#define __NR_rename SYMBOLIC(__NR_rename) -#define __NR_mkdir SYMBOLIC(__NR_mkdir) -#define __NR_rmdir SYMBOLIC(__NR_rmdir) -#define __NR_creat SYMBOLIC(__NR_creat) -#define __NR_link SYMBOLIC(__NR_link) -#define __NR_unlink SYMBOLIC(__NR_unlink) -#define __NR_symlink SYMBOLIC(__NR_symlink) -#define __NR_readlink SYMBOLIC(__NR_readlink) -#define __NR_chmod SYMBOLIC(__NR_chmod) -#define __NR_fchmod SYMBOLIC(__NR_fchmod) -#define __NR_chown SYMBOLIC(__NR_chown) -#define __NR_fchown SYMBOLIC(__NR_fchown) -#define __NR_lchown SYMBOLIC(__NR_lchown) -#define __NR_umask SYMBOLIC(__NR_umask) -#define __NR_gettimeofday SYMBOLIC(__NR_gettimeofday) -#define __NR_getrlimit SYMBOLIC(__NR_getrlimit) -#define __NR_getrusage SYMBOLIC(__NR_getrusage) -#define __NR_sysinfo SYMBOLIC(__NR_sysinfo) -#define __NR_times SYMBOLIC(__NR_times) -#define __NR_ptrace SYMBOLIC(__NR_ptrace) -#define __NR_syslog SYMBOLIC(__NR_syslog) -#define __NR_getuid SYMBOLIC(__NR_getuid) -#define __NR_getgid SYMBOLIC(__NR_getgid) -#define __NR_getppid SYMBOLIC(__NR_getppid) -#define __NR_getpgrp SYMBOLIC(__NR_getpgrp) -#define __NR_setsid SYMBOLIC(__NR_setsid) -#define __NR_getsid SYMBOLIC(__NR_getsid) -#define __NR_getpgid SYMBOLIC(__NR_getpgid) -#define __NR_setpgid SYMBOLIC(__NR_setpgid) -#define __NR_geteuid SYMBOLIC(__NR_geteuid) -#define __NR_getegid SYMBOLIC(__NR_getegid) -#define __NR_getgroups SYMBOLIC(__NR_getgroups) -#define __NR_setgroups SYMBOLIC(__NR_setgroups) -#define __NR_setreuid SYMBOLIC(__NR_setreuid) -#define __NR_setregid SYMBOLIC(__NR_setregid) -#define __NR_setuid SYMBOLIC(__NR_setuid) -#define __NR_setgid SYMBOLIC(__NR_setgid) -#define __NR_setresuid SYMBOLIC(__NR_setresuid) -#define __NR_setresgid SYMBOLIC(__NR_setresgid) -#define __NR_getresuid SYMBOLIC(__NR_getresuid) -#define __NR_getresgid SYMBOLIC(__NR_getresgid) -#define __NR_sigpending SYMBOLIC(__NR_sigpending) -#define __NR_sigsuspend SYMBOLIC(__NR_sigsuspend) -#define __NR_sigaltstack SYMBOLIC(__NR_sigaltstack) -#define __NR_mknod SYMBOLIC(__NR_mknod) -#define __NR_mknodat SYMBOLIC(__NR_mknodat) -#define __NR_mkfifo SYMBOLIC(__NR_mkfifo) -#define __NR_mkfifoat SYMBOLIC(__NR_mkfifoat) -#define __NR_statfs SYMBOLIC(__NR_statfs) -#define __NR_fstatfs SYMBOLIC(__NR_fstatfs) -#define __NR_getpriority SYMBOLIC(__NR_getpriority) -#define __NR_setpriority SYMBOLIC(__NR_setpriority) -#define __NR_mlock SYMBOLIC(__NR_mlock) -#define __NR_munlock SYMBOLIC(__NR_munlock) -#define __NR_mlockall SYMBOLIC(__NR_mlockall) -#define __NR_munlockall SYMBOLIC(__NR_munlockall) -#define __NR_setrlimit SYMBOLIC(__NR_setrlimit) -#define __NR_chroot SYMBOLIC(__NR_chroot) -#define __NR_sync SYMBOLIC(__NR_sync) -#define __NR_acct SYMBOLIC(__NR_acct) -#define __NR_settimeofday SYMBOLIC(__NR_settimeofday) -#define __NR_mount SYMBOLIC(__NR_mount) -#define __NR_reboot SYMBOLIC(__NR_reboot) -#define __NR_quotactl SYMBOLIC(__NR_quotactl) -#define __NR_setfsuid SYMBOLIC(__NR_setfsuid) -#define __NR_setfsgid SYMBOLIC(__NR_setfsgid) -#define __NR_capget SYMBOLIC(__NR_capget) -#define __NR_capset SYMBOLIC(__NR_capset) -#define __NR_sigtimedwait SYMBOLIC(__NR_sigtimedwait) -#define __NR_rt_sigqueueinfo SYMBOLIC(__NR_rt_sigqueueinfo) -#define __NR_personality SYMBOLIC(__NR_personality) -#define __NR_ustat SYMBOLIC(__NR_ustat) -#define __NR_sysfs SYMBOLIC(__NR_sysfs) -#define __NR_sched_setparam SYMBOLIC(__NR_sched_setparam) -#define __NR_sched_getparam SYMBOLIC(__NR_sched_getparam) -#define __NR_sched_setscheduler SYMBOLIC(__NR_sched_setscheduler) -#define __NR_sched_getscheduler SYMBOLIC(__NR_sched_getscheduler) -#define __NR_sched_get_priority_max SYMBOLIC(__NR_sched_get_priority_max) -#define __NR_sched_get_priority_min SYMBOLIC(__NR_sched_get_priority_min) -#define __NR_sched_rr_get_interval SYMBOLIC(__NR_sched_rr_get_interval) -#define __NR_vhangup SYMBOLIC(__NR_vhangup) -#define __NR_modify_ldt SYMBOLIC(__NR_modify_ldt) -#define __NR_pivot_root SYMBOLIC(__NR_pivot_root) -#define __NR__sysctl SYMBOLIC(__NR__sysctl) -#define __NR_prctl SYMBOLIC(__NR_prctl) -#define __NR_arch_prctl SYMBOLIC(__NR_arch_prctl) -#define __NR_adjtimex SYMBOLIC(__NR_adjtimex) -#define __NR_umount2 SYMBOLIC(__NR_umount2) -#define __NR_swapon SYMBOLIC(__NR_swapon) -#define __NR_swapoff SYMBOLIC(__NR_swapoff) -#define __NR_sethostname SYMBOLIC(__NR_sethostname) -#define __NR_setdomainname SYMBOLIC(__NR_setdomainname) -#define __NR_iopl SYMBOLIC(__NR_iopl) -#define __NR_ioperm SYMBOLIC(__NR_ioperm) -#define __NR_init_module SYMBOLIC(__NR_init_module) -#define __NR_delete_module SYMBOLIC(__NR_delete_module) -#define __NR_gettid SYMBOLIC(__NR_gettid) -#define __NR_readahead SYMBOLIC(__NR_readahead) -#define __NR_setxattr SYMBOLIC(__NR_setxattr) -#define __NR_fsetxattr SYMBOLIC(__NR_fsetxattr) -#define __NR_getxattr SYMBOLIC(__NR_getxattr) -#define __NR_fgetxattr SYMBOLIC(__NR_fgetxattr) -#define __NR_listxattr SYMBOLIC(__NR_listxattr) -#define __NR_flistxattr SYMBOLIC(__NR_flistxattr) -#define __NR_removexattr SYMBOLIC(__NR_removexattr) -#define __NR_fremovexattr SYMBOLIC(__NR_fremovexattr) -#define __NR_lsetxattr SYMBOLIC(__NR_lsetxattr) -#define __NR_lgetxattr SYMBOLIC(__NR_lgetxattr) -#define __NR_llistxattr SYMBOLIC(__NR_llistxattr) -#define __NR_lremovexattr SYMBOLIC(__NR_lremovexattr) -#define __NR_sched_setaffinity SYMBOLIC(__NR_sched_setaffinity) -#define __NR_sched_getaffinity SYMBOLIC(__NR_sched_getaffinity) -#define __NR_cpuset_getaffinity SYMBOLIC(__NR_cpuset_getaffinity) -#define __NR_cpuset_setaffinity SYMBOLIC(__NR_cpuset_setaffinity) -#define __NR_io_setup SYMBOLIC(__NR_io_setup) -#define __NR_io_destroy SYMBOLIC(__NR_io_destroy) -#define __NR_io_getevents SYMBOLIC(__NR_io_getevents) -#define __NR_io_submit SYMBOLIC(__NR_io_submit) -#define __NR_io_cancel SYMBOLIC(__NR_io_cancel) -#define __NR_lookup_dcookie SYMBOLIC(__NR_lookup_dcookie) -#define __NR_epoll_create SYMBOLIC(__NR_epoll_create) -#define __NR_epoll_wait SYMBOLIC(__NR_epoll_wait) -#define __NR_epoll_ctl SYMBOLIC(__NR_epoll_ctl) -#define __NR_getdents SYMBOLIC(__NR_getdents) -#define __NR_set_tid_address SYMBOLIC(__NR_set_tid_address) -#define __NR_restart_syscall SYMBOLIC(__NR_restart_syscall) -#define __NR_semtimedop SYMBOLIC(__NR_semtimedop) -#define __NR_fadvise SYMBOLIC(__NR_fadvise) -#define __NR_timer_create SYMBOLIC(__NR_timer_create) -#define __NR_timer_settime SYMBOLIC(__NR_timer_settime) -#define __NR_timer_gettime SYMBOLIC(__NR_timer_gettime) -#define __NR_timer_getoverrun SYMBOLIC(__NR_timer_getoverrun) -#define __NR_timer_delete SYMBOLIC(__NR_timer_delete) -#define __NR_clock_settime SYMBOLIC(__NR_clock_settime) -#define __NR_clock_gettime SYMBOLIC(__NR_clock_gettime) -#define __NR_clock_getres SYMBOLIC(__NR_clock_getres) -#define __NR_clock_nanosleep SYMBOLIC(__NR_clock_nanosleep) -#define __NR_tgkill SYMBOLIC(__NR_tgkill) -#define __NR_mbind SYMBOLIC(__NR_mbind) -#define __NR_set_mempolicy SYMBOLIC(__NR_set_mempolicy) -#define __NR_get_mempolicy SYMBOLIC(__NR_get_mempolicy) -#define __NR_mq_open SYMBOLIC(__NR_mq_open) -#define __NR_mq_unlink SYMBOLIC(__NR_mq_unlink) -#define __NR_mq_timedsend SYMBOLIC(__NR_mq_timedsend) -#define __NR_mq_timedreceive SYMBOLIC(__NR_mq_timedreceive) -#define __NR_mq_notify SYMBOLIC(__NR_mq_notify) -#define __NR_mq_getsetattr SYMBOLIC(__NR_mq_getsetattr) -#define __NR_kexec_load SYMBOLIC(__NR_kexec_load) -#define __NR_waitid SYMBOLIC(__NR_waitid) -#define __NR_add_key SYMBOLIC(__NR_add_key) -#define __NR_request_key SYMBOLIC(__NR_request_key) -#define __NR_keyctl SYMBOLIC(__NR_keyctl) -#define __NR_ioprio_set SYMBOLIC(__NR_ioprio_set) -#define __NR_ioprio_get SYMBOLIC(__NR_ioprio_get) -#define __NR_inotify_init SYMBOLIC(__NR_inotify_init) -#define __NR_inotify_add_watch SYMBOLIC(__NR_inotify_add_watch) -#define __NR_inotify_rm_watch SYMBOLIC(__NR_inotify_rm_watch) -#define __NR_openat SYMBOLIC(__NR_openat) -#define __NR_mkdirat SYMBOLIC(__NR_mkdirat) -#define __NR_fchownat SYMBOLIC(__NR_fchownat) -#define __NR_utime SYMBOLIC(__NR_utime) -#define __NR_utimes SYMBOLIC(__NR_utimes) -#define __NR_futimesat SYMBOLIC(__NR_futimesat) -#define __NR_futimes SYMBOLIC(__NR_futimes) -#define __NR_futimens SYMBOLIC(__NR_futimens) -#define __NR_fstatat SYMBOLIC(__NR_fstatat) -#define __NR_unlinkat SYMBOLIC(__NR_unlinkat) -#define __NR_renameat SYMBOLIC(__NR_renameat) -#define __NR_linkat SYMBOLIC(__NR_linkat) -#define __NR_symlinkat SYMBOLIC(__NR_symlinkat) -#define __NR_readlinkat SYMBOLIC(__NR_readlinkat) -#define __NR_fchmodat SYMBOLIC(__NR_fchmodat) -#define __NR_faccessat SYMBOLIC(__NR_faccessat) -#define __NR_unshare SYMBOLIC(__NR_unshare) -#define __NR_splice SYMBOLIC(__NR_splice) -#define __NR_tee SYMBOLIC(__NR_tee) -#define __NR_sync_file_range SYMBOLIC(__NR_sync_file_range) -#define __NR_vmsplice SYMBOLIC(__NR_vmsplice) -#define __NR_migrate_pages SYMBOLIC(__NR_migrate_pages) -#define __NR_move_pages SYMBOLIC(__NR_move_pages) -#define __NR_preadv SYMBOLIC(__NR_preadv) -#define __NR_pwritev SYMBOLIC(__NR_pwritev) -#define __NR_utimensat SYMBOLIC(__NR_utimensat) -#define __NR_fallocate SYMBOLIC(__NR_fallocate) -#define __NR_posix_fallocate SYMBOLIC(__NR_posix_fallocate) -#define __NR_accept4 SYMBOLIC(__NR_accept4) -#define __NR_dup3 SYMBOLIC(__NR_dup3) -#define __NR_pipe2 SYMBOLIC(__NR_pipe2) -#define __NR_epoll_pwait SYMBOLIC(__NR_epoll_pwait) -#define __NR_epoll_create1 SYMBOLIC(__NR_epoll_create1) -#define __NR_perf_event_open SYMBOLIC(__NR_perf_event_open) -#define __NR_inotify_init1 SYMBOLIC(__NR_inotify_init1) -#define __NR_rt_tgsigqueueinfo SYMBOLIC(__NR_rt_tgsigqueueinfo) -#define __NR_signalfd SYMBOLIC(__NR_signalfd) -#define __NR_signalfd4 SYMBOLIC(__NR_signalfd4) -#define __NR_eventfd SYMBOLIC(__NR_eventfd) -#define __NR_eventfd2 SYMBOLIC(__NR_eventfd2) -#define __NR_timerfd_create SYMBOLIC(__NR_timerfd_create) -#define __NR_timerfd_settime SYMBOLIC(__NR_timerfd_settime) -#define __NR_timerfd_gettime SYMBOLIC(__NR_timerfd_gettime) -#define __NR_recvmmsg SYMBOLIC(__NR_recvmmsg) -#define __NR_fanotify_init SYMBOLIC(__NR_fanotify_init) -#define __NR_fanotify_mark SYMBOLIC(__NR_fanotify_mark) -#define __NR_prlimit SYMBOLIC(__NR_prlimit) -#define __NR_name_to_handle_at SYMBOLIC(__NR_name_to_handle_at) -#define __NR_open_by_handle_at SYMBOLIC(__NR_open_by_handle_at) -#define __NR_clock_adjtime SYMBOLIC(__NR_clock_adjtime) -#define __NR_syncfs SYMBOLIC(__NR_syncfs) -#define __NR_sendmmsg SYMBOLIC(__NR_sendmmsg) -#define __NR_setns SYMBOLIC(__NR_setns) -#define __NR_getcpu SYMBOLIC(__NR_getcpu) -#define __NR_process_vm_readv SYMBOLIC(__NR_process_vm_readv) -#define __NR_process_vm_writev SYMBOLIC(__NR_process_vm_writev) -#define __NR_kcmp SYMBOLIC(__NR_kcmp) -#define __NR_finit_module SYMBOLIC(__NR_finit_module) -#define __NR_sched_setattr SYMBOLIC(__NR_sched_setattr) -#define __NR_sched_getattr SYMBOLIC(__NR_sched_getattr) -#define __NR_renameat2 SYMBOLIC(__NR_renameat2) -#define __NR_seccomp SYMBOLIC(__NR_seccomp) -#define __NR_getrandom SYMBOLIC(__NR_getrandom) -#define __NR_memfd_create SYMBOLIC(__NR_memfd_create) -#define __NR_kexec_file_load SYMBOLIC(__NR_kexec_file_load) -#define __NR_bpf SYMBOLIC(__NR_bpf) -#define __NR_execveat SYMBOLIC(__NR_execveat) -#define __NR_userfaultfd SYMBOLIC(__NR_userfaultfd) -#define __NR_membarrier SYMBOLIC(__NR_membarrier) -#define __NR_mlock2 SYMBOLIC(__NR_mlock2) -#define __NR_copy_file_range SYMBOLIC(__NR_copy_file_range) -#define __NR_preadv2 SYMBOLIC(__NR_preadv2) -#define __NR_pwritev2 SYMBOLIC(__NR_pwritev2) -#define __NR_pkey_mprotect SYMBOLIC(__NR_pkey_mprotect) -#define __NR_pkey_alloc SYMBOLIC(__NR_pkey_alloc) -#define __NR_pkey_free SYMBOLIC(__NR_pkey_free) -#define __NR_statx SYMBOLIC(__NR_statx) -#define __NR_io_pgetevents SYMBOLIC(__NR_io_pgetevents) -#define __NR_rseq SYMBOLIC(__NR_rseq) -#define __NR_pidfd_send_signal SYMBOLIC(__NR_pidfd_send_signal) -#define __NR_io_uring_setup SYMBOLIC(__NR_io_uring_setup) -#define __NR_io_uring_enter SYMBOLIC(__NR_io_uring_enter) -#define __NR_pledge SYMBOLIC(__NR_pledge) -#define __NR_msyscall SYMBOLIC(__NR_msyscall) -#define __NR_ktrace SYMBOLIC(__NR_ktrace) +#define __NR_exit SYMBOLIC(__NR_exit) +#define __NR_exit_group SYMBOLIC(__NR_exit_group) +#define __NR_read SYMBOLIC(__NR_read) +#define __NR_write SYMBOLIC(__NR_write) +#define __NR_open SYMBOLIC(__NR_open) +#define __NR_close SYMBOLIC(__NR_close) +#define __NR_stat SYMBOLIC(__NR_stat) +#define __NR_fstat SYMBOLIC(__NR_fstat) +#define __NR_lstat SYMBOLIC(__NR_lstat) +#define __NR_poll SYMBOLIC(__NR_poll) +#define __NR_ppoll SYMBOLIC(__NR_ppoll) +#define __NR_lseek SYMBOLIC(__NR_lseek) +#define __NR_mmap SYMBOLIC(__NR_mmap) +#define __NR_msync SYMBOLIC(__NR_msync) +#define __NR_mprotect SYMBOLIC(__NR_mprotect) +#define __NR_munmap SYMBOLIC(__NR_munmap) +#define __NR_sigaction SYMBOLIC(__NR_sigaction) +#define __NR_sigprocmask SYMBOLIC(__NR_sigprocmask) +#define __NR_ioctl SYMBOLIC(__NR_ioctl) +#define __NR_pread SYMBOLIC(__NR_pread) +#define __NR_pwrite SYMBOLIC(__NR_pwrite) +#define __NR_readv SYMBOLIC(__NR_readv) +#define __NR_writev SYMBOLIC(__NR_writev) +#define __NR_access SYMBOLIC(__NR_access) +#define __NR_pipe SYMBOLIC(__NR_pipe) +#define __NR_select SYMBOLIC(__NR_select) +#define __NR_pselect SYMBOLIC(__NR_pselect) +#define __NR_pselect6 SYMBOLIC(__NR_pselect6) +#define __NR_sched_yield SYMBOLIC(__NR_sched_yield) +#define __NR_mremap SYMBOLIC(__NR_mremap) +#define __NR_mincore SYMBOLIC(__NR_mincore) +#define __NR_madvise SYMBOLIC(__NR_madvise) +#define __NR_shmget SYMBOLIC(__NR_shmget) +#define __NR_shmat SYMBOLIC(__NR_shmat) +#define __NR_shmctl SYMBOLIC(__NR_shmctl) +#define __NR_dup SYMBOLIC(__NR_dup) +#define __NR_dup2 SYMBOLIC(__NR_dup2) +#define __NR_pause SYMBOLIC(__NR_pause) +#define __NR_nanosleep SYMBOLIC(__NR_nanosleep) +#define __NR_getitimer SYMBOLIC(__NR_getitimer) +#define __NR_setitimer SYMBOLIC(__NR_setitimer) +#define __NR_alarm SYMBOLIC(__NR_alarm) +#define __NR_getpid SYMBOLIC(__NR_getpid) +#define __NR_sendfile SYMBOLIC(__NR_sendfile) +#define __NR_socket SYMBOLIC(__NR_socket) +#define __NR_connect SYMBOLIC(__NR_connect) +#define __NR_accept SYMBOLIC(__NR_accept) +#define __NR_sendto SYMBOLIC(__NR_sendto) +#define __NR_recvfrom SYMBOLIC(__NR_recvfrom) +#define __NR_sendmsg SYMBOLIC(__NR_sendmsg) +#define __NR_recvmsg SYMBOLIC(__NR_recvmsg) +#define __NR_shutdown SYMBOLIC(__NR_shutdown) +#define __NR_bind SYMBOLIC(__NR_bind) +#define __NR_listen SYMBOLIC(__NR_listen) +#define __NR_getsockname SYMBOLIC(__NR_getsockname) +#define __NR_getpeername SYMBOLIC(__NR_getpeername) +#define __NR_socketpair SYMBOLIC(__NR_socketpair) +#define __NR_setsockopt SYMBOLIC(__NR_setsockopt) +#define __NR_getsockopt SYMBOLIC(__NR_getsockopt) +#define __NR_fork SYMBOLIC(__NR_fork) +#define __NR_vfork SYMBOLIC(__NR_vfork) +#define __NR_posix_spawn SYMBOLIC(__NR_posix_spawn) +#define __NR_execve LITERALLY(0x003b) +#define __NR_wait4 SYMBOLIC(__NR_wait4) +#define __NR_kill SYMBOLIC(__NR_kill) +#define __NR_killpg SYMBOLIC(__NR_killpg) +#define __NR_clone SYMBOLIC(__NR_clone) +#define __NR_tkill SYMBOLIC(__NR_tkill) +#define __NR_futex SYMBOLIC(__NR_futex) +#define __NR_set_robust_list SYMBOLIC(__NR_set_robust_list) +#define __NR_get_robust_list SYMBOLIC(__NR_get_robust_list) +#define __NR_uname SYMBOLIC(__NR_uname) +#define __NR_semget SYMBOLIC(__NR_semget) +#define __NR_semop SYMBOLIC(__NR_semop) +#define __NR_semctl SYMBOLIC(__NR_semctl) +#define __NR_shmdt SYMBOLIC(__NR_shmdt) +#define __NR_msgget SYMBOLIC(__NR_msgget) +#define __NR_msgsnd SYMBOLIC(__NR_msgsnd) +#define __NR_msgrcv SYMBOLIC(__NR_msgrcv) +#define __NR_msgctl SYMBOLIC(__NR_msgctl) +#define __NR_fcntl SYMBOLIC(__NR_fcntl) +#define __NR_flock SYMBOLIC(__NR_flock) +#define __NR_fsync SYMBOLIC(__NR_fsync) +#define __NR_fdatasync SYMBOLIC(__NR_fdatasync) +#define __NR_truncate SYMBOLIC(__NR_truncate) +#define __NR_ftruncate SYMBOLIC(__NR_ftruncate) +#define __NR_getcwd SYMBOLIC(__NR_getcwd) +#define __NR_chdir SYMBOLIC(__NR_chdir) +#define __NR_fchdir SYMBOLIC(__NR_fchdir) +#define __NR_rename SYMBOLIC(__NR_rename) +#define __NR_mkdir SYMBOLIC(__NR_mkdir) +#define __NR_rmdir SYMBOLIC(__NR_rmdir) +#define __NR_creat SYMBOLIC(__NR_creat) +#define __NR_link SYMBOLIC(__NR_link) +#define __NR_unlink SYMBOLIC(__NR_unlink) +#define __NR_symlink SYMBOLIC(__NR_symlink) +#define __NR_readlink SYMBOLIC(__NR_readlink) +#define __NR_chmod SYMBOLIC(__NR_chmod) +#define __NR_fchmod SYMBOLIC(__NR_fchmod) +#define __NR_chown SYMBOLIC(__NR_chown) +#define __NR_fchown SYMBOLIC(__NR_fchown) +#define __NR_lchown SYMBOLIC(__NR_lchown) +#define __NR_umask SYMBOLIC(__NR_umask) +#define __NR_gettimeofday SYMBOLIC(__NR_gettimeofday) +#define __NR_getrlimit SYMBOLIC(__NR_getrlimit) +#define __NR_getrusage SYMBOLIC(__NR_getrusage) +#define __NR_sysinfo SYMBOLIC(__NR_sysinfo) +#define __NR_times SYMBOLIC(__NR_times) +#define __NR_ptrace SYMBOLIC(__NR_ptrace) +#define __NR_syslog SYMBOLIC(__NR_syslog) +#define __NR_getuid SYMBOLIC(__NR_getuid) +#define __NR_getgid SYMBOLIC(__NR_getgid) +#define __NR_getppid SYMBOLIC(__NR_getppid) +#define __NR_getpgrp SYMBOLIC(__NR_getpgrp) +#define __NR_setsid SYMBOLIC(__NR_setsid) +#define __NR_getsid SYMBOLIC(__NR_getsid) +#define __NR_getpgid SYMBOLIC(__NR_getpgid) +#define __NR_setpgid SYMBOLIC(__NR_setpgid) +#define __NR_geteuid SYMBOLIC(__NR_geteuid) +#define __NR_getegid SYMBOLIC(__NR_getegid) +#define __NR_getgroups SYMBOLIC(__NR_getgroups) +#define __NR_setgroups SYMBOLIC(__NR_setgroups) +#define __NR_setreuid SYMBOLIC(__NR_setreuid) +#define __NR_setregid SYMBOLIC(__NR_setregid) +#define __NR_setuid SYMBOLIC(__NR_setuid) +#define __NR_setgid SYMBOLIC(__NR_setgid) +#define __NR_setresuid SYMBOLIC(__NR_setresuid) +#define __NR_setresgid SYMBOLIC(__NR_setresgid) +#define __NR_getresuid SYMBOLIC(__NR_getresuid) +#define __NR_getresgid SYMBOLIC(__NR_getresgid) +#define __NR_sigpending SYMBOLIC(__NR_sigpending) +#define __NR_sigsuspend SYMBOLIC(__NR_sigsuspend) +#define __NR_sigaltstack SYMBOLIC(__NR_sigaltstack) +#define __NR_mknod SYMBOLIC(__NR_mknod) +#define __NR_mknodat SYMBOLIC(__NR_mknodat) +#define __NR_mkfifo SYMBOLIC(__NR_mkfifo) +#define __NR_mkfifoat SYMBOLIC(__NR_mkfifoat) +#define __NR_statfs SYMBOLIC(__NR_statfs) +#define __NR_fstatfs SYMBOLIC(__NR_fstatfs) +#define __NR_getpriority SYMBOLIC(__NR_getpriority) +#define __NR_setpriority SYMBOLIC(__NR_setpriority) +#define __NR_mlock SYMBOLIC(__NR_mlock) +#define __NR_munlock SYMBOLIC(__NR_munlock) +#define __NR_mlockall SYMBOLIC(__NR_mlockall) +#define __NR_munlockall SYMBOLIC(__NR_munlockall) +#define __NR_setrlimit SYMBOLIC(__NR_setrlimit) +#define __NR_chroot SYMBOLIC(__NR_chroot) +#define __NR_sync SYMBOLIC(__NR_sync) +#define __NR_acct SYMBOLIC(__NR_acct) +#define __NR_settimeofday SYMBOLIC(__NR_settimeofday) +#define __NR_mount SYMBOLIC(__NR_mount) +#define __NR_reboot SYMBOLIC(__NR_reboot) +#define __NR_quotactl SYMBOLIC(__NR_quotactl) +#define __NR_setfsuid SYMBOLIC(__NR_setfsuid) +#define __NR_setfsgid SYMBOLIC(__NR_setfsgid) +#define __NR_capget SYMBOLIC(__NR_capget) +#define __NR_capset SYMBOLIC(__NR_capset) +#define __NR_sigtimedwait SYMBOLIC(__NR_sigtimedwait) +#define __NR_rt_sigqueueinfo SYMBOLIC(__NR_rt_sigqueueinfo) +#define __NR_personality SYMBOLIC(__NR_personality) +#define __NR_ustat SYMBOLIC(__NR_ustat) +#define __NR_sysfs SYMBOLIC(__NR_sysfs) +#define __NR_sched_setparam SYMBOLIC(__NR_sched_setparam) +#define __NR_sched_getparam SYMBOLIC(__NR_sched_getparam) +#define __NR_sched_setscheduler SYMBOLIC(__NR_sched_setscheduler) +#define __NR_sched_getscheduler SYMBOLIC(__NR_sched_getscheduler) +#define __NR_sched_get_priority_max SYMBOLIC(__NR_sched_get_priority_max) +#define __NR_sched_get_priority_min SYMBOLIC(__NR_sched_get_priority_min) +#define __NR_sched_rr_get_interval SYMBOLIC(__NR_sched_rr_get_interval) +#define __NR_vhangup SYMBOLIC(__NR_vhangup) +#define __NR_modify_ldt SYMBOLIC(__NR_modify_ldt) +#define __NR_pivot_root SYMBOLIC(__NR_pivot_root) +#define __NR__sysctl SYMBOLIC(__NR__sysctl) +#define __NR_prctl SYMBOLIC(__NR_prctl) +#define __NR_arch_prctl SYMBOLIC(__NR_arch_prctl) +#define __NR_adjtimex SYMBOLIC(__NR_adjtimex) +#define __NR_umount2 SYMBOLIC(__NR_umount2) +#define __NR_swapon SYMBOLIC(__NR_swapon) +#define __NR_swapoff SYMBOLIC(__NR_swapoff) +#define __NR_sethostname SYMBOLIC(__NR_sethostname) +#define __NR_setdomainname SYMBOLIC(__NR_setdomainname) +#define __NR_iopl SYMBOLIC(__NR_iopl) +#define __NR_ioperm SYMBOLIC(__NR_ioperm) +#define __NR_init_module SYMBOLIC(__NR_init_module) +#define __NR_delete_module SYMBOLIC(__NR_delete_module) +#define __NR_gettid SYMBOLIC(__NR_gettid) +#define __NR_readahead SYMBOLIC(__NR_readahead) +#define __NR_setxattr SYMBOLIC(__NR_setxattr) +#define __NR_fsetxattr SYMBOLIC(__NR_fsetxattr) +#define __NR_getxattr SYMBOLIC(__NR_getxattr) +#define __NR_fgetxattr SYMBOLIC(__NR_fgetxattr) +#define __NR_listxattr SYMBOLIC(__NR_listxattr) +#define __NR_flistxattr SYMBOLIC(__NR_flistxattr) +#define __NR_removexattr SYMBOLIC(__NR_removexattr) +#define __NR_fremovexattr SYMBOLIC(__NR_fremovexattr) +#define __NR_lsetxattr SYMBOLIC(__NR_lsetxattr) +#define __NR_lgetxattr SYMBOLIC(__NR_lgetxattr) +#define __NR_llistxattr SYMBOLIC(__NR_llistxattr) +#define __NR_lremovexattr SYMBOLIC(__NR_lremovexattr) +#define __NR_sched_setaffinity SYMBOLIC(__NR_sched_setaffinity) +#define __NR_sched_getaffinity SYMBOLIC(__NR_sched_getaffinity) +#define __NR_cpuset_getaffinity SYMBOLIC(__NR_cpuset_getaffinity) +#define __NR_cpuset_setaffinity SYMBOLIC(__NR_cpuset_setaffinity) +#define __NR_io_setup SYMBOLIC(__NR_io_setup) +#define __NR_io_destroy SYMBOLIC(__NR_io_destroy) +#define __NR_io_getevents SYMBOLIC(__NR_io_getevents) +#define __NR_io_submit SYMBOLIC(__NR_io_submit) +#define __NR_io_cancel SYMBOLIC(__NR_io_cancel) +#define __NR_lookup_dcookie SYMBOLIC(__NR_lookup_dcookie) +#define __NR_epoll_create SYMBOLIC(__NR_epoll_create) +#define __NR_epoll_wait SYMBOLIC(__NR_epoll_wait) +#define __NR_epoll_ctl SYMBOLIC(__NR_epoll_ctl) +#define __NR_getdents SYMBOLIC(__NR_getdents) +#define __NR_set_tid_address SYMBOLIC(__NR_set_tid_address) +#define __NR_restart_syscall SYMBOLIC(__NR_restart_syscall) +#define __NR_semtimedop SYMBOLIC(__NR_semtimedop) +#define __NR_fadvise SYMBOLIC(__NR_fadvise) +#define __NR_timer_create SYMBOLIC(__NR_timer_create) +#define __NR_timer_settime SYMBOLIC(__NR_timer_settime) +#define __NR_timer_gettime SYMBOLIC(__NR_timer_gettime) +#define __NR_timer_getoverrun SYMBOLIC(__NR_timer_getoverrun) +#define __NR_timer_delete SYMBOLIC(__NR_timer_delete) +#define __NR_clock_settime SYMBOLIC(__NR_clock_settime) +#define __NR_clock_gettime SYMBOLIC(__NR_clock_gettime) +#define __NR_clock_getres SYMBOLIC(__NR_clock_getres) +#define __NR_clock_nanosleep SYMBOLIC(__NR_clock_nanosleep) +#define __NR_tgkill SYMBOLIC(__NR_tgkill) +#define __NR_mbind SYMBOLIC(__NR_mbind) +#define __NR_set_mempolicy SYMBOLIC(__NR_set_mempolicy) +#define __NR_get_mempolicy SYMBOLIC(__NR_get_mempolicy) +#define __NR_mq_open SYMBOLIC(__NR_mq_open) +#define __NR_mq_unlink SYMBOLIC(__NR_mq_unlink) +#define __NR_mq_timedsend SYMBOLIC(__NR_mq_timedsend) +#define __NR_mq_timedreceive SYMBOLIC(__NR_mq_timedreceive) +#define __NR_mq_notify SYMBOLIC(__NR_mq_notify) +#define __NR_mq_getsetattr SYMBOLIC(__NR_mq_getsetattr) +#define __NR_kexec_load SYMBOLIC(__NR_kexec_load) +#define __NR_waitid SYMBOLIC(__NR_waitid) +#define __NR_add_key SYMBOLIC(__NR_add_key) +#define __NR_request_key SYMBOLIC(__NR_request_key) +#define __NR_keyctl SYMBOLIC(__NR_keyctl) +#define __NR_ioprio_set SYMBOLIC(__NR_ioprio_set) +#define __NR_ioprio_get SYMBOLIC(__NR_ioprio_get) +#define __NR_inotify_init SYMBOLIC(__NR_inotify_init) +#define __NR_inotify_add_watch SYMBOLIC(__NR_inotify_add_watch) +#define __NR_inotify_rm_watch SYMBOLIC(__NR_inotify_rm_watch) +#define __NR_openat SYMBOLIC(__NR_openat) +#define __NR_mkdirat SYMBOLIC(__NR_mkdirat) +#define __NR_fchownat SYMBOLIC(__NR_fchownat) +#define __NR_utime SYMBOLIC(__NR_utime) +#define __NR_utimes SYMBOLIC(__NR_utimes) +#define __NR_futimesat SYMBOLIC(__NR_futimesat) +#define __NR_futimes SYMBOLIC(__NR_futimes) +#define __NR_futimens SYMBOLIC(__NR_futimens) +#define __NR_fstatat SYMBOLIC(__NR_fstatat) +#define __NR_unlinkat SYMBOLIC(__NR_unlinkat) +#define __NR_renameat SYMBOLIC(__NR_renameat) +#define __NR_linkat SYMBOLIC(__NR_linkat) +#define __NR_symlinkat SYMBOLIC(__NR_symlinkat) +#define __NR_readlinkat SYMBOLIC(__NR_readlinkat) +#define __NR_fchmodat SYMBOLIC(__NR_fchmodat) +#define __NR_faccessat SYMBOLIC(__NR_faccessat) +#define __NR_unshare SYMBOLIC(__NR_unshare) +#define __NR_splice SYMBOLIC(__NR_splice) +#define __NR_tee SYMBOLIC(__NR_tee) +#define __NR_sync_file_range SYMBOLIC(__NR_sync_file_range) +#define __NR_vmsplice SYMBOLIC(__NR_vmsplice) +#define __NR_migrate_pages SYMBOLIC(__NR_migrate_pages) +#define __NR_move_pages SYMBOLIC(__NR_move_pages) +#define __NR_preadv SYMBOLIC(__NR_preadv) +#define __NR_pwritev SYMBOLIC(__NR_pwritev) +#define __NR_utimensat SYMBOLIC(__NR_utimensat) +#define __NR_fallocate SYMBOLIC(__NR_fallocate) +#define __NR_posix_fallocate SYMBOLIC(__NR_posix_fallocate) +#define __NR_accept4 SYMBOLIC(__NR_accept4) +#define __NR_dup3 SYMBOLIC(__NR_dup3) +#define __NR_pipe2 SYMBOLIC(__NR_pipe2) +#define __NR_epoll_pwait SYMBOLIC(__NR_epoll_pwait) +#define __NR_epoll_create1 SYMBOLIC(__NR_epoll_create1) +#define __NR_perf_event_open SYMBOLIC(__NR_perf_event_open) +#define __NR_inotify_init1 SYMBOLIC(__NR_inotify_init1) +#define __NR_rt_tgsigqueueinfo SYMBOLIC(__NR_rt_tgsigqueueinfo) +#define __NR_signalfd SYMBOLIC(__NR_signalfd) +#define __NR_signalfd4 SYMBOLIC(__NR_signalfd4) +#define __NR_eventfd SYMBOLIC(__NR_eventfd) +#define __NR_eventfd2 SYMBOLIC(__NR_eventfd2) +#define __NR_timerfd_create SYMBOLIC(__NR_timerfd_create) +#define __NR_timerfd_settime SYMBOLIC(__NR_timerfd_settime) +#define __NR_timerfd_gettime SYMBOLIC(__NR_timerfd_gettime) +#define __NR_recvmmsg SYMBOLIC(__NR_recvmmsg) +#define __NR_fanotify_init SYMBOLIC(__NR_fanotify_init) +#define __NR_fanotify_mark SYMBOLIC(__NR_fanotify_mark) +#define __NR_prlimit SYMBOLIC(__NR_prlimit) +#define __NR_name_to_handle_at SYMBOLIC(__NR_name_to_handle_at) +#define __NR_open_by_handle_at SYMBOLIC(__NR_open_by_handle_at) +#define __NR_clock_adjtime SYMBOLIC(__NR_clock_adjtime) +#define __NR_syncfs SYMBOLIC(__NR_syncfs) +#define __NR_sendmmsg SYMBOLIC(__NR_sendmmsg) +#define __NR_setns SYMBOLIC(__NR_setns) +#define __NR_getcpu SYMBOLIC(__NR_getcpu) +#define __NR_process_vm_readv SYMBOLIC(__NR_process_vm_readv) +#define __NR_process_vm_writev SYMBOLIC(__NR_process_vm_writev) +#define __NR_kcmp SYMBOLIC(__NR_kcmp) +#define __NR_finit_module SYMBOLIC(__NR_finit_module) +#define __NR_sched_setattr SYMBOLIC(__NR_sched_setattr) +#define __NR_sched_getattr SYMBOLIC(__NR_sched_getattr) +#define __NR_renameat2 SYMBOLIC(__NR_renameat2) +#define __NR_seccomp SYMBOLIC(__NR_seccomp) +#define __NR_getrandom SYMBOLIC(__NR_getrandom) +#define __NR_memfd_create SYMBOLIC(__NR_memfd_create) +#define __NR_kexec_file_load SYMBOLIC(__NR_kexec_file_load) +#define __NR_bpf SYMBOLIC(__NR_bpf) +#define __NR_execveat SYMBOLIC(__NR_execveat) +#define __NR_userfaultfd SYMBOLIC(__NR_userfaultfd) +#define __NR_membarrier SYMBOLIC(__NR_membarrier) +#define __NR_mlock2 SYMBOLIC(__NR_mlock2) +#define __NR_copy_file_range SYMBOLIC(__NR_copy_file_range) +#define __NR_preadv2 SYMBOLIC(__NR_preadv2) +#define __NR_pwritev2 SYMBOLIC(__NR_pwritev2) +#define __NR_pkey_mprotect SYMBOLIC(__NR_pkey_mprotect) +#define __NR_pkey_alloc SYMBOLIC(__NR_pkey_alloc) +#define __NR_pkey_free SYMBOLIC(__NR_pkey_free) +#define __NR_statx SYMBOLIC(__NR_statx) +#define __NR_io_pgetevents SYMBOLIC(__NR_io_pgetevents) +#define __NR_rseq SYMBOLIC(__NR_rseq) +#define __NR_pidfd_send_signal SYMBOLIC(__NR_pidfd_send_signal) +#define __NR_io_uring_setup SYMBOLIC(__NR_io_uring_setup) +#define __NR_io_uring_enter SYMBOLIC(__NR_io_uring_enter) +#define __NR_pledge SYMBOLIC(__NR_pledge) +#define __NR_msyscall SYMBOLIC(__NR_msyscall) +#define __NR_ktrace SYMBOLIC(__NR_ktrace) +#define __NR_kqueue SYMBOLIC(__NR_kqueue) +#define __NR_kevent SYMBOLIC(__NR_kevent) +#define __NR_revoke SYMBOLIC(__NR_revoke) +#define __NR_setlogin SYMBOLIC(__NR_setlogin) +#define __NR_getfh SYMBOLIC(__NR_getfh) +#define __NR_chflags SYMBOLIC(__NR_chflags) +#define __NR_getfsstat SYMBOLIC(__NR_getfsstat) +#define __NR_nfssvc SYMBOLIC(__NR_nfssvc) +#define __NR_adjtime SYMBOLIC(__NR_adjtime) +#define __NR_fchflags SYMBOLIC(__NR_fchflags) +#define __NR_seteuid SYMBOLIC(__NR_seteuid) +#define __NR_setegid SYMBOLIC(__NR_setegid) +#define __NR_fpathconf SYMBOLIC(__NR_fpathconf) +#define __NR_fhopen SYMBOLIC(__NR_fhopen) +#define __NR_unmount SYMBOLIC(__NR_unmount) +#define __NR_issetugid SYMBOLIC(__NR_issetugid) +#define __NR_minherit SYMBOLIC(__NR_minherit) +#define __NR_pathconf SYMBOLIC(__NR_pathconf) +#define __NR_sysctl SYMBOLIC(__NR_sysctl) +#define __NR_ntp_adjtime SYMBOLIC(__NR_ntp_adjtime) +#define __NR_ntp_gettime SYMBOLIC(__NR_ntp_gettime) +#define __NR_shm_unlink SYMBOLIC(__NR_shm_unlink) +#define __NR_shm_open SYMBOLIC(__NR_shm_open) +#define __NR_aio_read SYMBOLIC(__NR_aio_read) +#define __NR_aio_suspend SYMBOLIC(__NR_aio_suspend) +#define __NR_aio_cancel SYMBOLIC(__NR_aio_cancel) +#define __NR_aio_fsync SYMBOLIC(__NR_aio_fsync) +#define __NR_aio_error SYMBOLIC(__NR_aio_error) +#define __NR_aio_return SYMBOLIC(__NR_aio_return) +#define __NR_aio_write SYMBOLIC(__NR_aio_write) +#define __NR_aio_waitcomplete SYMBOLIC(__NR_aio_waitcomplete) +#define __NR_aio_suspend_nocancel SYMBOLIC(__NR_aio_suspend_nocancel) +#define __NR_aio_mlock SYMBOLIC(__NR_aio_mlock) +#define __NR_sigwait SYMBOLIC(__NR_sigwait) +#define __NR_undelete SYMBOLIC(__NR_undelete) +#define __NR_getlogin SYMBOLIC(__NR_getlogin) +#define __NR_getdtablesize SYMBOLIC(__NR_getdtablesize) +#define __NR_setauid SYMBOLIC(__NR_setauid) +#define __NR_audit SYMBOLIC(__NR_audit) +#define __NR_auditctl SYMBOLIC(__NR_auditctl) +#define __NR_getaudit_addr SYMBOLIC(__NR_getaudit_addr) +#define __NR_getdirentries SYMBOLIC(__NR_getdirentries) +#define __NR_lio_listio SYMBOLIC(__NR_lio_listio) +#define __NR_setaudit_addr SYMBOLIC(__NR_setaudit_addr) +#define __NR_getauid SYMBOLIC(__NR_getauid) +#define __NR_semsys SYMBOLIC(__NR_semsys) +#define __NR_auditon SYMBOLIC(__NR_auditon) +#define __NR_msgsys SYMBOLIC(__NR_msgsys) +#define __NR_shmsys SYMBOLIC(__NR_shmsys) +#define __NR_fhstat SYMBOLIC(__NR_fhstat) +#define __NR_chflagsat SYMBOLIC(__NR_chflagsat) +#define __NR_profil SYMBOLIC(__NR_profil) +#define __NR_fhstatfs SYMBOLIC(__NR_fhstatfs) +#define __NR_utrace SYMBOLIC(__NR_utrace) +#define __NR_closefrom SYMBOLIC(__NR_closefrom) +#define __NR_pthread_markcancel SYMBOLIC(__NR_pthread_markcancel) +#define __NR_pthread_kill SYMBOLIC(__NR_pthread_kill) +#define __NR_pthread_fchdir SYMBOLIC(__NR_pthread_fchdir) +#define __NR_pthread_sigmask SYMBOLIC(__NR_pthread_sigmask) +#define __NR_pthread_chdir SYMBOLIC(__NR_pthread_chdir) +#define __NR_pthread_canceled SYMBOLIC(__NR_pthread_canceled) +#define __NR_disable_threadsignal SYMBOLIC(__NR_disable_threadsignal) +#define __NR_abort_with_payload SYMBOLIC(__NR_abort_with_payload) +#define __NR_accept_nocancel SYMBOLIC(__NR_accept_nocancel) +#define __NR_access_extended SYMBOLIC(__NR_access_extended) +#define __NR_audit_session_join SYMBOLIC(__NR_audit_session_join) +#define __NR_audit_session_port SYMBOLIC(__NR_audit_session_port) +#define __NR_audit_session_self SYMBOLIC(__NR_audit_session_self) +#define __NR_bsdthread_ctl SYMBOLIC(__NR_bsdthread_ctl) +#define __NR_bsdthread_register SYMBOLIC(__NR_bsdthread_register) +#define __NR_bsdthread_terminate SYMBOLIC(__NR_bsdthread_terminate) +#define __NR_change_fdguard_np SYMBOLIC(__NR_change_fdguard_np) +#define __NR_chmod_extended SYMBOLIC(__NR_chmod_extended) +#define __NR_clonefileat SYMBOLIC(__NR_clonefileat) +#define __NR_close_nocancel SYMBOLIC(__NR_close_nocancel) +#define __NR_coalition SYMBOLIC(__NR_coalition) +#define __NR_coalition_info SYMBOLIC(__NR_coalition_info) +#define __NR_connect_nocancel SYMBOLIC(__NR_connect_nocancel) +#define __NR_connectx SYMBOLIC(__NR_connectx) +#define __NR_copyfile SYMBOLIC(__NR_copyfile) +#define __NR_csops SYMBOLIC(__NR_csops) +#define __NR_csops_audittoken SYMBOLIC(__NR_csops_audittoken) +#define __NR_csrctl SYMBOLIC(__NR_csrctl) +#define __NR_delete SYMBOLIC(__NR_delete) +#define __NR_disconnectx SYMBOLIC(__NR_disconnectx) +#define __NR_exchangedata SYMBOLIC(__NR_exchangedata) +#define __NR_fchmod_extended SYMBOLIC(__NR_fchmod_extended) +#define __NR_fclonefileat SYMBOLIC(__NR_fclonefileat) +#define __NR_fcntl_nocancel SYMBOLIC(__NR_fcntl_nocancel) +#define __NR_ffsctl SYMBOLIC(__NR_ffsctl) +#define __NR_fgetattrlist SYMBOLIC(__NR_fgetattrlist) +#define __NR_fileport_makefd SYMBOLIC(__NR_fileport_makefd) +#define __NR_fileport_makeport SYMBOLIC(__NR_fileport_makeport) +#define __NR_fmount SYMBOLIC(__NR_fmount) +#define __NR_fs_snapshot SYMBOLIC(__NR_fs_snapshot) +#define __NR_fsctl SYMBOLIC(__NR_fsctl) +#define __NR_fsetattrlist SYMBOLIC(__NR_fsetattrlist) +#define __NR_fstat_extended SYMBOLIC(__NR_fstat_extended) +#define __NR_fsync_nocancel SYMBOLIC(__NR_fsync_nocancel) +#define __NR_getattrlist SYMBOLIC(__NR_getattrlist) +#define __NR_getattrlistat SYMBOLIC(__NR_getattrlistat) +#define __NR_getattrlistbulk SYMBOLIC(__NR_getattrlistbulk) +#define __NR_getdirentriesattr SYMBOLIC(__NR_getdirentriesattr) +#define __NR_gethostuuid SYMBOLIC(__NR_gethostuuid) +#define __NR_getsgroups SYMBOLIC(__NR_getsgroups) +#define __NR_getwgroups SYMBOLIC(__NR_getwgroups) +#define __NR_grab_pgo_data SYMBOLIC(__NR_grab_pgo_data) +#define __NR_guarded_close_np SYMBOLIC(__NR_guarded_close_np) +#define __NR_guarded_kqueue_np SYMBOLIC(__NR_guarded_kqueue_np) +#define __NR_guarded_open_np SYMBOLIC(__NR_guarded_open_np) +#define __NR_guarded_pwrite_np SYMBOLIC(__NR_guarded_pwrite_np) +#define __NR_guarded_write_np SYMBOLIC(__NR_guarded_write_np) +#define __NR_guarded_writev_np SYMBOLIC(__NR_guarded_writev_np) +#define __NR_identitysvc SYMBOLIC(__NR_identitysvc) +#define __NR_initgroups SYMBOLIC(__NR_initgroups) +#define __NR_iopolicysys SYMBOLIC(__NR_iopolicysys) +#define __NR_kas_info SYMBOLIC(__NR_kas_info) +#define __NR_kdebug_trace SYMBOLIC(__NR_kdebug_trace) +#define __NR_kdebug_trace_string SYMBOLIC(__NR_kdebug_trace_string) +#define __NR_kdebug_typefilter SYMBOLIC(__NR_kdebug_typefilter) +#define __NR_kevent_id SYMBOLIC(__NR_kevent_id) +#define __NR_kevent_qos SYMBOLIC(__NR_kevent_qos) +#define __NR_ledger SYMBOLIC(__NR_ledger) +#define __NR_lstat_extended SYMBOLIC(__NR_lstat_extended) +#define __NR_memorystatus_control SYMBOLIC(__NR_memorystatus_control) +#define __NR_memorystatus_get_level SYMBOLIC(__NR_memorystatus_get_level) +#define __NR_microstackshot SYMBOLIC(__NR_microstackshot) +#define __NR_mkdir_extended SYMBOLIC(__NR_mkdir_extended) +#define __NR_mkfifo_extended SYMBOLIC(__NR_mkfifo_extended) +#define __NR_modwatch SYMBOLIC(__NR_modwatch) +#define __NR_mremap_encrypted SYMBOLIC(__NR_mremap_encrypted) +#define __NR_msgrcv_nocancel SYMBOLIC(__NR_msgrcv_nocancel) +#define __NR_msgsnd_nocancel SYMBOLIC(__NR_msgsnd_nocancel) +#define __NR_msync_nocancel SYMBOLIC(__NR_msync_nocancel) +#define __NR_necp_client_action SYMBOLIC(__NR_necp_client_action) +#define __NR_necp_match_policy SYMBOLIC(__NR_necp_match_policy) +#define __NR_necp_open SYMBOLIC(__NR_necp_open) +#define __NR_necp_session_action SYMBOLIC(__NR_necp_session_action) +#define __NR_necp_session_open SYMBOLIC(__NR_necp_session_open) +#define __NR_net_qos_guideline SYMBOLIC(__NR_net_qos_guideline) +#define __NR_netagent_trigger SYMBOLIC(__NR_netagent_trigger) +#define __NR_nfsclnt SYMBOLIC(__NR_nfsclnt) +#define __NR_open_dprotected_np SYMBOLIC(__NR_open_dprotected_np) +#define __NR_open_extended SYMBOLIC(__NR_open_extended) +#define __NR_open_nocancel SYMBOLIC(__NR_open_nocancel) +#define __NR_openat_nocancel SYMBOLIC(__NR_openat_nocancel) +#define __NR_openbyid_np SYMBOLIC(__NR_openbyid_np) +#define __NR_os_fault_with_payload SYMBOLIC(__NR_os_fault_with_payload) +#define __NR_peeloff SYMBOLIC(__NR_peeloff) +#define __NR_persona SYMBOLIC(__NR_persona) +#define __NR_pid_hibernate SYMBOLIC(__NR_pid_hibernate) +#define __NR_pid_resume SYMBOLIC(__NR_pid_resume) +#define __NR_pid_shutdown_sockets SYMBOLIC(__NR_pid_shutdown_sockets) +#define __NR_pid_suspend SYMBOLIC(__NR_pid_suspend) +#define __NR_poll_nocancel SYMBOLIC(__NR_poll_nocancel) +#define __NR_pread_nocancel SYMBOLIC(__NR_pread_nocancel) +#define __NR_proc_info SYMBOLIC(__NR_proc_info) +#define __NR_proc_rlimit_control SYMBOLIC(__NR_proc_rlimit_control) +#define __NR_proc_trace_log SYMBOLIC(__NR_proc_trace_log) +#define __NR_proc_uuid_policy SYMBOLIC(__NR_proc_uuid_policy) +#define __NR_process_policy SYMBOLIC(__NR_process_policy) +#define __NR_pselect_nocancel SYMBOLIC(__NR_pselect_nocancel) +#define __NR_psynch_cvbroad SYMBOLIC(__NR_psynch_cvbroad) +#define __NR_psynch_cvclrprepost SYMBOLIC(__NR_psynch_cvclrprepost) +#define __NR_psynch_cvsignal SYMBOLIC(__NR_psynch_cvsignal) +#define __NR_psynch_mutexdrop SYMBOLIC(__NR_psynch_mutexdrop) +#define __NR_psynch_mutexwait SYMBOLIC(__NR_psynch_mutexwait) +#define __NR_psynch_rw_downgrade SYMBOLIC(__NR_psynch_rw_downgrade) +#define __NR_psynch_rw_longrdlock SYMBOLIC(__NR_psynch_rw_longrdlock) +#define __NR_psynch_rw_rdlock SYMBOLIC(__NR_psynch_rw_rdlock) +#define __NR_psynch_rw_unlock SYMBOLIC(__NR_psynch_rw_unlock) +#define __NR_psynch_rw_unlock2 SYMBOLIC(__NR_psynch_rw_unlock2) +#define __NR_psynch_rw_upgrade SYMBOLIC(__NR_psynch_rw_upgrade) +#define __NR_psynch_rw_wrlock SYMBOLIC(__NR_psynch_rw_wrlock) +#define __NR_psynch_rw_yieldwrlock SYMBOLIC(__NR_psynch_rw_yieldwrlock) +#define __NR_pwrite_nocancel SYMBOLIC(__NR_pwrite_nocancel) +#define __NR_read_nocancel SYMBOLIC(__NR_read_nocancel) +#define __NR_readv_nocancel SYMBOLIC(__NR_readv_nocancel) +#define __NR_recvfrom_nocancel SYMBOLIC(__NR_recvfrom_nocancel) +#define __NR_recvmsg_nocancel SYMBOLIC(__NR_recvmsg_nocancel) +#define __NR_recvmsg_x SYMBOLIC(__NR_recvmsg_x) +#define __NR_renameatx_np SYMBOLIC(__NR_renameatx_np) +#define __NR_searchfs SYMBOLIC(__NR_searchfs) +#define __NR_select_nocancel SYMBOLIC(__NR_select_nocancel) +#define __NR_sem_close SYMBOLIC(__NR_sem_close) +#define __NR_sem_open SYMBOLIC(__NR_sem_open) +#define __NR_sem_post SYMBOLIC(__NR_sem_post) +#define __NR_sem_trywait SYMBOLIC(__NR_sem_trywait) +#define __NR_sem_unlink SYMBOLIC(__NR_sem_unlink) +#define __NR_sem_wait SYMBOLIC(__NR_sem_wait) +#define __NR_sem_wait_nocancel SYMBOLIC(__NR_sem_wait_nocancel) +#define __NR_sendmsg_nocancel SYMBOLIC(__NR_sendmsg_nocancel) +#define __NR_sendmsg_x SYMBOLIC(__NR_sendmsg_x) +#define __NR_sendto_nocancel SYMBOLIC(__NR_sendto_nocancel) +#define __NR_setattrlist SYMBOLIC(__NR_setattrlist) +#define __NR_setattrlistat SYMBOLIC(__NR_setattrlistat) +#define __NR_setprivexec SYMBOLIC(__NR_setprivexec) +#define __NR_setsgroups SYMBOLIC(__NR_setsgroups) +#define __NR_settid SYMBOLIC(__NR_settid) +#define __NR_settid_with_pid SYMBOLIC(__NR_settid_with_pid) +#define __NR_setwgroups SYMBOLIC(__NR_setwgroups) +#define __NR_sfi_ctl SYMBOLIC(__NR_sfi_ctl) +#define __NR_sfi_pidctl SYMBOLIC(__NR_sfi_pidctl) +#define __NR_shared_region_check_np SYMBOLIC(__NR_shared_region_check_np) +#define __NR_sigsuspend_nocancel SYMBOLIC(__NR_sigsuspend_nocancel) +#define __NR_socket_delegate SYMBOLIC(__NR_socket_delegate) +#define __NR_stat_extended SYMBOLIC(__NR_stat_extended) +#define __NR_sysctlbyname SYMBOLIC(__NR_sysctlbyname) +#define __NR_system_override SYMBOLIC(__NR_system_override) +#define __NR_telemetry SYMBOLIC(__NR_telemetry) +#define __NR_terminate_with_payload SYMBOLIC(__NR_terminate_with_payload) +#define __NR_thread_selfcounts SYMBOLIC(__NR_thread_selfcounts) +#define __NR_thread_selfid SYMBOLIC(__NR_thread_selfid) +#define __NR_thread_selfusage SYMBOLIC(__NR_thread_selfusage) +#define __NR_ulock_wait SYMBOLIC(__NR_ulock_wait) +#define __NR_ulock_wake SYMBOLIC(__NR_ulock_wake) +#define __NR_umask_extended SYMBOLIC(__NR_umask_extended) +#define __NR_usrctl SYMBOLIC(__NR_usrctl) +#define __NR_vfs_purge SYMBOLIC(__NR_vfs_purge) +#define __NR_vm_pressure_monitor SYMBOLIC(__NR_vm_pressure_monitor) +#define __NR_wait4_nocancel SYMBOLIC(__NR_wait4_nocancel) +#define __NR_waitevent SYMBOLIC(__NR_waitevent) +#define __NR_waitid_nocancel SYMBOLIC(__NR_waitid_nocancel) +#define __NR_watchevent SYMBOLIC(__NR_watchevent) +#define __NR_work_interval_ctl SYMBOLIC(__NR_work_interval_ctl) +#define __NR_workq_kernreturn SYMBOLIC(__NR_workq_kernreturn) +#define __NR_workq_open SYMBOLIC(__NR_workq_open) +#define __NR_write_nocancel SYMBOLIC(__NR_write_nocancel) +#define __NR_writev_nocancel SYMBOLIC(__NR_writev_nocancel) +#define __NR_abort2 SYMBOLIC(__NR_abort2) +#define __NR_afs3_syscall SYMBOLIC(__NR_afs3_syscall) +#define __NR_bindat SYMBOLIC(__NR_bindat) +#define __NR_break SYMBOLIC(__NR_break) +#define __NR_cap_enter SYMBOLIC(__NR_cap_enter) +#define __NR_cap_fcntls_get SYMBOLIC(__NR_cap_fcntls_get) +#define __NR_cap_fcntls_limit SYMBOLIC(__NR_cap_fcntls_limit) +#define __NR_cap_getmode SYMBOLIC(__NR_cap_getmode) +#define __NR_cap_ioctls_get SYMBOLIC(__NR_cap_ioctls_get) +#define __NR_cap_ioctls_limit SYMBOLIC(__NR_cap_ioctls_limit) +#define __NR_cap_rights_limit SYMBOLIC(__NR_cap_rights_limit) +#define __NR_clock_getcpuclockid2 SYMBOLIC(__NR_clock_getcpuclockid2) +#define __NR_connectat SYMBOLIC(__NR_connectat) +#define __NR_cpuset SYMBOLIC(__NR_cpuset) +#define __NR_cpuset_getdomain SYMBOLIC(__NR_cpuset_getdomain) +#define __NR_cpuset_getid SYMBOLIC(__NR_cpuset_getid) +#define __NR_cpuset_setdomain SYMBOLIC(__NR_cpuset_setdomain) +#define __NR_cpuset_setid SYMBOLIC(__NR_cpuset_setid) +#define __NR_eaccess SYMBOLIC(__NR_eaccess) +#define __NR_extattr_delete_fd SYMBOLIC(__NR_extattr_delete_fd) +#define __NR_extattr_delete_file SYMBOLIC(__NR_extattr_delete_file) +#define __NR_extattr_delete_link SYMBOLIC(__NR_extattr_delete_link) +#define __NR_extattr_get_fd SYMBOLIC(__NR_extattr_get_fd) +#define __NR_extattr_get_file SYMBOLIC(__NR_extattr_get_file) +#define __NR_extattr_get_link SYMBOLIC(__NR_extattr_get_link) +#define __NR_extattr_list_fd SYMBOLIC(__NR_extattr_list_fd) +#define __NR_extattr_list_file SYMBOLIC(__NR_extattr_list_file) +#define __NR_extattr_list_link SYMBOLIC(__NR_extattr_list_link) +#define __NR_extattr_set_fd SYMBOLIC(__NR_extattr_set_fd) +#define __NR_extattr_set_file SYMBOLIC(__NR_extattr_set_file) +#define __NR_extattr_set_link SYMBOLIC(__NR_extattr_set_link) +#define __NR_extattrctl SYMBOLIC(__NR_extattrctl) +#define __NR_fexecve SYMBOLIC(__NR_fexecve) +#define __NR_ffclock_getcounter SYMBOLIC(__NR_ffclock_getcounter) +#define __NR_ffclock_getestimate SYMBOLIC(__NR_ffclock_getestimate) +#define __NR_ffclock_setestimate SYMBOLIC(__NR_ffclock_setestimate) +#define __NR_fhlink SYMBOLIC(__NR_fhlink) +#define __NR_fhlinkat SYMBOLIC(__NR_fhlinkat) +#define __NR_fhreadlink SYMBOLIC(__NR_fhreadlink) +#define __NR_getaudit SYMBOLIC(__NR_getaudit) +#define __NR_getcontext SYMBOLIC(__NR_getcontext) +#define __NR_getfhat SYMBOLIC(__NR_getfhat) +#define __NR_gethostid SYMBOLIC(__NR_gethostid) +#define __NR_getkerninfo SYMBOLIC(__NR_getkerninfo) +#define __NR_getloginclass SYMBOLIC(__NR_getloginclass) +#define __NR_getpagesize SYMBOLIC(__NR_getpagesize) +#define __NR_gssd_syscall SYMBOLIC(__NR_gssd_syscall) +#define __NR_jail SYMBOLIC(__NR_jail) +#define __NR_jail_attach SYMBOLIC(__NR_jail_attach) +#define __NR_jail_get SYMBOLIC(__NR_jail_get) +#define __NR_jail_remove SYMBOLIC(__NR_jail_remove) +#define __NR_jail_set SYMBOLIC(__NR_jail_set) +#define __NR_kenv SYMBOLIC(__NR_kenv) +#define __NR_kldfind SYMBOLIC(__NR_kldfind) +#define __NR_kldfirstmod SYMBOLIC(__NR_kldfirstmod) +#define __NR_kldload SYMBOLIC(__NR_kldload) +#define __NR_kldnext SYMBOLIC(__NR_kldnext) +#define __NR_kldstat SYMBOLIC(__NR_kldstat) +#define __NR_kldsym SYMBOLIC(__NR_kldsym) +#define __NR_kldunload SYMBOLIC(__NR_kldunload) +#define __NR_kldunloadf SYMBOLIC(__NR_kldunloadf) +#define __NR_kmq_notify SYMBOLIC(__NR_kmq_notify) +#define __NR_kmq_setattr SYMBOLIC(__NR_kmq_setattr) +#define __NR_kmq_timedreceive SYMBOLIC(__NR_kmq_timedreceive) +#define __NR_kmq_timedsend SYMBOLIC(__NR_kmq_timedsend) +#define __NR_kmq_unlink SYMBOLIC(__NR_kmq_unlink) +#define __NR_ksem_close SYMBOLIC(__NR_ksem_close) +#define __NR_ksem_destroy SYMBOLIC(__NR_ksem_destroy) +#define __NR_ksem_getvalue SYMBOLIC(__NR_ksem_getvalue) +#define __NR_ksem_init SYMBOLIC(__NR_ksem_init) +#define __NR_ksem_open SYMBOLIC(__NR_ksem_open) +#define __NR_ksem_post SYMBOLIC(__NR_ksem_post) +#define __NR_ksem_timedwait SYMBOLIC(__NR_ksem_timedwait) +#define __NR_ksem_trywait SYMBOLIC(__NR_ksem_trywait) +#define __NR_ksem_unlink SYMBOLIC(__NR_ksem_unlink) +#define __NR_ksem_wait SYMBOLIC(__NR_ksem_wait) +#define __NR_ktimer_create SYMBOLIC(__NR_ktimer_create) +#define __NR_ktimer_delete SYMBOLIC(__NR_ktimer_delete) +#define __NR_ktimer_getoverrun SYMBOLIC(__NR_ktimer_getoverrun) +#define __NR_ktimer_gettime SYMBOLIC(__NR_ktimer_gettime) +#define __NR_ktimer_settime SYMBOLIC(__NR_ktimer_settime) +#define __NR_lchflags SYMBOLIC(__NR_lchflags) +#define __NR_lchmod SYMBOLIC(__NR_lchmod) +#define __NR_lgetfh SYMBOLIC(__NR_lgetfh) +#define __NR_lpathconf SYMBOLIC(__NR_lpathconf) +#define __NR_lutimes SYMBOLIC(__NR_lutimes) +#define __NR_mac_syscall SYMBOLIC(__NR_mac_syscall) +#define __NR_modfind SYMBOLIC(__NR_modfind) +#define __NR_modfnext SYMBOLIC(__NR_modfnext) +#define __NR_modnext SYMBOLIC(__NR_modnext) +#define __NR_modstat SYMBOLIC(__NR_modstat) +#define __NR_nfstat SYMBOLIC(__NR_nfstat) +#define __NR_nlm_syscall SYMBOLIC(__NR_nlm_syscall) +#define __NR_nlstat SYMBOLIC(__NR_nlstat) +#define __NR_nmount SYMBOLIC(__NR_nmount) +#define __NR_nnpfs_syscall SYMBOLIC(__NR_nnpfs_syscall) +#define __NR_nstat SYMBOLIC(__NR_nstat) +#define __NR_pdfork SYMBOLIC(__NR_pdfork) +#define __NR_pdgetpid SYMBOLIC(__NR_pdgetpid) +#define __NR_pdkill SYMBOLIC(__NR_pdkill) +#define __NR_posix_openpt SYMBOLIC(__NR_posix_openpt) +#define __NR_procctl SYMBOLIC(__NR_procctl) +#define __NR_psynch_cvwait SYMBOLIC(__NR_psynch_cvwait) +#define __NR_quota SYMBOLIC(__NR_quota) +#define __NR_rctl_add_rule SYMBOLIC(__NR_rctl_add_rule) +#define __NR_rctl_get_limits SYMBOLIC(__NR_rctl_get_limits) +#define __NR_rctl_get_racct SYMBOLIC(__NR_rctl_get_racct) +#define __NR_rctl_get_rules SYMBOLIC(__NR_rctl_get_rules) +#define __NR_rctl_remove_rule SYMBOLIC(__NR_rctl_remove_rule) +#define __NR_recv SYMBOLIC(__NR_recv) +#define __NR_rfork SYMBOLIC(__NR_rfork) +#define __NR_rtprio SYMBOLIC(__NR_rtprio) +#define __NR_rtprio_thread SYMBOLIC(__NR_rtprio_thread) +#define __NR_send SYMBOLIC(__NR_send) +#define __NR_setaudit SYMBOLIC(__NR_setaudit) +#define __NR_setcontext SYMBOLIC(__NR_setcontext) +#define __NR_setfib SYMBOLIC(__NR_setfib) +#define __NR_sethostid SYMBOLIC(__NR_sethostid) +#define __NR_setloginclass SYMBOLIC(__NR_setloginclass) +#define __NR_sigblock SYMBOLIC(__NR_sigblock) +#define __NR_sigqueue SYMBOLIC(__NR_sigqueue) +#define __NR_sigsetmask SYMBOLIC(__NR_sigsetmask) +#define __NR_sigstack SYMBOLIC(__NR_sigstack) +#define __NR_sigvec SYMBOLIC(__NR_sigvec) +#define __NR_sigwaitinfo SYMBOLIC(__NR_sigwaitinfo) +#define __NR_sstk SYMBOLIC(__NR_sstk) +#define __NR_swapcontext SYMBOLIC(__NR_swapcontext) +#define __NR_thr_create SYMBOLIC(__NR_thr_create) +#define __NR_thr_exit SYMBOLIC(__NR_thr_exit) +#define __NR_thr_kill SYMBOLIC(__NR_thr_kill) +#define __NR_thr_kill2 SYMBOLIC(__NR_thr_kill2) +#define __NR_thr_self SYMBOLIC(__NR_thr_self) +#define __NR_thr_set_name SYMBOLIC(__NR_thr_set_name) +#define __NR_thr_suspend SYMBOLIC(__NR_thr_suspend) +#define __NR_thr_wake SYMBOLIC(__NR_thr_wake) +#define __NR_uuidgen SYMBOLIC(__NR_uuidgen) +#define __NR_vadvise SYMBOLIC(__NR_vadvise) +#define __NR_wait SYMBOLIC(__NR_wait) +#define __NR_wait6 SYMBOLIC(__NR_wait6) +#define __NR_yield SYMBOLIC(__NR_yield) +#define __NR_tfork SYMBOLIC(__NR_tfork) +#define __NR_thrsleep SYMBOLIC(__NR_thrsleep) +#define __NR_thrwakeup SYMBOLIC(__NR_thrwakeup) +#define __NR_threxit SYMBOLIC(__NR_threxit) +#define __NR_thrsigdivert SYMBOLIC(__NR_thrsigdivert) +#define __NR_set_tcb SYMBOLIC(__NR_set_tcb) +#define __NR_get_tcb SYMBOLIC(__NR_get_tcb) +#define __NR_adjfreq SYMBOLIC(__NR_adjfreq) +#define __NR_getdtablecount SYMBOLIC(__NR_getdtablecount) +#define __NR_getlogin_r SYMBOLIC(__NR_getlogin_r) +#define __NR_getrtable SYMBOLIC(__NR_getrtable) +#define __NR_getthrid SYMBOLIC(__NR_getthrid) +#define __NR_kbind SYMBOLIC(__NR_kbind) +#define __NR_mquery SYMBOLIC(__NR_mquery) +#define __NR_obreak SYMBOLIC(__NR_obreak) +#define __NR_sendsyslog SYMBOLIC(__NR_sendsyslog) +#define __NR_setrtable SYMBOLIC(__NR_setrtable) +#define __NR_swapctl SYMBOLIC(__NR_swapctl) +#define __NR_thrkill SYMBOLIC(__NR_thrkill) +#define __NR_unveil SYMBOLIC(__NR_unveil) +#define __NR_mac_get_link SYMBOLIC(__NR_mac_get_link) +#define __NR_mac_set_link SYMBOLIC(__NR_mac_set_link) +#define __NR_mac_get_fd SYMBOLIC(__NR_mac_get_fd) +#define __NR_mac_get_file SYMBOLIC(__NR_mac_get_file) +#define __NR_mac_get_proc SYMBOLIC(__NR_mac_get_proc) +#define __NR_mac_set_fd SYMBOLIC(__NR_mac_set_fd) +#define __NR_mac_get_pid SYMBOLIC(__NR_mac_get_pid) +#define __NR_mac_set_proc SYMBOLIC(__NR_mac_set_proc) +#define __NR_mac_set_file SYMBOLIC(__NR_mac_set_file) +#define __NR_mac_execve SYMBOLIC(__NR_mac_execve) +#define __NR_acl_get_link SYMBOLIC(__NR_acl_get_link) +#define __NR_sigwait_nocancel SYMBOLIC(__NR_sigwait_nocancel) +#define __NR_cap_rights_get SYMBOLIC(__NR_cap_rights_get) +#define __NR_semwait_signal SYMBOLIC(__NR_semwait_signal) +#define __NR_acl_set_link SYMBOLIC(__NR_acl_set_link) +#define __NR_acl_set_fd SYMBOLIC(__NR_acl_set_fd) +#define __NR_old_semwait_signal SYMBOLIC(__NR_old_semwait_signal) +#define __NR_setugid SYMBOLIC(__NR_setugid) +#define __NR_acl_aclcheck_fd SYMBOLIC(__NR_acl_aclcheck_fd) +#define __NR_acl_get_fd SYMBOLIC(__NR_acl_get_fd) +#define __NR___sysctl SYMBOLIC(__NR___sysctl) +#define __NR_mac_getfsstat SYMBOLIC(__NR_mac_getfsstat) +#define __NR_mac_get_mount SYMBOLIC(__NR_mac_get_mount) +#define __NR_acl_delete_link SYMBOLIC(__NR_acl_delete_link) +#define __NR_mac_mount SYMBOLIC(__NR_mac_mount) +#define __NR_acl_get_file SYMBOLIC(__NR_acl_get_file) +#define __NR_acl_aclcheck_file SYMBOLIC(__NR_acl_aclcheck_file) +#define __NR_acl_delete_fd SYMBOLIC(__NR_acl_delete_fd) +#define __NR_acl_aclcheck_link SYMBOLIC(__NR_acl_aclcheck_link) +#define __NR___mac_syscall SYMBOLIC(__NR___mac_syscall) +#define __NR_acl_set_file SYMBOLIC(__NR_acl_set_file) +#define __NR_acl_delete_file SYMBOLIC(__NR_acl_delete_file) +#define __NR_syscall SYMBOLIC(__NR_syscall) +#define __NR__umtx_op SYMBOLIC(__NR__umtx_op) +#define __NR_semwait_signal_nocancel SYMBOLIC(__NR_semwait_signal_nocancel) +#define __NR_old_semwait_signal_nocancel \ + SYMBOLIC(__NR_old_semwait_signal_nocancel) +#define __NR_sctp_peeloff SYMBOLIC(__NR_sctp_peeloff) +#define __NR_sctp_generic_recvmsg SYMBOLIC(__NR_sctp_generic_recvmsg) +#define __NR_sctp_generic_sendmsg SYMBOLIC(__NR_sctp_generic_sendmsg) +#define __NR_sctp_generic_sendmsg_iov SYMBOLIC(__NR_sctp_generic_sendmsg_iov) +#define __NR_shared_region_map_and_slide_np \ + SYMBOLIC(__NR_shared_region_map_and_slide_np) +#define __NR_guarded_open_dprotected_np \ + SYMBOLIC(__NR_guarded_open_dprotected_np) +#define __NR_stack_snapshot_with_config \ + SYMBOLIC(__NR_stack_snapshot_with_config) #endif /* COSMOPOLITAN_LIBC_SYSV_CONSTS_NR_H_ */ diff --git a/libc/sysv/consts/nrlinux.h b/libc/sysv/consts/nrlinux.h index 97f5dd55b..309968a89 100644 --- a/libc/sysv/consts/nrlinux.h +++ b/libc/sysv/consts/nrlinux.h @@ -345,5 +345,6 @@ #define __NR_linux_process_mrelease 0x01c0 #define __NR_linux_futex_waitv 0x01c1 #define __NR_linux_set_mempolicy_home_node 0x01c2 +#define __NR_linux_sys_unveil 0x0fff #endif /* COSMOPOLITAN_LIBC_SYSV_CONSTS_NRLINUX_H_ */ diff --git a/libc/sysv/consts/th.h b/libc/sysv/consts/th.h index ceff1430f..a4d35063f 100644 --- a/libc/sysv/consts/th.h +++ b/libc/sysv/consts/th.h @@ -1,11 +1,24 @@ #ifndef COSMOPOLITAN_LIBC_SYSV_CONSTS_TH_H_ #define COSMOPOLITAN_LIBC_SYSV_CONSTS_TH_H_ +#include "libc/runtime/symbolic.h" -#define TH_FIN 1 -#define TH_SYN 2 -#define TH_RST 4 -#define TH_PUSH 8 -#define TH_URG 32 -#define TH_ACK 16 +#define TH_ACK SYMBOLIC(TH_ACK) +#define TH_FIN SYMBOLIC(TH_FIN) +#define TH_PUSH SYMBOLIC(TH_PUSH) +#define TH_RST SYMBOLIC(TH_RST) +#define TH_SYN SYMBOLIC(TH_SYN) +#define TH_URG SYMBOLIC(TH_URG) +#if !(__ASSEMBLER__ + __LINKER__ + 0) +COSMOPOLITAN_C_START_ + +extern const long TH_ACK; +extern const long TH_FIN; +extern const long TH_PUSH; +extern const long TH_RST; +extern const long TH_SYN; +extern const long TH_URG; + +COSMOPOLITAN_C_END_ +#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */ #endif /* COSMOPOLITAN_LIBC_SYSV_CONSTS_TH_H_ */ diff --git a/libc/sysv/consts/xopen.h b/libc/sysv/consts/xopen.h deleted file mode 100644 index 0a98e8829..000000000 --- a/libc/sysv/consts/xopen.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef COSMOPOLITAN_LIBC_SYSV_CONSTS_XOPEN_H_ -#define COSMOPOLITAN_LIBC_SYSV_CONSTS_XOPEN_H_ - -#define _XOPEN_IOV_MAX 0x10 -#define _XOPEN_ENH_I18N 1 -#define _XOPEN_UNIX 1 -#define _XOPEN_NAME_MAX 63 -#define _XOPEN_PATH_MAX 255 -#define _XOPEN_VERSION 700 -#define _XOPEN_SOURCE 700 - -#endif /* COSMOPOLITAN_LIBC_SYSV_CONSTS_XOPEN_H_ */ diff --git a/libc/testlib/benchrunner.c b/libc/testlib/benchrunner.c index 0843b922c..3ae4e2dd4 100644 --- a/libc/testlib/benchrunner.c +++ b/libc/testlib/benchrunner.c @@ -53,6 +53,12 @@ void testlib_benchwarmup(void) { */ void testlib_runallbenchmarks(void) { int e; + e = errno; + if (!IsWindows()) { + mlockall(MCL_CURRENT); + nice(-1); + } + errno = e; __log_level = kLogWarn; testlib_runtestcases(__bench_start, __bench_end, testlib_benchwarmup); } diff --git a/libc/testlib/formatstr.c b/libc/testlib/formatstr.c index 2dd66dbbe..a4b9d533e 100644 --- a/libc/testlib/formatstr.c +++ b/libc/testlib/formatstr.c @@ -17,7 +17,6 @@ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/bits/safemacros.internal.h" -#include "libc/mem/mem.h" #include "libc/str/str.h" #include "libc/testlib/testlib.h" #include "libc/x/x.h" diff --git a/libc/testlib/geterrno.c b/libc/testlib/geterrno.c deleted file mode 100644 index 4f1128dae..000000000 --- a/libc/testlib/geterrno.c +++ /dev/null @@ -1,24 +0,0 @@ -/*-*- mode:c;indent-tabs-mode:nil;c-basic-offset:2;tab-width:8;coding:utf-8 -*-│ -│vi: set net ft=c ts=2 sts=2 sw=2 fenc=utf-8 :vi│ -╞══════════════════════════════════════════════════════════════════════════════╡ -│ Copyright 2022 Justine Alexandra Roberts Tunney │ -│ │ -│ Permission to use, copy, modify, and/or distribute this software for │ -│ any purpose with or without fee is hereby granted, provided that the │ -│ above copyright notice and this permission notice appear in all copies. │ -│ │ -│ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL │ -│ WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED │ -│ WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE │ -│ AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL │ -│ DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR │ -│ PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER │ -│ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ -│ PERFORMANCE OF THIS SOFTWARE. │ -╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/errno.h" -#include "libc/testlib/testlib.h" - -int testlib_geterrno(void) { - return errno; -} diff --git a/libc/testlib/seterrno.c b/libc/testlib/seterrno.c deleted file mode 100644 index 8f4981fc1..000000000 --- a/libc/testlib/seterrno.c +++ /dev/null @@ -1,24 +0,0 @@ -/*-*- mode:c;indent-tabs-mode:nil;c-basic-offset:2;tab-width:8;coding:utf-8 -*-│ -│vi: set net ft=c ts=2 sts=2 sw=2 fenc=utf-8 :vi│ -╞══════════════════════════════════════════════════════════════════════════════╡ -│ Copyright 2022 Justine Alexandra Roberts Tunney │ -│ │ -│ Permission to use, copy, modify, and/or distribute this software for │ -│ any purpose with or without fee is hereby granted, provided that the │ -│ above copyright notice and this permission notice appear in all copies. │ -│ │ -│ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL │ -│ WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED │ -│ WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE │ -│ AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL │ -│ DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR │ -│ PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER │ -│ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ -│ PERFORMANCE OF THIS SOFTWARE. │ -╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/errno.h" -#include "libc/testlib/testlib.h" - -void testlib_seterrno(int x) { - errno = x; -} diff --git a/libc/testlib/showerror.c b/libc/testlib/showerror.c index d9f842314..3b7011c74 100644 --- a/libc/testlib/showerror.c +++ b/libc/testlib/showerror.c @@ -19,13 +19,11 @@ #include "libc/bits/atomic.h" #include "libc/bits/safemacros.internal.h" #include "libc/calls/calls.h" -#include "libc/errno.h" #include "libc/fmt/fmt.h" #include "libc/intrin/kprintf.h" #include "libc/log/color.internal.h" #include "libc/log/internal.h" #include "libc/log/libfatal.internal.h" -#include "libc/str/str.h" #include "libc/testlib/testlib.h" const char *testlib_showerror_errno; diff --git a/libc/testlib/strerror.c b/libc/testlib/strerror.c deleted file mode 100644 index c1a292807..000000000 --- a/libc/testlib/strerror.c +++ /dev/null @@ -1,25 +0,0 @@ -/*-*- mode:c;indent-tabs-mode:nil;c-basic-offset:2;tab-width:8;coding:utf-8 -*-│ -│vi: set net ft=c ts=2 sts=2 sw=2 fenc=utf-8 :vi│ -╞══════════════════════════════════════════════════════════════════════════════╡ -│ Copyright 2022 Justine Alexandra Roberts Tunney │ -│ │ -│ Permission to use, copy, modify, and/or distribute this software for │ -│ any purpose with or without fee is hereby granted, provided that the │ -│ above copyright notice and this permission notice appear in all copies. │ -│ │ -│ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL │ -│ WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED │ -│ WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE │ -│ AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL │ -│ DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR │ -│ PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER │ -│ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ -│ PERFORMANCE OF THIS SOFTWARE. │ -╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/errno.h" -#include "libc/str/str.h" -#include "libc/testlib/testlib.h" - -const char *testlib_strerror(void) { - return strerror(errno); -} diff --git a/libc/testlib/testlib.h b/libc/testlib/testlib.h index 3e2fd0004..001f74ef4 100644 --- a/libc/testlib/testlib.h +++ b/libc/testlib/testlib.h @@ -1,11 +1,14 @@ #ifndef COSMOPOLITAN_LIBC_TESTLIB_H_ #define COSMOPOLITAN_LIBC_TESTLIB_H_ +#include "libc/bits/weaken.h" +#include "libc/errno.h" +#include "libc/str/str.h" +#include "libc/testlib/ugly.h" #if !(__ASSEMBLER__ + __LINKER__ + 0) COSMOPOLITAN_C_START_ /*───────────────────────────────────────────────────────────────────────────│─╗ │ cosmopolitan § testing library ─╬─│┼ ╚────────────────────────────────────────────────────────────────────────────│*/ -#include "libc/macros.internal.h" /** * Declares test case function. @@ -63,34 +66,6 @@ COSMOPOLITAN_C_START_ #define EXPECT_LE(C, X) _TEST2("EXPECT_LE", C, <=, (X), #C, " ≤ ", #X, 0) #define EXPECT_LT(C, X) _TEST2("EXPECT_LT", C, <, (X), #C, " < ", #X, 0) -#define __TEST_ARRAY(S) \ - _Section(".piro.relo.sort.testcase.2." #S ",\"aw\",@init_array #") - -#define __BENCH_ARRAY(S) \ - _Section(".piro.relo.sort.bench.2." #S ",\"aw\",@init_array #") - -#define __TEST_PROTOTYPE(S, N, A, K) \ - void S##_##N(void); \ - testfn_t S##_##N##_ptr[] A(S##_##N) = {S##_##N}; \ - testonly K void S##_##N(void) - -#define __TEST_SECTION(NAME, CONTENT) \ - ".section " NAME "\n" CONTENT "\n\t.previous\n" - -#define __RELOSECTION(NAME, CONTENT) \ - __TEST_SECTION(".piro.relo.sort" NAME ",\"aw\",@progbits", CONTENT) - -#define __ROSTR(STR) __TEST_SECTION(".rodata.str1.1,\"aSM\",@progbits,1", STR) - -#define __FIXTURE(KIND, GROUP, ENTRY) \ - asm(__RELOSECTION("." KIND ".2." #GROUP #ENTRY, \ - "\t.quad\t1f\n" \ - "\t.quad\t2f\n" \ - "\t.quad\t" STRINGIFY(GROUP##_##ENTRY)) \ - __ROSTR("1:\t.asciz\t" STRINGIFY(#GROUP)) \ - __ROSTR("2:\t.asciz\t" STRINGIFY(#ENTRY))); \ - testonly void GROUP##_##ENTRY(void) - /** * Enables setup and teardown of test directories. * @@ -138,12 +113,12 @@ void TearDownOnce(void); #define ASSERT_SYS(ERRNO, WANT, GOT, ...) \ do { \ - int e = testlib_geterrno(); \ + int e = errno; \ __TEST_EQ(assert, __FILE__, __LINE__, __FUNCTION__, #WANT, #GOT, WANT, \ GOT, __VA_ARGS__); \ __TEST_EQ(assert, __FILE__, __LINE__, __FUNCTION__, #ERRNO, \ - testlib_strerror(), ERRNO, testlib_geterrno(), __VA_ARGS__); \ - testlib_seterrno(e); \ + strerror(errno), ERRNO, errno, __VA_ARGS__); \ + errno = e; \ } while (0) #define ASSERT_BETWEEN(BEG, END, GOT) \ @@ -213,11 +188,11 @@ void TearDownOnce(void); #define EXPECT_SYS(ERRNO, WANT, GOT, ...) \ do { \ - testlib_seterrno(0); \ + errno = 0; \ __TEST_EQ(expect, __FILE__, __LINE__, __FUNCTION__, #WANT, #GOT, WANT, \ GOT, __VA_ARGS__); \ __TEST_EQ(expect, __FILE__, __LINE__, __FUNCTION__, #ERRNO, \ - testlib_strerror(), ERRNO, testlib_geterrno(), __VA_ARGS__); \ + strerror(errno), ERRNO, errno, __VA_ARGS__); \ } while (0) #define EXPECT_FALSE(X) _TEST2("EXPECT_FALSE", false, ==, (X), #X, "", "", 0) @@ -375,10 +350,7 @@ void testlib_showerror(const char *, int, const char *, const char *, void thrashcodecache(void); void testlib_finish(void); -int testlib_geterrno(void); -void testlib_seterrno(int); void testlib_runalltests(void); -const char *testlib_strerror(void); void testlib_runallbenchmarks(void); void testlib_runtestcases(testfn_t *, testfn_t *, testfn_t); void testlib_runcombos(testfn_t *, testfn_t *, const struct TestFixture *, diff --git a/libc/testlib/testlib.mk b/libc/testlib/testlib.mk index caf496290..262b7613b 100644 --- a/libc/testlib/testlib.mk +++ b/libc/testlib/testlib.mk @@ -24,6 +24,7 @@ LIBC_TESTLIB_A_HDRS = \ libc/testlib/fastrandomstring.h \ libc/testlib/hyperion.h \ libc/testlib/moby.h \ + libc/testlib/ugly.h \ libc/testlib/testlib.h LIBC_TESTLIB_A_SRCS_S = \ @@ -51,9 +52,6 @@ LIBC_TESTLIB_A_SRCS_C = \ libc/testlib/almostequallongdouble.c \ libc/testlib/benchrunner.c \ libc/testlib/getcore.c \ - libc/testlib/geterrno.c \ - libc/testlib/seterrno.c \ - libc/testlib/strerror.c \ libc/testlib/getinterrupts.c \ libc/testlib/ezbenchwarn.c \ libc/testlib/binequals.c \ diff --git a/libc/testlib/ugly.h b/libc/testlib/ugly.h new file mode 100644 index 000000000..c08baee03 --- /dev/null +++ b/libc/testlib/ugly.h @@ -0,0 +1,35 @@ +#ifndef COSMOPOLITAN_LIBC_TESTLIB_UGLY_H_ +#define COSMOPOLITAN_LIBC_TESTLIB_UGLY_H_ +#include "libc/macros.internal.h" +#if !(__ASSEMBLER__ + __LINKER__ + 0) + +#define __TEST_ARRAY(S) \ + _Section(".piro.relo.sort.testcase.2." #S ",\"aw\",@init_array #") + +#define __BENCH_ARRAY(S) \ + _Section(".piro.relo.sort.bench.2." #S ",\"aw\",@init_array #") + +#define __TEST_PROTOTYPE(S, N, A, K) \ + void S##_##N(void); \ + testfn_t S##_##N##_ptr[] A(S##_##N) = {S##_##N}; \ + testonly K void S##_##N(void) + +#define __TEST_SECTION(NAME, CONTENT) \ + ".section " NAME "\n" CONTENT "\n\t.previous\n" + +#define __RELOSECTION(NAME, CONTENT) \ + __TEST_SECTION(".piro.relo.sort" NAME ",\"aw\",@progbits", CONTENT) + +#define __ROSTR(STR) __TEST_SECTION(".rodata.str1.1,\"aSM\",@progbits,1", STR) + +#define __FIXTURE(KIND, GROUP, ENTRY) \ + asm(__RELOSECTION("." KIND ".2." #GROUP #ENTRY, \ + "\t.quad\t1f\n" \ + "\t.quad\t2f\n" \ + "\t.quad\t" STRINGIFY(GROUP##_##ENTRY)) \ + __ROSTR("1:\t.asciz\t" STRINGIFY(#GROUP)) \ + __ROSTR("2:\t.asciz\t" STRINGIFY(#ENTRY))); \ + testonly void GROUP##_##ENTRY(void) + +#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */ +#endif /* COSMOPOLITAN_LIBC_TESTLIB_UGLY_H_ */ diff --git a/libc/time/asctime.c b/libc/time/asctime.c index 5a6f4ad8a..c076e59f1 100644 --- a/libc/time/asctime.c +++ b/libc/time/asctime.c @@ -1,8 +1,6 @@ #include "libc/fmt/fmt.h" -#include "libc/str/str.h" #include "libc/time/time.h" #include "libc/time/tz.internal.h" -#include "third_party/python/Include/object.h" // clang-format off /* asctime and asctime_r a la POSIX and ISO C, except pad years before 1000. */ diff --git a/libc/unicode/unicode.mk b/libc/unicode/unicode.mk index 8d83757b0..b4779a900 100644 --- a/libc/unicode/unicode.mk +++ b/libc/unicode/unicode.mk @@ -53,6 +53,7 @@ LIBC_UNICODE_BINS = $(foreach x,$(LIBC_UNICODE_ARTIFACTS),$($(x)_BINS)) LIBC_UNICODE_CHECKS = $(foreach x,$(LIBC_UNICODE_ARTIFACTS),$($(x)_CHECKS)) LIBC_UNICODE_OBJS = $(foreach x,$(LIBC_UNICODE_ARTIFACTS),$($(x)_OBJS)) LIBC_UNICODE_TESTS = $(foreach x,$(LIBC_UNICODE_ARTIFACTS),$($(x)_TESTS)) +$(LIBC_UNICODE_OBJS): $(BUILD_FILES) libc/unicode/unicode.mk .PHONY: o/$(MODE)/libc/unicode o/$(MODE)/libc/unicode: $(LIBC_UNICODE) $(LIBC_UNICODE_CHECKS) diff --git a/libc/x/makedirs.c b/libc/x/makedirs.c index f236765cf..6255bf9ff 100644 --- a/libc/x/makedirs.c +++ b/libc/x/makedirs.c @@ -21,6 +21,7 @@ #include "libc/calls/calls.h" #include "libc/calls/strace.internal.h" #include "libc/errno.h" +#include "libc/log/log.h" #include "libc/mem/mem.h" #include "libc/str/str.h" #include "libc/x/x.h" @@ -28,7 +29,7 @@ static int MakeDirs(const char *path, unsigned mode, int e) { int rc; char *dir; - if (!mkdir(path, mode) || errno == EEXIST) { + if (mkdir(path, mode) != -1 || errno == EEXIST) { errno = e; return 0; } diff --git a/libc/x/xcalloc.c b/libc/x/xcalloc.c index 09d7b90ed..ca9932c7e 100644 --- a/libc/x/xcalloc.c +++ b/libc/x/xcalloc.c @@ -16,6 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ +#include "libc/log/log.h" #include "libc/mem/mem.h" #include "libc/x/x.h" diff --git a/libc/x/xload.c b/libc/x/xload.c index 38b91e22f..0dfc6cc2f 100644 --- a/libc/x/xload.c +++ b/libc/x/xload.c @@ -18,7 +18,6 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/intrin/lockcmpxchg.h" #include "libc/log/check.h" -#include "libc/mem/mem.h" #include "libc/runtime/runtime.h" #include "libc/x/x.h" #include "third_party/zlib/zlib.h" diff --git a/libc/x/xloadzd.c b/libc/x/xloadzd.c index 557268bc0..d8afcb7fb 100644 --- a/libc/x/xloadzd.c +++ b/libc/x/xloadzd.c @@ -19,7 +19,6 @@ #include "libc/assert.h" #include "libc/fmt/leb128.h" #include "libc/intrin/lockcmpxchg.h" -#include "libc/mem/mem.h" #include "libc/nexgen32e/crc32.h" #include "libc/runtime/internal.h" #include "libc/runtime/runtime.h" diff --git a/libc/x/xmalloc.c b/libc/x/xmalloc.c index a054e4d73..fee6a6923 100644 --- a/libc/x/xmalloc.c +++ b/libc/x/xmalloc.c @@ -16,6 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ +#include "libc/log/log.h" #include "libc/mem/mem.h" #include "libc/x/x.h" diff --git a/libc/x/xmemalign.c b/libc/x/xmemalign.c index a30acea16..0404851ed 100644 --- a/libc/x/xmemalign.c +++ b/libc/x/xmemalign.c @@ -16,6 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ +#include "libc/log/log.h" #include "libc/mem/mem.h" #include "libc/x/x.h" diff --git a/libc/x/xmemalignzero.c b/libc/x/xmemalignzero.c index 23ec852b8..eb31b562a 100644 --- a/libc/x/xmemalignzero.c +++ b/libc/x/xmemalignzero.c @@ -16,6 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ +#include "libc/log/log.h" #include "libc/mem/mem.h" #include "libc/str/str.h" #include "libc/x/x.h" diff --git a/libc/x/xrealloc.c b/libc/x/xrealloc.c index ba9bdb3ca..f61cace06 100644 --- a/libc/x/xrealloc.c +++ b/libc/x/xrealloc.c @@ -16,6 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ +#include "libc/log/log.h" #include "libc/mem/mem.h" #include "libc/x/x.h" diff --git a/libc/x/xstrdup.c b/libc/x/xstrdup.c index 8dc0b2d8e..6aaa9a67b 100644 --- a/libc/x/xstrdup.c +++ b/libc/x/xstrdup.c @@ -16,17 +16,16 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/bits/likely.h" +#include "libc/log/log.h" #include "libc/mem/mem.h" -#include "libc/str/str.h" +#include "libc/runtime/runtime.h" #include "libc/x/x.h" /** * Allocates new copy of string, or dies. */ char *xstrdup(const char *s) { - size_t len = strlen(s); - char *s2 = malloc(len + 1); - if (UNLIKELY(!s2)) xdie(); - return memcpy(s2, s, len + 1); + void *res = strdup(s); + if (!res) xdie(); + return res; } diff --git a/libc/x/xstrndup.c b/libc/x/xstrndup.c index de883d4ff..d2342a309 100644 --- a/libc/x/xstrndup.c +++ b/libc/x/xstrndup.c @@ -16,6 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ +#include "libc/log/log.h" #include "libc/mem/mem.h" #include "libc/x/x.h" diff --git a/libc/x/xvalloc.c b/libc/x/xvalloc.c index 7f0d114b4..130f62c54 100644 --- a/libc/x/xvalloc.c +++ b/libc/x/xvalloc.c @@ -16,6 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ +#include "libc/log/log.h" #include "libc/mem/mem.h" #include "libc/x/x.h" diff --git a/libc/x/xvasprintf.c b/libc/x/xvasprintf.c index 243e68fc1..ff70d2666 100644 --- a/libc/x/xvasprintf.c +++ b/libc/x/xvasprintf.c @@ -16,6 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ +#include "libc/log/log.h" #include "libc/mem/fmt.h" #include "libc/mem/mem.h" #include "libc/x/x.h" diff --git a/libc/x/xvspawn.c b/libc/x/xvspawn.c index dc132948a..b2801bdc7 100644 --- a/libc/x/xvspawn.c +++ b/libc/x/xvspawn.c @@ -18,7 +18,6 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/calls/calls.h" #include "libc/errno.h" -#include "libc/runtime/runtime.h" #include "libc/sysv/consts/sig.h" #include "libc/x/x.h" diff --git a/net/http/escapehtml.c b/net/http/escapehtml.c index 598611453..dcbf4921f 100644 --- a/net/http/escapehtml.c +++ b/net/http/escapehtml.c @@ -16,7 +16,6 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/mem/mem.h" #include "libc/str/str.h" #include "libc/x/x.h" #include "net/http/escape.h" diff --git a/net/http/escapejsstringliteral.c b/net/http/escapejsstringliteral.c index 68fc9ad38..d1abba3ea 100644 --- a/net/http/escapejsstringliteral.c +++ b/net/http/escapejsstringliteral.c @@ -17,8 +17,6 @@ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/bits/likely.h" -#include "libc/mem/mem.h" -#include "libc/str/str.h" #include "libc/str/thompike.h" #include "libc/str/utf16.h" #include "libc/x/x.h" diff --git a/net/http/escapeurl.c b/net/http/escapeurl.c index eacbcc55f..83657904e 100644 --- a/net/http/escapeurl.c +++ b/net/http/escapeurl.c @@ -16,8 +16,6 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/mem/mem.h" -#include "libc/str/str.h" #include "libc/x/x.h" #include "net/http/escape.h" #include "net/http/url.h" diff --git a/net/http/indentlines.c b/net/http/indentlines.c index be1305e7f..7f94a9ae4 100644 --- a/net/http/indentlines.c +++ b/net/http/indentlines.c @@ -16,7 +16,6 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/mem/mem.h" #include "libc/str/str.h" #include "libc/x/x.h" #include "net/http/escape.h" diff --git a/net/http/parseurl.c b/net/http/parseurl.c index a599deb52..8bdc6ac1b 100644 --- a/net/http/parseurl.c +++ b/net/http/parseurl.c @@ -18,7 +18,6 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/bits/likely.h" #include "libc/limits.h" -#include "libc/mem/mem.h" #include "libc/str/str.h" #include "libc/x/x.h" #include "net/http/escape.h" diff --git a/test/libc/bits/bextra_test.c b/test/libc/bits/bextra_test.c index ad99cc5d9..5638aba64 100644 --- a/test/libc/bits/bextra_test.c +++ b/test/libc/bits/bextra_test.c @@ -22,7 +22,8 @@ #include "libc/testlib/testlib.h" void SetUpOnce(void) { - ASSERT_SYS(0, 0, pledge("stdio", 0)); + pledge("stdio", 0); + errno = 0; } unsigned P[] = { diff --git a/test/libc/bits/bitreverse_test.c b/test/libc/bits/bitreverse_test.c index 1d4cef342..db7ad2b84 100644 --- a/test/libc/bits/bitreverse_test.c +++ b/test/libc/bits/bitreverse_test.c @@ -22,7 +22,8 @@ #include "libc/testlib/testlib.h" void SetUpOnce(void) { - ASSERT_SYS(0, 0, pledge("stdio", 0)); + pledge("stdio", 0); + errno = 0; } TEST(bitreverse, test) { diff --git a/test/libc/bits/countbits_test.c b/test/libc/bits/countbits_test.c index 9ad88fb14..514da8644 100644 --- a/test/libc/bits/countbits_test.c +++ b/test/libc/bits/countbits_test.c @@ -21,13 +21,13 @@ #include "libc/calls/calls.h" #include "libc/mem/mem.h" #include "libc/runtime/gc.internal.h" -#include "libc/str/str.h" #include "libc/testlib/ezbench.h" #include "libc/testlib/hyperion.h" #include "libc/testlib/testlib.h" void SetUpOnce(void) { - ASSERT_SYS(0, 0, pledge("stdio", 0)); + pledge("stdio", 0); + errno = 0; } TEST(_countbits, testLow) { diff --git a/test/libc/bits/integralarithmetic_test.c b/test/libc/bits/integralarithmetic_test.c index 45ba9dcaa..04b3b022d 100644 --- a/test/libc/bits/integralarithmetic_test.c +++ b/test/libc/bits/integralarithmetic_test.c @@ -26,7 +26,8 @@ #define ROL(w, k) ((w) << (k) | CheckUnsigned(w) >> (sizeof(w) * 8 - (k))) void SetUpOnce(void) { - ASSERT_SYS(0, 0, pledge("stdio", 0)); + pledge("stdio", 0); + errno = 0; } TEST(TwosComplementBane, LiteralsThatAreLiterallyTheSameNumber) { diff --git a/test/libc/bits/morton_test.c b/test/libc/bits/morton_test.c index 0c9a2ac5d..c5fe0f711 100644 --- a/test/libc/bits/morton_test.c +++ b/test/libc/bits/morton_test.c @@ -18,14 +18,14 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/bits/morton.h" #include "libc/calls/calls.h" -#include "libc/errno.h" #include "libc/nexgen32e/kcpuids.h" #include "libc/str/str.h" #include "libc/testlib/ezbench.h" #include "libc/testlib/testlib.h" void SetUpOnce(void) { - ASSERT_SYS(0, 0, pledge("stdio rpath", 0)); + pledge("stdio rpath", 0); + errno = 0; } TEST(morton, test) { diff --git a/test/libc/bits/popcnt_test.c b/test/libc/bits/popcnt_test.c index fbcc42dd5..e0ee565f6 100644 --- a/test/libc/bits/popcnt_test.c +++ b/test/libc/bits/popcnt_test.c @@ -23,7 +23,8 @@ #include "libc/testlib/testlib.h" void SetUpOnce(void) { - ASSERT_SYS(0, 0, pledge("stdio", 0)); + pledge("stdio", 0); + errno = 0; } TEST(popcnt, test) { diff --git a/test/libc/bits/rounddown2pow_test.c b/test/libc/bits/rounddown2pow_test.c index 2b09f7bbf..c5aff3ad6 100644 --- a/test/libc/bits/rounddown2pow_test.c +++ b/test/libc/bits/rounddown2pow_test.c @@ -18,10 +18,12 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/bits/bits.h" #include "libc/calls/calls.h" +#include "libc/errno.h" #include "libc/testlib/testlib.h" void SetUpOnce(void) { - ASSERT_SYS(0, 0, pledge("stdio", 0)); + pledge("stdio", 0); + errno = 0; } TEST(rounddown2pow, test) { diff --git a/test/libc/bits/roundup2log_test.c b/test/libc/bits/roundup2log_test.c index b498b3cf2..4370614f4 100644 --- a/test/libc/bits/roundup2log_test.c +++ b/test/libc/bits/roundup2log_test.c @@ -18,10 +18,12 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/bits/bits.h" #include "libc/calls/calls.h" +#include "libc/errno.h" #include "libc/testlib/testlib.h" void SetUpOnce(void) { - ASSERT_SYS(0, 0, pledge("stdio", 0)); + pledge("stdio", 0); + errno = 0; } TEST(roundup2log, test) { diff --git a/test/libc/bits/roundup2pow_test.c b/test/libc/bits/roundup2pow_test.c index a58903214..a338819bd 100644 --- a/test/libc/bits/roundup2pow_test.c +++ b/test/libc/bits/roundup2pow_test.c @@ -18,6 +18,7 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/bits/bits.h" #include "libc/calls/calls.h" +#include "libc/errno.h" #include "libc/log/check.h" #include "libc/macros.internal.h" #include "libc/math.h" @@ -25,7 +26,8 @@ #include "libc/testlib/testlib.h" void SetUpOnce(void) { - ASSERT_SYS(0, 0, pledge("stdio", 0)); + pledge("stdio", 0); + errno = 0; } TEST(roundup2pow, test) { diff --git a/test/libc/calls/_timespec_test.c b/test/libc/calls/_timespec_test.c index 61b967beb..46e29eabd 100644 --- a/test/libc/calls/_timespec_test.c +++ b/test/libc/calls/_timespec_test.c @@ -59,20 +59,6 @@ TEST(_timespec_frommicros, test) { _timespec_eq((struct timespec){0, 2000}, _timespec_frommicros(2))); EXPECT_TRUE( _timespec_eq((struct timespec){1}, _timespec_frommicros(1000000))); - EXPECT_TRUE(_timespec_eq((struct timespec){2, 123000}, - _timespec_frommicros(2000123))); -} - -TEST(_timespec_tomillis, test) { - EXPECT_EQ(2123, _timespec_tomillis((struct timespec){2, 123000000})); -} - -TEST(_timespec_tomicros, test) { - EXPECT_EQ(2000123, _timespec_tomicros((struct timespec){2, 123000})); -} - -TEST(_timespec_tonanos, test) { - EXPECT_EQ(2000123000, _timespec_tonanos((struct timespec){2, 123000})); } static long mod(long x, long y) { diff --git a/test/libc/calls/access_test.c b/test/libc/calls/access_test.c index 0f7a6db52..10c7e9cb7 100644 --- a/test/libc/calls/access_test.c +++ b/test/libc/calls/access_test.c @@ -30,7 +30,8 @@ char testlib_enable_tmp_setup_teardown; void SetUpOnce(void) { - ASSERT_SYS(0, 0, pledge("stdio rpath wpath cpath fattr", 0)); + pledge("stdio rpath wpath cpath fattr", 0); + errno = 0; } TEST(access, efault) { diff --git a/test/libc/calls/chdir_test.c b/test/libc/calls/chdir_test.c index 9fb7f5043..270b0aeb8 100644 --- a/test/libc/calls/chdir_test.c +++ b/test/libc/calls/chdir_test.c @@ -25,7 +25,8 @@ char testlib_enable_tmp_setup_teardown; void SetUpOnce(void) { - ASSERT_SYS(0, 0, pledge("stdio rpath wpath cpath fattr", 0)); + pledge("stdio rpath wpath cpath fattr", 0); + errno = 0; } TEST(chdir, efault) { diff --git a/test/libc/calls/clock_gettime_test.c b/test/libc/calls/clock_gettime_test.c index 8d77d161b..78de1fc62 100644 --- a/test/libc/calls/clock_gettime_test.c +++ b/test/libc/calls/clock_gettime_test.c @@ -22,7 +22,6 @@ #include "libc/calls/struct/timeval.h" #include "libc/calls/syscall_support-sysv.internal.h" #include "libc/dce.h" -#include "libc/errno.h" #include "libc/nexgen32e/rdtsc.h" #include "libc/runtime/runtime.h" #include "libc/sysv/consts/auxv.h" diff --git a/test/libc/calls/commandv_test.c b/test/libc/calls/commandv_test.c index 4f18ec745..df11e4a34 100644 --- a/test/libc/calls/commandv_test.c +++ b/test/libc/calls/commandv_test.c @@ -40,7 +40,8 @@ char pathbuf[PATH_MAX]; char testlib_enable_tmp_setup_teardown; void SetUpOnce(void) { - ASSERT_SYS(0, 0, pledge("stdio rpath wpath cpath fattr", 0)); + pledge("stdio rpath wpath cpath fattr", 0); + errno = 0; } void SetUp(void) { diff --git a/test/libc/calls/dup_test.c b/test/libc/calls/dup_test.c index 3eda2c135..3386be292 100644 --- a/test/libc/calls/dup_test.c +++ b/test/libc/calls/dup_test.c @@ -32,6 +32,11 @@ char testlib_enable_tmp_setup_teardown; +void SetUpOnce(void) { + pledge("stdio rpath wpath cpath fattr proc exec", 0); + errno = 0; +} + static textstartup void TestInit(int argc, char **argv) { int fd; if (argc == 2 && !strcmp(argv[1], "boop")) { diff --git a/test/libc/calls/fcntl_test.c b/test/libc/calls/fcntl_test.c index 119eedf65..b3258a32a 100644 --- a/test/libc/calls/fcntl_test.c +++ b/test/libc/calls/fcntl_test.c @@ -31,7 +31,8 @@ char testlib_enable_tmp_setup_teardown; void SetUpOnce(void) { - ASSERT_SYS(0, 0, pledge("stdio rpath wpath cpath fattr", 0)); + pledge("stdio rpath wpath cpath fattr", 0); + errno = 0; } TEST(fcntl_getfl, testRemembersAccessMode) { diff --git a/test/libc/calls/fileexists_test.c b/test/libc/calls/fileexists_test.c index 7f73c472f..d0f3ba80d 100644 --- a/test/libc/calls/fileexists_test.c +++ b/test/libc/calls/fileexists_test.c @@ -24,7 +24,8 @@ char testlib_enable_tmp_setup_teardown; void SetUpOnce(void) { - ASSERT_SYS(0, 0, pledge("stdio rpath wpath cpath fattr", 0)); + pledge("stdio rpath wpath cpath fattr", 0); + errno = 0; } TEST(fileexists, test) { diff --git a/test/libc/calls/ftruncate_test.c b/test/libc/calls/ftruncate_test.c index 082b942a5..45369f707 100644 --- a/test/libc/calls/ftruncate_test.c +++ b/test/libc/calls/ftruncate_test.c @@ -33,7 +33,8 @@ struct stat st; char testlib_enable_tmp_setup_teardown; void SetUpOnce(void) { - ASSERT_SYS(0, 0, pledge("stdio rpath wpath cpath", 0)); + pledge("stdio rpath wpath cpath", 0); + errno = 0; } TEST(ftruncate, test) { diff --git a/test/libc/calls/getcwd_test.c b/test/libc/calls/getcwd_test.c index 4c9f5695f..2f1f179ef 100644 --- a/test/libc/calls/getcwd_test.c +++ b/test/libc/calls/getcwd_test.c @@ -17,6 +17,7 @@ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/calls/calls.h" +#include "libc/errno.h" #include "libc/fmt/conv.h" #include "libc/fmt/fmt.h" #include "libc/log/check.h" @@ -28,7 +29,8 @@ char testlib_enable_tmp_setup_teardown; void SetUpOnce(void) { - ASSERT_SYS(0, 0, pledge("stdio rpath cpath fattr", 0)); + pledge("stdio rpath cpath fattr", 0); + errno = 0; } TEST(getcwd, test) { diff --git a/test/libc/calls/lseek_test.c b/test/libc/calls/lseek_test.c index a74a785a9..43a321a3b 100644 --- a/test/libc/calls/lseek_test.c +++ b/test/libc/calls/lseek_test.c @@ -28,7 +28,8 @@ char testlib_enable_tmp_setup_teardown; void SetUpOnce(void) { - ASSERT_SYS(0, 0, pledge("stdio rpath wpath cpath fattr proc", 0)); + pledge("stdio rpath wpath cpath fattr proc", 0); + errno = 0; } TEST(lseek, wat) { diff --git a/test/libc/calls/mkdir_test.c b/test/libc/calls/mkdir_test.c index bb34e0e02..d152de895 100644 --- a/test/libc/calls/mkdir_test.c +++ b/test/libc/calls/mkdir_test.c @@ -24,7 +24,6 @@ #include "libc/mem/mem.h" #include "libc/runtime/gc.internal.h" #include "libc/runtime/runtime.h" -#include "libc/str/str.h" #include "libc/sysv/consts/o.h" #include "libc/testlib/testlib.h" #include "libc/x/x.h" @@ -32,7 +31,8 @@ char testlib_enable_tmp_setup_teardown; void SetUpOnce(void) { - ASSERT_SYS(0, 0, pledge("stdio rpath wpath cpath fattr", 0)); + pledge("stdio rpath wpath cpath fattr", 0); + errno = 0; } void SetUp(void) { diff --git a/test/libc/calls/nanosleep_test.c b/test/libc/calls/nanosleep_test.c index d7f15d4d2..b70a50825 100644 --- a/test/libc/calls/nanosleep_test.c +++ b/test/libc/calls/nanosleep_test.c @@ -20,7 +20,6 @@ #include "libc/calls/struct/itimerval.h" #include "libc/calls/struct/sigaction.h" #include "libc/calls/struct/timespec.h" -#include "libc/errno.h" #include "libc/intrin/describeflags.internal.h" #include "libc/intrin/kprintf.h" #include "libc/sysv/consts/itimer.h" diff --git a/test/libc/calls/open_test.c b/test/libc/calls/open_test.c index 5bd30ab4b..c91ac55f1 100644 --- a/test/libc/calls/open_test.c +++ b/test/libc/calls/open_test.c @@ -19,10 +19,8 @@ #include "libc/calls/internal.h" #include "libc/dce.h" #include "libc/errno.h" -#include "libc/intrin/kprintf.h" #include "libc/macros.internal.h" #include "libc/runtime/gc.internal.h" -#include "libc/str/str.h" #include "libc/sysv/consts/o.h" #include "libc/testlib/testlib.h" #include "libc/x/x.h" @@ -30,7 +28,8 @@ char testlib_enable_tmp_setup_teardown; void SetUpOnce(void) { - ASSERT_SYS(0, 0, pledge("stdio rpath wpath cpath fattr", 0)); + pledge("stdio rpath wpath cpath fattr", 0); + errno = 0; } TEST(open, efault) { @@ -52,7 +51,7 @@ TEST(open, enotdir) { TEST(open, eexist) { ASSERT_SYS(0, 0, touch("exists", 0644)); - ASSERT_SYS(EEXIST, -1, open("exists", O_WRONLY | O_CREAT | O_EXCL, 0644)); + ASSERT_SYS(EEXIST, -1, open("exists", O_WRONLY | O_CREAT | O_EXCL)); } TEST(open, doubleSlash_worksAndGetsNormalizedOnWindows) { diff --git a/test/libc/calls/openbsd_test.c b/test/libc/calls/openbsd_test.c deleted file mode 100644 index 981f82a6d..000000000 --- a/test/libc/calls/openbsd_test.c +++ /dev/null @@ -1,61 +0,0 @@ -/*-*- mode:c;indent-tabs-mode:nil;c-basic-offset:2;tab-width:8;coding:utf-8 -*-│ -│vi: set net ft=c ts=2 sts=2 sw=2 fenc=utf-8 :vi│ -╞══════════════════════════════════════════════════════════════════════════════╡ -│ Copyright 2022 Justine Alexandra Roberts Tunney │ -│ │ -│ Permission to use, copy, modify, and/or distribute this software for │ -│ any purpose with or without fee is hereby granted, provided that the │ -│ above copyright notice and this permission notice appear in all copies. │ -│ │ -│ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL │ -│ WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED │ -│ WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE │ -│ AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL │ -│ DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR │ -│ PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER │ -│ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ -│ PERFORMANCE OF THIS SOFTWARE. │ -╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/calls/calls.h" -#include "libc/sysv/consts/o.h" -#include "libc/testlib/testlib.h" - -#define SPAWN(METHOD) \ - { \ - int ws, pid; \ - ASSERT_NE(-1, (pid = METHOD())); \ - if (!pid) { - -#define EXITS(rc) \ - _Exit(0); \ - } \ - ASSERT_NE(-1, wait(&ws)); \ - ASSERT_TRUE(WIFEXITED(ws)); \ - ASSERT_EQ(rc, WEXITSTATUS(ws)); \ - } - -#define TERMS(sig) \ - _Exit(0); \ - } \ - ASSERT_NE(-1, wait(&ws)); \ - ASSERT_TRUE(WIFSIGNALED(ws)); \ - ASSERT_EQ(sig, WTERMSIG(ws)); \ - } - -char testlib_enable_tmp_setup_teardown; - -TEST(pledge, promisedSyscallsCanBeCalled_ieEnosysIsIgnored) { - SPAWN(fork); - EXPECT_SYS(0, 0, pledge("stdio", 0)); - EXPECT_SYS(0, 0, read(0, 0, 0)); - EXITS(0); -} - -TEST(unveil, pathBecomeVisible_ieEnosysIsIgnored) { - SPAWN(fork); - EXPECT_SYS(0, 0, touch("foo", 0644)); - EXPECT_SYS(0, 0, unveil("foo", "r")); - EXPECT_SYS(0, 0, unveil(0, 0)); - EXPECT_SYS(0, 3, open("foo", O_RDONLY)); - EXITS(0); -} diff --git a/test/libc/calls/pledge2_test.c b/test/libc/calls/pledge2_test.c index c3c2b2804..9464ad88c 100644 --- a/test/libc/calls/pledge2_test.c +++ b/test/libc/calls/pledge2_test.c @@ -21,7 +21,6 @@ #include "libc/calls/struct/seccomp.h" #include "libc/calls/syscall_support-sysv.internal.h" #include "libc/dce.h" -#include "libc/errno.h" #include "libc/intrin/kprintf.h" #include "libc/intrin/promises.internal.h" #include "libc/runtime/runtime.h" @@ -99,7 +98,7 @@ TEST(pledge, testLogMessage_inSoftyMode) { read(fds[0], msg, sizeof(msg)); close(fds[0]); if (IsLinux()) { - ASSERT_STARTSWITH("error: pledge inet for socket", msg); + ASSERT_STARTSWITH("error: maybe pledge inet", msg); } } @@ -117,7 +116,7 @@ TEST(pledge, testLogMessage_onKillProcess) { read(fds[0], msg, sizeof(msg)); close(fds[0]); if (IsLinux()) { - ASSERT_STARTSWITH("error: pledge inet for socket", msg); + ASSERT_STARTSWITH("error: maybe pledge inet", msg); } } diff --git a/test/libc/calls/pledge_test.c b/test/libc/calls/pledge_test.c index 532cdce93..78be4bde1 100644 --- a/test/libc/calls/pledge_test.c +++ b/test/libc/calls/pledge_test.c @@ -82,7 +82,6 @@ int extract(const char *from, const char *to, int mode) { } void SetUp(void) { - __enable_threads(); if (!__is_linux_2_6_23() && !IsOpenbsd()) exit(0); ASSERT_SYS(0, 0, extract("/zip/life.elf", "life.elf", 0755)); ASSERT_SYS(0, 0, extract("/zip/sock.elf", "sock.elf", 0755)); diff --git a/test/libc/calls/pread_test.c b/test/libc/calls/pread_test.c index a3e00512a..0a7f0a754 100644 --- a/test/libc/calls/pread_test.c +++ b/test/libc/calls/pread_test.c @@ -25,7 +25,8 @@ char buf[8]; char testlib_enable_tmp_setup_teardown; void SetUpOnce(void) { - ASSERT_SYS(0, 0, pledge("stdio rpath wpath cpath fattr", 0)); + pledge("stdio rpath wpath cpath fattr", 0); + errno = 0; } TEST(pread, testReadPastEof_returnsZero) { diff --git a/test/libc/calls/printargs_test.c b/test/libc/calls/printargs_test.c index 117d838be..f358b9c0f 100644 --- a/test/libc/calls/printargs_test.c +++ b/test/libc/calls/printargs_test.c @@ -23,7 +23,8 @@ #include "libc/x/x.h" void SetUpOnce(void) { - ASSERT_SYS(0, 0, pledge("stdio rpath tty proc", 0)); + pledge("stdio rpath tty proc", 0); + errno = 0; } /** diff --git a/test/libc/calls/pwrite_test.c b/test/libc/calls/pwrite_test.c index c22fbf266..c9d8f92fb 100644 --- a/test/libc/calls/pwrite_test.c +++ b/test/libc/calls/pwrite_test.c @@ -26,7 +26,8 @@ struct stat st; char testlib_enable_tmp_setup_teardown; void SetUpOnce(void) { - ASSERT_SYS(0, 0, pledge("stdio rpath wpath cpath fattr", 0)); + pledge("stdio rpath wpath cpath fattr", 0); + errno = 0; } TEST(pwrite, testWritePastEof_extendsFile) { diff --git a/test/libc/calls/readansi_test.c b/test/libc/calls/readansi_test.c index 9cf9c6550..12f4c6e41 100644 --- a/test/libc/calls/readansi_test.c +++ b/test/libc/calls/readansi_test.c @@ -18,7 +18,6 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/calls/calls.h" #include "libc/runtime/runtime.h" -#include "libc/str/str.h" #include "libc/testlib/testlib.h" #include "libc/time/time.h" #include "libc/x/x.h" diff --git a/test/libc/calls/readlinkat_test.c b/test/libc/calls/readlinkat_test.c index 9a323d744..d96204829 100644 --- a/test/libc/calls/readlinkat_test.c +++ b/test/libc/calls/readlinkat_test.c @@ -18,6 +18,7 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/calls/calls.h" #include "libc/calls/struct/stat.h" +#include "libc/errno.h" #include "libc/log/log.h" #include "libc/runtime/gc.h" #include "libc/runtime/gc.internal.h" @@ -32,7 +33,8 @@ char testlib_enable_tmp_setup_teardown; void SetUpOnce(void) { - ASSERT_SYS(0, 0, pledge("stdio rpath wpath cpath fattr", 0)); + pledge("stdio rpath wpath cpath fattr", 0); + errno = 0; } TEST(readlink, enoent) { diff --git a/test/libc/calls/renameat_test.c b/test/libc/calls/renameat_test.c index a5586888e..e2da3c513 100644 --- a/test/libc/calls/renameat_test.c +++ b/test/libc/calls/renameat_test.c @@ -25,7 +25,8 @@ char testlib_enable_tmp_setup_teardown; void SetUpOnce(void) { - ASSERT_SYS(0, 0, pledge("stdio rpath wpath cpath fattr", 0)); + pledge("stdio rpath wpath cpath fattr", 0); + errno = 0; } TEST(rename, enoent) { diff --git a/test/libc/calls/reservefd_test.c b/test/libc/calls/reservefd_test.c index c54d69df2..36cc18f4f 100644 --- a/test/libc/calls/reservefd_test.c +++ b/test/libc/calls/reservefd_test.c @@ -29,9 +29,7 @@ #include "libc/macros.internal.h" #include "libc/nexgen32e/threaded.h" #include "libc/rand/rand.h" -#include "libc/runtime/internal.h" #include "libc/runtime/stack.h" -#include "libc/str/str.h" #include "libc/sysv/consts/clone.h" #include "libc/sysv/consts/itimer.h" #include "libc/sysv/consts/map.h" @@ -50,11 +48,6 @@ STATIC_YOINK("libc/testlib/hyperion.txt"); #define THREADS 8 -void SetUpOnce(void) { - __enable_threads(); - ASSERT_SYS(0, 0, pledge("stdio rpath", 0)); -} - void PullSomeZipFilesIntoLinkage(void) { gmtime(0); } diff --git a/test/libc/calls/seccomp_test.c b/test/libc/calls/seccomp_test.c index fe7add636..eb91ccac1 100644 --- a/test/libc/calls/seccomp_test.c +++ b/test/libc/calls/seccomp_test.c @@ -34,7 +34,8 @@ #include "tool/net/sandbox.h" void SetUpOnce(void) { - ASSERT_SYS(0, 0, pledge("stdio proc", 0)); + pledge("stdio proc", 0); + errno = 0; } // It's been reported that Chromebooks return EINVAL here. diff --git a/test/libc/calls/setitimer_test.c b/test/libc/calls/setitimer_test.c index 8fd29aaa6..84ffcb505 100644 --- a/test/libc/calls/setitimer_test.c +++ b/test/libc/calls/setitimer_test.c @@ -31,7 +31,8 @@ bool gotsig; void SetUpOnce(void) { - ASSERT_SYS(0, 0, pledge("stdio", 0)); + pledge("stdio", 0); + errno = 0; } void OnSigAlrm(int sig, siginfo_t *si, ucontext_t *ctx) { diff --git a/test/libc/calls/sigaction_test.c b/test/libc/calls/sigaction_test.c index 93d983b9c..e25b9765f 100644 --- a/test/libc/calls/sigaction_test.c +++ b/test/libc/calls/sigaction_test.c @@ -34,7 +34,8 @@ struct sigaction oldsa; volatile bool gotsigint; void SetUpOnce(void) { - ASSERT_SYS(0, 0, pledge("stdio rpath proc", 0)); + pledge("stdio rpath proc", 0); + errno = 0; } void OnSigInt(int sig) { diff --git a/test/libc/calls/signal_test.c b/test/libc/calls/signal_test.c index 100880b91..6683ebf70 100644 --- a/test/libc/calls/signal_test.c +++ b/test/libc/calls/signal_test.c @@ -31,7 +31,8 @@ testonly void OnUsr1(int sig) { } void SetUpOnce(void) { - ASSERT_SYS(0, 0, pledge("stdio proc", 0)); + pledge("stdio proc", 0); + errno = 0; } TEST(signal, test) { diff --git a/test/libc/calls/sigprocmask_test.c b/test/libc/calls/sigprocmask_test.c index 129bf3b60..c0d6d19a1 100644 --- a/test/libc/calls/sigprocmask_test.c +++ b/test/libc/calls/sigprocmask_test.c @@ -29,7 +29,8 @@ volatile int n; void SetUpOnce(void) { - ASSERT_SYS(0, 0, pledge("stdio proc", 0)); + pledge("stdio proc", 0); + errno = 0; } void OnSig(int sig, siginfo_t *si, ucontext_t *ctx) { diff --git a/test/libc/calls/stat_test.c b/test/libc/calls/stat_test.c index cd66edc11..dca285ab1 100644 --- a/test/libc/calls/stat_test.c +++ b/test/libc/calls/stat_test.c @@ -37,7 +37,8 @@ STATIC_YOINK("zip_uri_support"); char testlib_enable_tmp_setup_teardown; void SetUpOnce(void) { - ASSERT_SYS(0, 0, pledge("stdio rpath wpath cpath fattr", 0)); + pledge("stdio rpath wpath cpath fattr", 0); + errno = 0; } TEST(stat_010, testEmptyFile_sizeIsZero) { diff --git a/test/libc/calls/symlinkat_test.c b/test/libc/calls/symlinkat_test.c index 97dab52b8..13737d3cc 100644 --- a/test/libc/calls/symlinkat_test.c +++ b/test/libc/calls/symlinkat_test.c @@ -18,7 +18,6 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/calls/calls.h" #include "libc/calls/struct/stat.h" -#include "libc/errno.h" #include "libc/fmt/fmt.h" #include "libc/fmt/itoa.h" #include "libc/rand/rand.h" @@ -32,7 +31,8 @@ char p[2][PATH_MAX]; struct stat st; void SetUpOnce(void) { - ASSERT_SYS(0, 0, pledge("stdio rpath wpath cpath fattr", 0)); + pledge("stdio rpath wpath cpath fattr", 0); + errno = 0; } TEST(symlink, enoent) { diff --git a/test/libc/calls/test.mk b/test/libc/calls/test.mk index 3546f1348..11d91893a 100644 --- a/test/libc/calls/test.mk +++ b/test/libc/calls/test.mk @@ -73,13 +73,13 @@ o/$(MODE)/test/libc/calls/%.com.dbg: \ @$(APELINK) o/$(MODE)/test/libc/calls/tiny64.elf.zip.o: test/libc/calls/tiny64.elf - @$(COMPILE) -wAZIPOBJ $(ZIPOBJ) $(ZIPOBJ_FLAGS) -B $(OUTPUT_OPTION) $< + @$(COMPILE) -AZIPOBJ $(ZIPOBJ) $(ZIPOBJ_FLAGS) -B $(OUTPUT_OPTION) $< o/$(MODE)/test/libc/calls/life-nomod.com.zip.o: o/$(MODE)/test/libc/calls/life-nomod.com - @$(COMPILE) -wAZIPOBJ $(ZIPOBJ) $(ZIPOBJ_FLAGS) -B $(OUTPUT_OPTION) $< + @$(COMPILE) -AZIPOBJ $(ZIPOBJ) $(ZIPOBJ_FLAGS) -B $(OUTPUT_OPTION) $< o/$(MODE)/test/libc/calls/life-classic.com.zip.o: o/$(MODE)/test/libc/calls/life-classic.com - @$(COMPILE) -wAZIPOBJ $(ZIPOBJ) $(ZIPOBJ_FLAGS) -B $(OUTPUT_OPTION) $< + @$(COMPILE) -AZIPOBJ $(ZIPOBJ) $(ZIPOBJ_FLAGS) -B $(OUTPUT_OPTION) $< o/$(MODE)/test/libc/calls/life-classic.com.dbg: \ $(LIBC_RUNTIME) \ diff --git a/test/libc/calls/unlinkat_test.c b/test/libc/calls/unlinkat_test.c index d19facdaf..10a6f8e33 100644 --- a/test/libc/calls/unlinkat_test.c +++ b/test/libc/calls/unlinkat_test.c @@ -18,14 +18,14 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/calls/calls.h" #include "libc/dce.h" -#include "libc/errno.h" #include "libc/sysv/consts/at.h" #include "libc/testlib/testlib.h" char testlib_enable_tmp_setup_teardown; void SetUpOnce(void) { - ASSERT_SYS(0, 0, pledge("stdio rpath wpath cpath fattr", 0)); + pledge("stdio rpath wpath cpath fattr", 0); + errno = 0; } TEST(unlink, efault) { diff --git a/test/libc/calls/unveil_test.c b/test/libc/calls/unveil_test.c index 62550410a..d141dba5b 100644 --- a/test/libc/calls/unveil_test.c +++ b/test/libc/calls/unveil_test.c @@ -26,7 +26,6 @@ #include "libc/intrin/kprintf.h" #include "libc/mem/io.h" #include "libc/runtime/gc.h" -#include "libc/runtime/internal.h" #include "libc/runtime/runtime.h" #include "libc/sock/sock.h" #include "libc/stdio/stdio.h" @@ -73,7 +72,6 @@ static bool SupportsLandlock(void) { } void SetUpOnce(void) { - __enable_threads(); if (!(IsLinux() && SupportsLandlock()) && !IsOpenbsd()) exit(0); } diff --git a/test/libc/calls/utimensat_test.c b/test/libc/calls/utimensat_test.c index ff46276fb..cba8dca76 100644 --- a/test/libc/calls/utimensat_test.c +++ b/test/libc/calls/utimensat_test.c @@ -30,7 +30,8 @@ char testlib_enable_tmp_setup_teardown; void SetUpOnce(void) { - ASSERT_SYS(0, 0, pledge("stdio rpath wpath cpath fattr", 0)); + pledge("stdio rpath wpath cpath fattr", 0); + errno = 0; } TEST(utimensat, test) { diff --git a/test/libc/calls/writev_test.c b/test/libc/calls/writev_test.c index 07996d666..50b33b02c 100644 --- a/test/libc/calls/writev_test.c +++ b/test/libc/calls/writev_test.c @@ -32,7 +32,8 @@ char testlib_enable_tmp_setup_teardown; void SetUpOnce(void) { - ASSERT_SYS(0, 0, pledge("stdio rpath wpath cpath fattr", 0)); + pledge("stdio rpath wpath cpath fattr", 0); + errno = 0; } TEST(writev, test) { diff --git a/test/libc/dns/comparednsnames_test.c b/test/libc/dns/comparednsnames_test.c index a9f7760a9..9d889ba29 100644 --- a/test/libc/dns/comparednsnames_test.c +++ b/test/libc/dns/comparednsnames_test.c @@ -23,7 +23,8 @@ #include "libc/testlib/testlib.h" void SetUpOnce(void) { - ASSERT_SYS(0, 0, pledge("stdio rpath", 0)); + pledge("stdio rpath", 0); + errno = 0; } TEST(CompareDnsNames, testEmpty) { diff --git a/test/libc/dns/prototxt_test.c b/test/libc/dns/prototxt_test.c index f2c05a127..9b18c1834 100644 --- a/test/libc/dns/prototxt_test.c +++ b/test/libc/dns/prototxt_test.c @@ -30,7 +30,6 @@ #include "libc/dns/ent.h" #include "libc/dns/prototxt.h" #include "libc/stdio/stdio.h" -#include "libc/str/str.h" #include "libc/testlib/testlib.h" char testlib_enable_tmp_setup_teardown; diff --git a/test/libc/dns/resolvehostsreverse_test.c b/test/libc/dns/resolvehostsreverse_test.c index 9ef955a5f..5adcf4208 100644 --- a/test/libc/dns/resolvehostsreverse_test.c +++ b/test/libc/dns/resolvehostsreverse_test.c @@ -17,8 +17,6 @@ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/dns/hoststxt.h" -#include "libc/mem/mem.h" -#include "libc/str/str.h" #include "libc/sysv/consts/af.h" #include "libc/testlib/testlib.h" diff --git a/test/libc/dns/servicestxt_test.c b/test/libc/dns/servicestxt_test.c index bd12510e3..0be5d810e 100644 --- a/test/libc/dns/servicestxt_test.c +++ b/test/libc/dns/servicestxt_test.c @@ -25,11 +25,11 @@ │ OTHER DEALINGS IN THE SOFTWARE. │ │ │ ╚─────────────────────────────────────────────────────────────────────────────*/ +#include "libc/dns/servicestxt.h" + #include "libc/calls/calls.h" #include "libc/dns/dns.h" #include "libc/dns/ent.h" -#include "libc/dns/servicestxt.h" -#include "libc/str/str.h" #include "libc/testlib/testlib.h" char testlib_enable_tmp_setup_teardown; diff --git a/test/libc/fmt/formatbinary64_test.c b/test/libc/fmt/formatbinary64_test.c index 3a42b1d16..930a946d8 100644 --- a/test/libc/fmt/formatbinary64_test.c +++ b/test/libc/fmt/formatbinary64_test.c @@ -18,7 +18,6 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/fmt/fmt.h" #include "libc/fmt/itoa.h" -#include "libc/str/str.h" #include "libc/testlib/ezbench.h" #include "libc/testlib/testlib.h" diff --git a/test/libc/fmt/formatflex64_test.c b/test/libc/fmt/formatflex64_test.c index 1e2db887c..974966272 100644 --- a/test/libc/fmt/formatflex64_test.c +++ b/test/libc/fmt/formatflex64_test.c @@ -18,7 +18,6 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/fmt/fmt.h" #include "libc/fmt/itoa.h" -#include "libc/str/str.h" #include "libc/testlib/testlib.h" char buf[25]; diff --git a/test/libc/fmt/formathex64_test.c b/test/libc/fmt/formathex64_test.c index d03236170..9b41dda2f 100644 --- a/test/libc/fmt/formathex64_test.c +++ b/test/libc/fmt/formathex64_test.c @@ -18,7 +18,6 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/fmt/fmt.h" #include "libc/fmt/itoa.h" -#include "libc/str/str.h" #include "libc/testlib/ezbench.h" #include "libc/testlib/testlib.h" diff --git a/test/libc/fmt/lengthuint64_test.c b/test/libc/fmt/lengthuint64_test.c index fbc8b1605..7c4b2cee9 100644 --- a/test/libc/fmt/lengthuint64_test.c +++ b/test/libc/fmt/lengthuint64_test.c @@ -18,7 +18,6 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/fmt/itoa.h" #include "libc/limits.h" -#include "libc/str/str.h" #include "libc/testlib/ezbench.h" #include "libc/testlib/testlib.h" diff --git a/test/libc/fmt/sscanf_test.c b/test/libc/fmt/sscanf_test.c index bce247645..2ce8194fa 100644 --- a/test/libc/fmt/sscanf_test.c +++ b/test/libc/fmt/sscanf_test.c @@ -143,9 +143,9 @@ TEST(sscanf, testDiscard_notIncludedInCount) { } TEST(sscanf, testFixedWidthFormat_Integer) { - int r, g, b; - ASSERT_EQ(3, sscanf("#321030", "#%2x%2b%2d", &r, &g, &b)); - ASSERT_EQ(0x32, r); - ASSERT_EQ(2, g); - ASSERT_EQ(30, b); + int r, g, b; + ASSERT_EQ(3, sscanf("#321030", "#%2x%2b%2d", &r, &g, &b)); + ASSERT_EQ(0x32, r); + ASSERT_EQ(2, g); + ASSERT_EQ(30, b); } diff --git a/test/libc/intrin/pthread_mutex_lock_test.c b/test/libc/intrin/pthread_mutex_lock_test.c index f60e28f1e..8582c7684 100644 --- a/test/libc/intrin/pthread_mutex_lock_test.c +++ b/test/libc/intrin/pthread_mutex_lock_test.c @@ -54,11 +54,6 @@ _Alignas(64) char slock; pthread_mutex_t mylock; struct spawn th[THREADS]; -void SetUpOnce(void) { - __enable_threads(); - ASSERT_SYS(0, 0, pledge("stdio rpath", 0)); -} - TEST(pthread_mutex_lock, normal) { pthread_mutex_t lock; pthread_mutexattr_t attr; diff --git a/test/libc/log/backtrace.c b/test/libc/log/backtrace.c index 9016e1ce1..857e7d8dd 100644 --- a/test/libc/log/backtrace.c +++ b/test/libc/log/backtrace.c @@ -19,7 +19,6 @@ #include "libc/fmt/conv.h" #include "libc/limits.h" #include "libc/log/log.h" -#include "libc/mem/mem.h" #include "libc/runtime/symbols.internal.h" #include "libc/stdio/stdio.h" #include "libc/str/str.h" diff --git a/test/libc/log/test.mk b/test/libc/log/test.mk index 7df79b700..00e06a1f6 100644 --- a/test/libc/log/test.mk +++ b/test/libc/log/test.mk @@ -78,11 +78,11 @@ o/$(MODE)/test/libc/log/backtrace.com.dbg: \ o/$(MODE)/test/libc/log/backtrace.com.zip.o: \ o/$(MODE)/test/libc/log/backtrace.com - @$(COMPILE) -wAZIPOBJ $(ZIPOBJ) $(ZIPOBJ_FLAGS) -B $(OUTPUT_OPTION) $< + @$(COMPILE) -AZIPOBJ $(ZIPOBJ) $(ZIPOBJ_FLAGS) -B $(OUTPUT_OPTION) $< o/$(MODE)/test/libc/log/backtrace.com.dbg.zip.o: \ o/$(MODE)/test/libc/log/backtrace.com.dbg - @$(COMPILE) -wAZIPOBJ $(ZIPOBJ) $(ZIPOBJ_FLAGS) -B $(OUTPUT_OPTION) $< + @$(COMPILE) -AZIPOBJ $(ZIPOBJ) $(ZIPOBJ_FLAGS) -B $(OUTPUT_OPTION) $< .PHONY: o/$(MODE)/test/libc/log o/$(MODE)/test/libc/log: \ diff --git a/test/libc/mem/malloc_test.c b/test/libc/mem/malloc_test.c index e203484a3..9d9672054 100644 --- a/test/libc/mem/malloc_test.c +++ b/test/libc/mem/malloc_test.c @@ -46,7 +46,8 @@ void SetUp(void) { } void SetUpOnce(void) { - ASSERT_SYS(0, 0, pledge("stdio rpath", 0)); + pledge("stdio rpath", 0); + errno = 0; } TEST(malloc, zeroMeansOne) { diff --git a/test/libc/mem/test.mk b/test/libc/mem/test.mk index 2ad5f6860..b27d9b1cf 100644 --- a/test/libc/mem/test.mk +++ b/test/libc/mem/test.mk @@ -89,17 +89,17 @@ o/$(MODE)/test/libc/mem/prog/life.com.dbg: \ o/$(MODE)/test/libc/mem/prog/life.elf: \ o/$(MODE)/tool/build/assimilate.com \ o/$(MODE)/test/libc/mem/prog/life.com - @$(COMPILE) -wACP -T$@ \ + @$(COMPILE) -ACP -T$@ \ build/bootstrap/cp.com \ o/$(MODE)/test/libc/mem/prog/life.com \ o/$(MODE)/test/libc/mem/prog/life.elf - @$(COMPILE) -wAASSIMILATE -T$@ \ + @$(COMPILE) -AASSIMILATE -T$@ \ o/$(MODE)/tool/build/assimilate.com \ o/$(MODE)/test/libc/mem/prog/life.elf o/$(MODE)/test/libc/mem/prog/life.elf.zip.o: \ o/$(MODE)/test/libc/mem/prog/life.elf - @$(COMPILE) -wAZIPOBJ $(ZIPOBJ) $(ZIPOBJ_FLAGS) -B $(OUTPUT_OPTION) $< + @$(COMPILE) -AZIPOBJ $(ZIPOBJ) $(ZIPOBJ_FLAGS) -B $(OUTPUT_OPTION) $< ################################################################################ @@ -114,17 +114,17 @@ o/$(MODE)/test/libc/mem/prog/sock.com.dbg: \ o/$(MODE)/test/libc/mem/prog/sock.elf: \ o/$(MODE)/tool/build/assimilate.com \ o/$(MODE)/test/libc/mem/prog/sock.com - @$(COMPILE) -wACP -T$@ \ + @$(COMPILE) -ACP -T$@ \ build/bootstrap/cp.com \ o/$(MODE)/test/libc/mem/prog/sock.com \ o/$(MODE)/test/libc/mem/prog/sock.elf - @$(COMPILE) -wAASSIMILATE -T$@ \ + @$(COMPILE) -AASSIMILATE -T$@ \ o/$(MODE)/tool/build/assimilate.com \ o/$(MODE)/test/libc/mem/prog/sock.elf o/$(MODE)/test/libc/mem/prog/sock.elf.zip.o: \ o/$(MODE)/test/libc/mem/prog/sock.elf - @$(COMPILE) -wAZIPOBJ $(ZIPOBJ) $(ZIPOBJ_FLAGS) -B $(OUTPUT_OPTION) $< + @$(COMPILE) -AZIPOBJ $(ZIPOBJ) $(ZIPOBJ_FLAGS) -B $(OUTPUT_OPTION) $< ################################################################################ diff --git a/test/libc/nexgen32e/gclongjmp_test.c b/test/libc/nexgen32e/gclongjmp_test.c index a69b0cf22..e74f05d66 100644 --- a/test/libc/nexgen32e/gclongjmp_test.c +++ b/test/libc/nexgen32e/gclongjmp_test.c @@ -17,7 +17,6 @@ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/log/log.h" -#include "libc/mem/mem.h" #include "libc/nexgen32e/gc.internal.h" #include "libc/nexgen32e/nexgen32e.h" #include "libc/runtime/gc.internal.h" diff --git a/test/libc/nexgen32e/kbase36_test.c b/test/libc/nexgen32e/kbase36_test.c index 86a7e1fa5..2b74de29c 100644 --- a/test/libc/nexgen32e/kbase36_test.c +++ b/test/libc/nexgen32e/kbase36_test.c @@ -17,7 +17,6 @@ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/nexgen32e/nexgen32e.h" -#include "libc/str/str.h" #include "libc/testlib/testlib.h" TEST(kBase36, test) { diff --git a/test/libc/nexgen32e/memrchr_test.c b/test/libc/nexgen32e/memrchr_test.c index 4d4c4634d..b7f0b6ac1 100644 --- a/test/libc/nexgen32e/memrchr_test.c +++ b/test/libc/nexgen32e/memrchr_test.c @@ -17,7 +17,6 @@ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/nexgen32e/nexgen32e.h" -#include "libc/str/str.h" #include "libc/testlib/ezbench.h" #include "libc/testlib/testlib.h" diff --git a/test/libc/nexgen32e/test.mk b/test/libc/nexgen32e/test.mk index d50bb3922..ff95a48a6 100644 --- a/test/libc/nexgen32e/test.mk +++ b/test/libc/nexgen32e/test.mk @@ -65,7 +65,7 @@ o/$(MODE)/test/libc/nexgen32e/stackrwx_test.com.ok: \ o/$(MODE)/tool/build/runit.com \ o/$(MODE)/tool/build/runitd.com \ o/$(MODE)/test/libc/nexgen32e/stackrwx_test.com - @$(COMPILE) -ATEST -wtT$@ $^ $(filter-out openbsd,$(HOSTS)) + @$(COMPILE) -ATEST -tT$@ $^ $(filter-out openbsd,$(HOSTS)) $(TEST_LIBC_NEXGEN32E_OBJS): \ DEFAULT_CCFLAGS += \ diff --git a/test/libc/rand/mt19937_test.c b/test/libc/rand/mt19937_test.c index b6b87a781..f017b5a04 100644 --- a/test/libc/rand/mt19937_test.c +++ b/test/libc/rand/mt19937_test.c @@ -17,7 +17,6 @@ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/bits/bits.h" -#include "libc/errno.h" #include "libc/log/check.h" #include "libc/macros.internal.h" #include "libc/mem/mem.h" diff --git a/test/libc/rand/rand64_test.c b/test/libc/rand/rand64_test.c index b7dabd013..f6b77a237 100644 --- a/test/libc/rand/rand64_test.c +++ b/test/libc/rand/rand64_test.c @@ -29,7 +29,6 @@ #include "libc/mem/mem.h" #include "libc/nexgen32e/threaded.h" #include "libc/rand/rand.h" -#include "libc/runtime/internal.h" #include "libc/runtime/stack.h" #include "libc/str/str.h" #include "libc/sysv/consts/clone.h" @@ -48,11 +47,6 @@ int ready; volatile uint64_t A[THREADS * ENTRIES]; -void SetUpOnce(void) { - __enable_threads(); - ASSERT_SYS(0, 0, pledge("stdio", 0)); -} - void OnChld(int sig) { // do nothing } diff --git a/test/libc/release/test.mk b/test/libc/release/test.mk index ed54c7ca0..ae5f89d6b 100644 --- a/test/libc/release/test.mk +++ b/test/libc/release/test.mk @@ -9,7 +9,7 @@ o/$(MODE)/test/libc/release/cosmopolitan.zip: \ o/$(MODE)/ape/ape-no-modify-self.o \ o/$(MODE)/cosmopolitan.a \ o/$(MODE)/third_party/zip/zip.com - @$(COMPILE) -wAZIP -T$@ \ + @$(COMPILE) -AZIP -T$@ \ o/$(MODE)/third_party/zip/zip.com \ -qj $@ \ o/cosmopolitan.h \ @@ -88,7 +88,7 @@ o/$(MODE)/test/libc/release/smoke-chibicc.o: \ test/libc/release/smoke.c \ o/cosmopolitan.h \ o/$(MODE)/third_party/chibicc/chibicc.com - @$(COMPILE) -wACHIBICC \ + @$(COMPILE) -ACHIBICC \ o/$(MODE)/third_party/chibicc/chibicc.com \ $(CHIBICC_FLAGS) \ -o $@ \ diff --git a/test/libc/runtime/arch_prctl_test.c b/test/libc/runtime/arch_prctl_test.c index 85de2bd71..774663893 100644 --- a/test/libc/runtime/arch_prctl_test.c +++ b/test/libc/runtime/arch_prctl_test.c @@ -24,7 +24,8 @@ void SetUpOnce(void) { __tls_enabled = false; - ASSERT_SYS(0, 0, pledge("stdio rpath", 0)); + pledge("stdio rpath", 0); + errno = 0; } TEST(arch_prctl, fs) { diff --git a/test/libc/runtime/clone_test.c b/test/libc/runtime/clone_test.c index ae142bc6d..7c08ebcaf 100644 --- a/test/libc/runtime/clone_test.c +++ b/test/libc/runtime/clone_test.c @@ -50,8 +50,8 @@ int x, me, tid; _Atomic(int) thechilde; void SetUpOnce(void) { - __enable_threads(); - ASSERT_SYS(0, 0, pledge("stdio rpath", 0)); + pledge("stdio thread", 0); + errno = 0; } void *__initialize_tls(char tib[64]) { diff --git a/test/libc/runtime/fork_test.c b/test/libc/runtime/fork_test.c index 45f2d8fd7..706ef5e14 100644 --- a/test/libc/runtime/fork_test.c +++ b/test/libc/runtime/fork_test.c @@ -30,7 +30,8 @@ #include "libc/testlib/testlib.h" void SetUpOnce(void) { - ASSERT_SYS(0, 0, pledge("stdio proc", 0)); + pledge("stdio proc", 0); + errno = 0; } TEST(fork, testPipes) { diff --git a/test/libc/runtime/memtrack_test.c b/test/libc/runtime/memtrack_test.c index 9a4b77075..1c6b9603b 100644 --- a/test/libc/runtime/memtrack_test.c +++ b/test/libc/runtime/memtrack_test.c @@ -17,6 +17,7 @@ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/calls/calls.h" +#include "libc/errno.h" #include "libc/intrin/kprintf.h" #include "libc/limits.h" #include "libc/log/check.h" @@ -31,7 +32,8 @@ { x, y, 0, (y - x) * FRAMESIZE + FRAMESIZE } void SetUpOnce(void) { - ASSERT_SYS(0, 0, pledge("stdio rpath", 0)); + pledge("stdio rpath", 0); + errno = 0; } static bool AreMemoryIntervalsEqual(const struct MemoryIntervals *mm1, diff --git a/test/libc/runtime/mmap_test.c b/test/libc/runtime/mmap_test.c index 163ef7051..1cbcfd1a3 100644 --- a/test/libc/runtime/mmap_test.c +++ b/test/libc/runtime/mmap_test.c @@ -23,6 +23,7 @@ #include "libc/calls/calls.h" #include "libc/calls/ucontext.h" #include "libc/dce.h" +#include "libc/errno.h" #include "libc/fmt/fmt.h" #include "libc/intrin/kprintf.h" #include "libc/linux/mmap.h" @@ -49,7 +50,8 @@ char testlib_enable_tmp_setup_teardown; void SetUpOnce(void) { - ASSERT_SYS(0, 0, pledge("stdio rpath wpath cpath proc", 0)); + pledge("stdio rpath wpath cpath proc", 0); + errno = 0; } TEST(mmap, zeroSize) { diff --git a/test/libc/runtime/mprotect_test.c b/test/libc/runtime/mprotect_test.c index 911fa0483..a18afae13 100644 --- a/test/libc/runtime/mprotect_test.c +++ b/test/libc/runtime/mprotect_test.c @@ -27,7 +27,6 @@ #include "libc/runtime/gc.internal.h" #include "libc/runtime/runtime.h" #include "libc/stdio/stdio.h" -#include "libc/str/str.h" #include "libc/sysv/consts/map.h" #include "libc/sysv/consts/o.h" #include "libc/sysv/consts/prot.h" diff --git a/test/libc/runtime/munmap_test.c b/test/libc/runtime/munmap_test.c index 0cd90a9f0..01e541e2a 100644 --- a/test/libc/runtime/munmap_test.c +++ b/test/libc/runtime/munmap_test.c @@ -21,7 +21,6 @@ #include "libc/calls/struct/sigaction.h" #include "libc/calls/struct/siginfo.h" #include "libc/calls/ucontext.h" -#include "libc/errno.h" #include "libc/intrin/kprintf.h" #include "libc/runtime/memtrack.internal.h" #include "libc/runtime/runtime.h" diff --git a/test/libc/sock/poll_test.c b/test/libc/sock/poll_test.c index e6b56334c..7c0100100 100644 --- a/test/libc/sock/poll_test.c +++ b/test/libc/sock/poll_test.c @@ -40,7 +40,8 @@ #include "tool/decode/lib/pollnames.h" void SetUpOnce(void) { - ASSERT_SYS(0, 0, pledge("stdio proc inet", 0)); + pledge("stdio proc inet", 0); + errno = 0; } dontdiscard char *FormatPollFd(struct pollfd p[2]) { diff --git a/test/libc/sock/select_test.c b/test/libc/sock/select_test.c index d022606ed..6b676e8d8 100644 --- a/test/libc/sock/select_test.c +++ b/test/libc/sock/select_test.c @@ -24,7 +24,8 @@ #include "libc/time/time.h" void SetUpOnce(void) { - ASSERT_SYS(0, 0, pledge("stdio", 0)); + pledge("stdio", 0); + errno = 0; } // TEST(select, allZero) { diff --git a/test/libc/sock/sendfile_test.c b/test/libc/sock/sendfile_test.c index 26d590d90..1ab01c122 100644 --- a/test/libc/sock/sendfile_test.c +++ b/test/libc/sock/sendfile_test.c @@ -33,7 +33,8 @@ char testlib_enable_tmp_setup_teardown; void SetUpOnce(void) { - ASSERT_SYS(0, 0, pledge("stdio rpath wpath cpath proc inet", 0)); + pledge("stdio rpath wpath cpath proc inet", 0); + errno = 0; } TEST(sendfile, test) { diff --git a/test/libc/sock/sendrecvmsg_test.c b/test/libc/sock/sendrecvmsg_test.c index ff92fb599..12e8ea07c 100644 --- a/test/libc/sock/sendrecvmsg_test.c +++ b/test/libc/sock/sendrecvmsg_test.c @@ -22,7 +22,6 @@ #include "libc/runtime/gc.internal.h" #include "libc/sock/sock.h" #include "libc/sock/struct/msghdr.h" -#include "libc/str/str.h" #include "libc/sysv/consts/af.h" #include "libc/sysv/consts/o.h" #include "libc/sysv/consts/sock.h" diff --git a/test/libc/sock/setsockopt_test.c b/test/libc/sock/setsockopt_test.c index 87ef63367..48437c923 100644 --- a/test/libc/sock/setsockopt_test.c +++ b/test/libc/sock/setsockopt_test.c @@ -18,7 +18,6 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/calls/calls.h" #include "libc/calls/struct/timeval.h" -#include "libc/errno.h" #include "libc/sock/sock.h" #include "libc/sock/struct/sockaddr.h" #include "libc/sysv/consts/af.h" @@ -29,7 +28,8 @@ #include "libc/testlib/testlib.h" void SetUpOnce(void) { - ASSERT_SYS(0, 0, pledge("stdio inet", 0)); + pledge("stdio inet", 0); + errno = 0; } TEST(setsockopt, SO_RCVTIMEO) { diff --git a/test/libc/sock/socketpair_test.c b/test/libc/sock/socketpair_test.c index a126d6929..0e09ccb42 100644 --- a/test/libc/sock/socketpair_test.c +++ b/test/libc/sock/socketpair_test.c @@ -26,7 +26,8 @@ #include "libc/testlib/testlib.h" void SetUpOnce(void) { - ASSERT_SYS(0, 0, pledge("stdio tty", 0)); + pledge("stdio tty", 0); + errno = 0; } TEST(socketpair, testAfUnixStream) { diff --git a/test/libc/sock/unix_test.c b/test/libc/sock/unix_test.c index 0f2f97d03..5f3d6e17c 100644 --- a/test/libc/sock/unix_test.c +++ b/test/libc/sock/unix_test.c @@ -25,7 +25,6 @@ #include "libc/runtime/runtime.h" #include "libc/sock/sock.h" #include "libc/sock/struct/sockaddr.h" -#include "libc/str/str.h" #include "libc/sysv/consts/af.h" #include "libc/sysv/consts/so.h" #include "libc/sysv/consts/sock.h" @@ -36,7 +35,8 @@ char testlib_enable_tmp_setup_teardown; void SetUpOnce(void) { - ASSERT_SYS(0, 0, pledge("stdio rpath cpath proc unix", 0)); + pledge("stdio rpath cpath proc unix", 0); + errno = 0; } void DatagramServer(void) { diff --git a/test/libc/stdio/dtoa_test.c b/test/libc/stdio/dtoa_test.c index cf3dc9436..ee06d2c32 100644 --- a/test/libc/stdio/dtoa_test.c +++ b/test/libc/stdio/dtoa_test.c @@ -23,14 +23,12 @@ #include "libc/intrin/kprintf.h" #include "libc/intrin/spinlock.h" #include "libc/intrin/wait0.internal.h" -#include "libc/macros.internal.h" #include "libc/math.h" #include "libc/mem/mem.h" #include "libc/runtime/gc.internal.h" #include "libc/runtime/internal.h" #include "libc/runtime/stack.h" #include "libc/stdio/stdio.h" -#include "libc/str/str.h" #include "libc/sysv/consts/clone.h" #include "libc/sysv/consts/map.h" #include "libc/sysv/consts/prot.h" @@ -53,11 +51,6 @@ union Dub { double x; }; -void SetUpOnce(void) { - __enable_threads(); - ASSERT_SYS(0, 0, pledge("stdio", 0)); -} - int Worker(void *p, int tid) { int i; char str[64]; diff --git a/test/libc/stdio/fputc_test.c b/test/libc/stdio/fputc_test.c index 8b02a0de3..6062a362c 100644 --- a/test/libc/stdio/fputc_test.c +++ b/test/libc/stdio/fputc_test.c @@ -18,9 +18,7 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/calls/calls.h" #include "libc/runtime/internal.h" -#include "libc/stdio/lock.h" #include "libc/stdio/stdio.h" -#include "libc/str/str.h" #include "libc/testlib/ezbench.h" #include "libc/testlib/testlib.h" diff --git a/test/libc/stdio/fputs_test.c b/test/libc/stdio/fputs_test.c index 8aa1cd52d..eb207a01f 100644 --- a/test/libc/stdio/fputs_test.c +++ b/test/libc/stdio/fputs_test.c @@ -19,7 +19,6 @@ #include "libc/mem/mem.h" #include "libc/runtime/gc.internal.h" #include "libc/stdio/stdio.h" -#include "libc/str/str.h" #include "libc/testlib/ezbench.h" #include "libc/testlib/hyperion.h" #include "libc/testlib/testlib.h" diff --git a/test/libc/stdio/fwrite_test.c b/test/libc/stdio/fwrite_test.c index f86afc015..4d8005799 100644 --- a/test/libc/stdio/fwrite_test.c +++ b/test/libc/stdio/fwrite_test.c @@ -25,7 +25,6 @@ #include "libc/runtime/gc.internal.h" #include "libc/runtime/runtime.h" #include "libc/stdio/stdio.h" -#include "libc/str/str.h" #include "libc/sysv/consts/sig.h" #include "libc/testlib/testlib.h" #include "libc/time/time.h" diff --git a/test/libc/stdio/iconv_test.c b/test/libc/stdio/iconv_test.c index 547b904a2..49f877af1 100644 --- a/test/libc/stdio/iconv_test.c +++ b/test/libc/stdio/iconv_test.c @@ -20,7 +20,6 @@ #include "libc/runtime/gc.internal.h" #include "libc/stdio/iconv.h" #include "libc/stdio/stdio.h" -#include "libc/str/str.h" #include "libc/testlib/testlib.h" TEST(iconv, test) { diff --git a/test/libc/stdio/memory_test.c b/test/libc/stdio/memory_test.c index 4852a973a..c61ea96c6 100644 --- a/test/libc/stdio/memory_test.c +++ b/test/libc/stdio/memory_test.c @@ -19,7 +19,6 @@ #include "libc/calls/calls.h" #include "libc/mem/mem.h" #include "libc/runtime/gc.internal.h" -#include "libc/runtime/internal.h" #include "libc/stdio/stdio.h" #include "libc/testlib/testlib.h" #include "libc/thread/spawn.h" @@ -40,11 +39,6 @@ int Worker(void *arg, int tid) { return 0; } -void SetUpOnce(void) { - __enable_threads(); - ASSERT_SYS(0, 0, pledge("stdio", 0)); -} - TEST(memory, test) { int i, n = 32; struct spawn *t = gc(malloc(sizeof(struct spawn) * n)); diff --git a/test/libc/stdio/spawn_test.c b/test/libc/stdio/spawn_test.c index 3c76f36c0..99f44894e 100644 --- a/test/libc/stdio/spawn_test.c +++ b/test/libc/stdio/spawn_test.c @@ -90,13 +90,13 @@ const char kTinyLinuxExit[128] = { 0x6a, 0x2a, 0x5f, 0x6a, 0x3c, 0x58, 0x0f, 0x05, // j*_j<X☼♣ }; -/* BENCH(spawn, bench) { */ -/* int fd; */ -/* if (IsLinux()) { */ -/* fd = open("/tmp/tiny64", O_CREAT | O_TRUNC | O_WRONLY, 0755); */ -/* write(fd, kTinyLinuxExit, 128); */ -/* close(fd); */ -/* EZBENCH2("spawn", donothing, BenchmarkProcessLifecycle()); */ -/* unlink("/tmp/tiny64"); */ -/* } */ -/* } */ +BENCH(spawn, bench) { + int fd; + if (IsLinux()) { + fd = open("/tmp/tiny64", O_CREAT | O_TRUNC | O_WRONLY, 0755); + write(fd, kTinyLinuxExit, 128); + close(fd); + EZBENCH2("spawn", donothing, BenchmarkProcessLifecycle()); + unlink("/tmp/tiny64"); + } +} diff --git a/test/libc/stdio/tmpfile_test.c b/test/libc/stdio/tmpfile_test.c index 3a37f4266..841255de4 100644 --- a/test/libc/stdio/tmpfile_test.c +++ b/test/libc/stdio/tmpfile_test.c @@ -16,15 +16,25 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ +#include "libc/calls/calls.h" +#include "libc/errno.h" +#include "libc/runtime/runtime.h" #include "libc/stdio/stdio.h" #include "libc/stdio/temp.h" #include "libc/testlib/testlib.h" +char testlib_enable_tmp_setup_teardown; + TEST(tmpfile, test) { - FILE *f = tmpfile(); + FILE *f; + mkdir("doge", 0755); + setenv("TMPDIR", "doge", true); + ASSERT_NE(NULL, (f = tmpfile())); EXPECT_NE(-1, fputc('t', f)); EXPECT_NE(-1, fflush(f)); rewind(f); EXPECT_EQ('t', fgetc(f)); EXPECT_NE(-1, fclose(f)); + EXPECT_EQ(-1, rmdir("doge")); + EXPECT_EQ(ENOTEMPTY, errno); } diff --git a/test/libc/stdio/ungetc_test.c b/test/libc/stdio/ungetc_test.c index 3b7113539..dc887f7a8 100644 --- a/test/libc/stdio/ungetc_test.c +++ b/test/libc/stdio/ungetc_test.c @@ -17,7 +17,6 @@ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/stdio/stdio.h" -#include "libc/str/str.h" #include "libc/testlib/hyperion.h" #include "libc/testlib/testlib.h" diff --git a/test/libc/stdio/vappendf_test.c b/test/libc/stdio/vappendf_test.c index 2a0a3b866..660de610f 100644 --- a/test/libc/stdio/vappendf_test.c +++ b/test/libc/stdio/vappendf_test.c @@ -18,9 +18,7 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/bits/bits.h" #include "libc/intrin/kprintf.h" -#include "libc/mem/mem.h" #include "libc/stdio/append.internal.h" -#include "libc/str/str.h" #include "libc/testlib/ezbench.h" #include "libc/testlib/testlib.h" diff --git a/test/libc/str/isutf8_test.c b/test/libc/str/isutf8_test.c index fc90d0241..327be5ba5 100644 --- a/test/libc/str/isutf8_test.c +++ b/test/libc/str/isutf8_test.c @@ -28,7 +28,7 @@ void SetUpOnce(void) { GetSymbolTable(); - ASSERT_SYS(0, 0, pledge("stdio rpath", 0)); + pledge("stdio", 0); } TEST(isutf8, good) { diff --git a/test/libc/thread/spawn_test.c b/test/libc/thread/spawn_test.c index a8de615e6..48cceffe1 100644 --- a/test/libc/thread/spawn_test.c +++ b/test/libc/thread/spawn_test.c @@ -24,7 +24,6 @@ #include "libc/macros.internal.h" #include "libc/mem/mem.h" #include "libc/runtime/gc.internal.h" -#include "libc/runtime/internal.h" #include "libc/testlib/testlib.h" #include "libc/thread/spawn.h" #include "libc/thread/thread.h" @@ -33,8 +32,8 @@ _Atomic(int) itworked; _Thread_local int var; void SetUpOnce(void) { - __enable_threads(); - ASSERT_SYS(0, 0, pledge("stdio", 0)); + pledge("stdio rpath thread", 0); + errno = 0; } int Worker(void *arg, int tid) { diff --git a/test/libc/tinymath/strtod_test.c b/test/libc/tinymath/strtod_test.c index d1ee1d955..cc7a70a96 100644 --- a/test/libc/tinymath/strtod_test.c +++ b/test/libc/tinymath/strtod_test.c @@ -18,7 +18,6 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/fmt/fmt.h" #include "libc/macros.internal.h" -#include "libc/mem/mem.h" #include "libc/runtime/fenv.h" #include "libc/runtime/gc.internal.h" #include "libc/testlib/ezbench.h" diff --git a/test/libc/x/utf16to32_test.c b/test/libc/x/utf16to32_test.c index 78abb12e5..781cfacf7 100644 --- a/test/libc/x/utf16to32_test.c +++ b/test/libc/x/utf16to32_test.c @@ -16,7 +16,6 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/mem/mem.h" #include "libc/runtime/gc.internal.h" #include "libc/testlib/ezbench.h" #include "libc/testlib/hyperion.h" diff --git a/test/libc/x/xstrcat_test.c b/test/libc/x/xstrcat_test.c index e7df6a83f..862a4c3d6 100644 --- a/test/libc/x/xstrcat_test.c +++ b/test/libc/x/xstrcat_test.c @@ -16,9 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/mem/mem.h" #include "libc/runtime/gc.internal.h" -#include "libc/str/str.h" #include "libc/testlib/ezbench.h" #include "libc/testlib/testlib.h" #include "libc/x/x.h" diff --git a/test/net/http/decodebase64_test.c b/test/net/http/decodebase64_test.c index 7583656c8..16ed4cc77 100644 --- a/test/net/http/decodebase64_test.c +++ b/test/net/http/decodebase64_test.c @@ -17,7 +17,6 @@ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/runtime/gc.internal.h" -#include "libc/str/str.h" #include "libc/testlib/testlib.h" #include "net/http/escape.h" diff --git a/test/net/http/decodelatin1_test.c b/test/net/http/decodelatin1_test.c index 6dab4c079..53b222820 100644 --- a/test/net/http/decodelatin1_test.c +++ b/test/net/http/decodelatin1_test.c @@ -19,7 +19,6 @@ #include "libc/errno.h" #include "libc/mem/mem.h" #include "libc/runtime/gc.internal.h" -#include "libc/str/str.h" #include "libc/testlib/ezbench.h" #include "libc/testlib/hyperion.h" #include "libc/testlib/testlib.h" diff --git a/test/net/http/encodehttpheadervalue_test.c b/test/net/http/encodehttpheadervalue_test.c index dafe8cfff..d5a9b4aa7 100644 --- a/test/net/http/encodehttpheadervalue_test.c +++ b/test/net/http/encodehttpheadervalue_test.c @@ -20,7 +20,6 @@ #include "libc/mem/mem.h" #include "libc/runtime/gc.internal.h" #include "libc/stdio/stdio.h" -#include "libc/str/str.h" #include "libc/testlib/ezbench.h" #include "libc/testlib/testlib.h" #include "net/http/escape.h" diff --git a/test/net/http/escapehtml_test.c b/test/net/http/escapehtml_test.c index c5434a11e..ddcf385cb 100644 --- a/test/net/http/escapehtml_test.c +++ b/test/net/http/escapehtml_test.c @@ -18,7 +18,6 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/mem/mem.h" #include "libc/runtime/gc.internal.h" -#include "libc/str/str.h" #include "libc/testlib/ezbench.h" #include "libc/testlib/hyperion.h" #include "libc/testlib/testlib.h" diff --git a/test/net/http/escapejsstringliteral_test.c b/test/net/http/escapejsstringliteral_test.c index a5586c97e..cd2f4eca1 100644 --- a/test/net/http/escapejsstringliteral_test.c +++ b/test/net/http/escapejsstringliteral_test.c @@ -20,7 +20,6 @@ #include "libc/mem/mem.h" #include "libc/runtime/gc.internal.h" #include "libc/stdio/stdio.h" -#include "libc/str/str.h" #include "libc/testlib/ezbench.h" #include "libc/testlib/hyperion.h" #include "libc/testlib/testlib.h" diff --git a/test/net/http/escapeurlparam_test.c b/test/net/http/escapeurlparam_test.c index a39c022f9..2f2cf5d70 100644 --- a/test/net/http/escapeurlparam_test.c +++ b/test/net/http/escapeurlparam_test.c @@ -18,7 +18,6 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/mem/mem.h" #include "libc/runtime/gc.internal.h" -#include "libc/str/str.h" #include "libc/testlib/ezbench.h" #include "libc/testlib/hyperion.h" #include "libc/testlib/testlib.h" diff --git a/test/net/http/indentlines_test.c b/test/net/http/indentlines_test.c index 4db169138..c82358ac7 100644 --- a/test/net/http/indentlines_test.c +++ b/test/net/http/indentlines_test.c @@ -18,7 +18,6 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/mem/mem.h" #include "libc/runtime/gc.internal.h" -#include "libc/str/str.h" #include "libc/testlib/ezbench.h" #include "libc/testlib/hyperion.h" #include "libc/testlib/testlib.h" diff --git a/test/net/http/parseurl_test.c b/test/net/http/parseurl_test.c index 7c7b333dc..6011a8af5 100644 --- a/test/net/http/parseurl_test.c +++ b/test/net/http/parseurl_test.c @@ -20,7 +20,6 @@ #include "libc/mem/mem.h" #include "libc/rand/rand.h" #include "libc/runtime/gc.internal.h" -#include "libc/str/str.h" #include "libc/testlib/ezbench.h" #include "libc/testlib/hyperion.h" #include "libc/testlib/testlib.h" diff --git a/test/net/http/unchunk_test.c b/test/net/http/unchunk_test.c index 87525a0c4..e85c1ee37 100644 --- a/test/net/http/unchunk_test.c +++ b/test/net/http/unchunk_test.c @@ -16,7 +16,6 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/str/str.h" #include "libc/testlib/testlib.h" #include "libc/x/x.h" #include "net/http/http.h" diff --git a/test/net/http/visualizecontrolcodes_test.c b/test/net/http/visualizecontrolcodes_test.c index 6bc12fb0b..bcf92ef1a 100644 --- a/test/net/http/visualizecontrolcodes_test.c +++ b/test/net/http/visualizecontrolcodes_test.c @@ -16,7 +16,6 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/mem/mem.h" #include "libc/runtime/gc.internal.h" #include "libc/testlib/ezbench.h" #include "libc/testlib/hyperion.h" diff --git a/test/tool/net/redbean_test.c b/test/tool/net/redbean_test.c index 325b19427..022c5b060 100644 --- a/test/tool/net/redbean_test.c +++ b/test/tool/net/redbean_test.c @@ -24,7 +24,6 @@ #include "libc/sock/sock.h" #include "libc/sock/struct/sockaddr.h" #include "libc/stdio/stdio.h" -#include "libc/str/str.h" #include "libc/sysv/consts/af.h" #include "libc/sysv/consts/auxv.h" #include "libc/sysv/consts/inaddr.h" diff --git a/third_party/bzip2/bzip2recover.c b/third_party/bzip2/bzip2recover.c index c54dcec88..aeab0ccdc 100644 --- a/third_party/bzip2/bzip2recover.c +++ b/third_party/bzip2/bzip2recover.c @@ -2,10 +2,8 @@ #include "libc/errno.h" #include "libc/fmt/fmt.h" #include "libc/log/log.h" -#include "libc/mem/mem.h" #include "libc/runtime/runtime.h" #include "libc/stdio/stdio.h" -#include "libc/str/str.h" /* clang-format off */ /*-----------------------------------------------------------*/ diff --git a/third_party/bzip2/bzlib.c b/third_party/bzip2/bzlib.c index ba3dbc482..2567c36f5 100644 --- a/third_party/bzip2/bzlib.c +++ b/third_party/bzip2/bzlib.c @@ -30,7 +30,6 @@ */ #include "libc/calls/calls.h" -#include "libc/mem/mem.h" #include "third_party/bzip2/bzlib_private.inc" diff --git a/third_party/chibicc/test/test.mk b/third_party/chibicc/test/test.mk index e40433205..a4ea3ea9e 100644 --- a/third_party/chibicc/test/test.mk +++ b/third_party/chibicc/test/test.mk @@ -72,7 +72,7 @@ o/$(MODE)/third_party/chibicc/test/%.com.dbg: \ o/$(MODE)/third_party/chibicc/test/%.o: \ third_party/chibicc/test/%.c \ $(CHIBICC) - @$(COMPILE) -wAOBJECTIFY.c $(CHIBICC) $(CHIBICC_FLAGS) $(OUTPUT_OPTION) -c $< + @$(COMPILE) -AOBJECTIFY.c $(CHIBICC) $(CHIBICC_FLAGS) $(OUTPUT_OPTION) -c $< o/$(MODE)/third_party/chibicc/test/int128_test.o: QUOTA = -M1024m diff --git a/third_party/dlmalloc/dlmalloc.c b/third_party/dlmalloc/dlmalloc.c index 0e87369fd..c2d9cd467 100644 --- a/third_party/dlmalloc/dlmalloc.c +++ b/third_party/dlmalloc/dlmalloc.c @@ -13,7 +13,6 @@ #include "libc/runtime/runtime.h" #include "libc/runtime/sysconf.h" #include "libc/stdio/stdio.h" -#include "libc/str/str.h" #include "libc/sysv/consts/map.h" #include "libc/sysv/consts/prot.h" #include "third_party/dlmalloc/dlmalloc.h" diff --git a/third_party/double-conversion/double-conversion.mk b/third_party/double-conversion/double-conversion.mk index 25a6af73d..3a75a29eb 100644 --- a/third_party/double-conversion/double-conversion.mk +++ b/third_party/double-conversion/double-conversion.mk @@ -122,39 +122,39 @@ THIRD_PARTY_DOUBLECONVERSION_TEST_RUNS = \ o/$(MODE)/third_party/double-conversion/test-strtod.runs: \ o/$(MODE)/third_party/double-conversion/double-conversion-tester.com - @$(COMPILE) -wACHECK -tT$@ $< test-strtod + @$(COMPILE) -ACHECK -tT$@ $< test-strtod o/$(MODE)/third_party/double-conversion/test-ieee.runs: \ o/$(MODE)/third_party/double-conversion/double-conversion-tester.com - @$(COMPILE) -wACHECK -tT$@ $< test-ieee + @$(COMPILE) -ACHECK -tT$@ $< test-ieee o/$(MODE)/third_party/double-conversion/test-fixed-dtoa.runs: \ o/$(MODE)/third_party/double-conversion/double-conversion-tester.com - @$(COMPILE) -wACHECK -tT$@ $< test-fixed-dtoa + @$(COMPILE) -ACHECK -tT$@ $< test-fixed-dtoa o/$(MODE)/third_party/double-conversion/test-fast-dtoa.runs: \ o/$(MODE)/third_party/double-conversion/double-conversion-tester.com - @$(COMPILE) -wACHECK -tT$@ $< test-fast-dtoa + @$(COMPILE) -ACHECK -tT$@ $< test-fast-dtoa o/$(MODE)/third_party/double-conversion/test-dtoa.runs: \ o/$(MODE)/third_party/double-conversion/double-conversion-tester.com - @$(COMPILE) -wACHECK -tT$@ $< test-dtoa + @$(COMPILE) -ACHECK -tT$@ $< test-dtoa o/$(MODE)/third_party/double-conversion/test-diy-fp.runs: \ o/$(MODE)/third_party/double-conversion/double-conversion-tester.com - @$(COMPILE) -wACHECK -tT$@ $< test-diy-fp + @$(COMPILE) -ACHECK -tT$@ $< test-diy-fp o/$(MODE)/third_party/double-conversion/test-conversions.runs: \ o/$(MODE)/third_party/double-conversion/double-conversion-tester.com - @$(COMPILE) -wACHECK -tT$@ $< test-conversions + @$(COMPILE) -ACHECK -tT$@ $< test-conversions o/$(MODE)/third_party/double-conversion/test-bignum-dtoa.runs: \ o/$(MODE)/third_party/double-conversion/double-conversion-tester.com - @$(COMPILE) -wACHECK -tT$@ $< test-bignum-dtoa + @$(COMPILE) -ACHECK -tT$@ $< test-bignum-dtoa o/$(MODE)/third_party/double-conversion/test-bignum.runs: \ o/$(MODE)/third_party/double-conversion/double-conversion-tester.com - @$(COMPILE) -wACHECK -tT$@ $< test-bignum + @$(COMPILE) -ACHECK -tT$@ $< test-bignum THIRD_PARTY_DOUBLECONVERSION_LIBS = $(foreach x,$(THIRD_PARTY_DOUBLECONVERSION_ARTIFACTS),$($(x))) THIRD_PARTY_DOUBLECONVERSION_SRCS = $(foreach x,$(THIRD_PARTY_DOUBLECONVERSION_ARTIFACTS),$($(x)_SRCS)) diff --git a/third_party/finger/display.c b/third_party/finger/display.c index d9e93f93c..4a45fb9d0 100644 --- a/third_party/finger/display.c +++ b/third_party/finger/display.c @@ -39,7 +39,6 @@ #include "libc/calls/termios.h" #include "libc/fmt/fmt.h" #include "libc/stdio/stdio.h" -#include "libc/str/str.h" #include "libc/sysv/consts/fileno.h" #include "libc/sysv/consts/termios.h" #include "third_party/finger/finger.h" diff --git a/third_party/finger/finger.c b/third_party/finger/finger.c index 1dfa12a30..05931da16 100644 --- a/third_party/finger/finger.c +++ b/third_party/finger/finger.c @@ -37,13 +37,10 @@ #include "libc/calls/struct/stat.h" #include "libc/calls/weirdtypes.h" #include "libc/fmt/fmt.h" -#include "libc/mem/mem.h" #include "libc/nt/struct/msg.h" -#include "libc/runtime/runtime.h" #include "libc/runtime/utmp.h" #include "libc/sock/sock.h" #include "libc/sock/struct/sockaddr.h" -#include "libc/str/str.h" #include "libc/sysv/consts/fileno.h" #include "libc/time/time.h" #include "third_party/finger/finger.h" diff --git a/third_party/finger/util.c b/third_party/finger/util.c index ffdfeb1bd..b931e7f8a 100644 --- a/third_party/finger/util.c +++ b/third_party/finger/util.c @@ -38,9 +38,7 @@ #include "libc/calls/struct/stat.macros.h" #include "libc/errno.h" #include "libc/fmt/fmt.h" -#include "libc/mem/mem.h" #include "libc/paths.h" -#include "libc/runtime/runtime.h" #include "libc/str/str.h" #include "libc/sysv/consts/o.h" #include "third_party/finger/finger.h" diff --git a/third_party/libcxx/__bsd_locale_fallbacks.h b/third_party/libcxx/__bsd_locale_fallbacks.h index 62bf14b9c..b285bc49c 100644 --- a/third_party/libcxx/__bsd_locale_fallbacks.h +++ b/third_party/libcxx/__bsd_locale_fallbacks.h @@ -15,7 +15,6 @@ #include "third_party/libcxx/stdlib.h" #include "libc/mem/fmt.h" -#include "libc/unicode/unicode.h" #include "third_party/libcxx/memory" #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) diff --git a/third_party/libcxx/cstdlib b/third_party/libcxx/cstdlib index e2c88b522..f4df9ac44 100644 --- a/third_party/libcxx/cstdlib +++ b/third_party/libcxx/cstdlib @@ -11,7 +11,6 @@ #define _LIBCPP_CSTDLIB #include "third_party/libcxx/__config" -#include "libc/str/str.h" #include "third_party/libcxx/stdlib.h" /* diff --git a/third_party/lua/lauxlib.c b/third_party/lua/lauxlib.c index 9014af4ad..4a419dcf7 100644 --- a/third_party/lua/lauxlib.c +++ b/third_party/lua/lauxlib.c @@ -29,8 +29,6 @@ #define LUA_LIB #include "libc/calls/calls.h" #include "libc/errno.h" -#include "libc/mem/mem.h" -#include "libc/str/str.h" #include "third_party/lua/lauxlib.h" #include "third_party/lua/lprefix.h" #include "third_party/lua/lua.h" diff --git a/third_party/lua/lbaselib.c b/third_party/lua/lbaselib.c index a636184ec..13d8013a9 100644 --- a/third_party/lua/lbaselib.c +++ b/third_party/lua/lbaselib.c @@ -27,7 +27,6 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #define lbaselib_c #define LUA_LIB -#include "libc/str/str.h" #include "third_party/lua/lauxlib.h" #include "third_party/lua/lprefix.h" #include "third_party/lua/lua.h" diff --git a/third_party/lua/ldblib.c b/third_party/lua/ldblib.c index c7060b3eb..8cdde9f90 100644 --- a/third_party/lua/ldblib.c +++ b/third_party/lua/ldblib.c @@ -27,7 +27,6 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #define ldblib_c #define LUA_LIB -#include "libc/str/str.h" #include "third_party/lua/lauxlib.h" #include "third_party/lua/lprefix.h" #include "third_party/lua/lua.h" diff --git a/third_party/lua/ldebug.c b/third_party/lua/ldebug.c index 7917778bc..7d710db75 100644 --- a/third_party/lua/ldebug.c +++ b/third_party/lua/ldebug.c @@ -27,7 +27,6 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #define ldebug_c #define LUA_CORE -#include "libc/str/str.h" #include "third_party/lua/lapi.h" #include "third_party/lua/lcode.h" #include "third_party/lua/ldebug.h" diff --git a/third_party/lua/ldo.c b/third_party/lua/ldo.c index 1ae82ec13..31ebb1dc1 100644 --- a/third_party/lua/ldo.c +++ b/third_party/lua/ldo.c @@ -32,7 +32,6 @@ #include "libc/runtime/gc.h" #include "libc/runtime/internal.h" #include "libc/runtime/runtime.h" -#include "libc/str/str.h" #include "third_party/lua/lapi.h" #include "third_party/lua/ldebug.h" #include "third_party/lua/ldo.h" diff --git a/third_party/lua/lgc.c b/third_party/lua/lgc.c index 5e5b5e8e7..224f15ab5 100644 --- a/third_party/lua/lgc.c +++ b/third_party/lua/lgc.c @@ -27,7 +27,6 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #define lgc_c #define LUA_CORE -#include "libc/str/str.h" #include "third_party/lua/ldebug.h" #include "third_party/lua/ldo.h" #include "third_party/lua/lfunc.h" diff --git a/third_party/lua/liolib.c b/third_party/lua/liolib.c index 89d6fa9ea..2709b6e59 100644 --- a/third_party/lua/liolib.c +++ b/third_party/lua/liolib.c @@ -30,10 +30,8 @@ #include "libc/calls/calls.h" #include "libc/calls/weirdtypes.h" #include "libc/errno.h" -#include "libc/stdio/lock.h" #include "libc/stdio/stdio.h" #include "libc/stdio/temp.h" -#include "libc/str/str.h" #include "third_party/lua/lauxlib.h" #include "third_party/lua/lprefix.h" #include "third_party/lua/lua.h" diff --git a/third_party/lua/loadlib.c b/third_party/lua/loadlib.c index 09f9d4736..10b69877c 100644 --- a/third_party/lua/loadlib.c +++ b/third_party/lua/loadlib.c @@ -27,8 +27,6 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #define loadlib_c #define LUA_LIB -#include "libc/runtime/runtime.h" -#include "libc/str/str.h" #include "third_party/lua/lauxlib.h" #include "third_party/lua/lprefix.h" #include "third_party/lua/lua.h" diff --git a/third_party/lua/lobject.c b/third_party/lua/lobject.c index 4e0b2d6af..a46d7c30e 100644 --- a/third_party/lua/lobject.c +++ b/third_party/lua/lobject.c @@ -27,7 +27,6 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #define lobject_c #define LUA_CORE -#include "libc/str/str.h" #include "third_party/lua/lctype.h" #include "third_party/lua/ldebug.h" #include "third_party/lua/ldo.h" diff --git a/third_party/lua/loslib.c b/third_party/lua/loslib.c index f1f6baf0d..314d0308d 100644 --- a/third_party/lua/loslib.c +++ b/third_party/lua/loslib.c @@ -32,7 +32,6 @@ #include "libc/errno.h" #include "libc/runtime/runtime.h" #include "libc/stdio/temp.h" -#include "libc/str/str.h" #include "libc/sysv/consts/exit.h" #include "libc/time/struct/tm.h" #include "libc/time/time.h" diff --git a/third_party/lua/lparser.c b/third_party/lua/lparser.c index a8a0689ad..ca933328e 100644 --- a/third_party/lua/lparser.c +++ b/third_party/lua/lparser.c @@ -27,7 +27,6 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #define lparser_c #define LUA_CORE -#include "libc/str/str.h" #include "third_party/lua/lcode.h" #include "third_party/lua/ldebug.h" #include "third_party/lua/ldo.h" diff --git a/third_party/lua/lstate.c b/third_party/lua/lstate.c index b136094ec..100766934 100644 --- a/third_party/lua/lstate.c +++ b/third_party/lua/lstate.c @@ -27,7 +27,6 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #define lstate_c #define LUA_CORE -#include "libc/str/str.h" #include "libc/time/time.h" #include "third_party/lua/lapi.h" #include "third_party/lua/ldebug.h" diff --git a/third_party/lua/lstring.c b/third_party/lua/lstring.c index ec4e500bd..d5cfcf764 100644 --- a/third_party/lua/lstring.c +++ b/third_party/lua/lstring.c @@ -27,7 +27,6 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #define lstring_c #define LUA_CORE -#include "libc/str/str.h" #include "third_party/lua/ldebug.h" #include "third_party/lua/ldo.h" #include "third_party/lua/lmem.h" diff --git a/third_party/lua/lstrlib.c b/third_party/lua/lstrlib.c index 906b46a3a..f941687d9 100644 --- a/third_party/lua/lstrlib.c +++ b/third_party/lua/lstrlib.c @@ -28,7 +28,6 @@ #define lstrlib_c #define LUA_LIB #include "libc/math.h" -#include "libc/str/str.h" #include "third_party/lua/cosmo.h" #include "third_party/lua/lauxlib.h" #include "third_party/lua/lprefix.h" diff --git a/third_party/lua/ltablib.c b/third_party/lua/ltablib.c index ab55093ef..9edcc3f52 100644 --- a/third_party/lua/ltablib.c +++ b/third_party/lua/ltablib.c @@ -28,7 +28,6 @@ #define ltablib_c #define LUA_LIB #include "libc/calls/weirdtypes.h" -#include "libc/str/str.h" #include "libc/time/time.h" #include "third_party/lua/lauxlib.h" #include "third_party/lua/lprefix.h" diff --git a/third_party/lua/luac.main.c b/third_party/lua/luac.main.c index c002daf1d..1226785b2 100644 --- a/third_party/lua/luac.main.c +++ b/third_party/lua/luac.main.c @@ -30,8 +30,6 @@ #include "libc/calls/calls.h" #include "libc/calls/struct/sigaction.h" #include "libc/errno.h" -#include "libc/runtime/runtime.h" -#include "libc/str/str.h" #include "libc/sysv/consts/exit.h" #include "third_party/lua/lauxlib.h" #include "third_party/lua/ldebug.h" diff --git a/third_party/lua/luaconf.h b/third_party/lua/luaconf.h index 0f2ac4403..b7152fdac 100644 --- a/third_party/lua/luaconf.h +++ b/third_party/lua/luaconf.h @@ -4,7 +4,6 @@ #include "libc/dce.h" #include "libc/fmt/fmt.h" #include "libc/limits.h" -#include "libc/unicode/unicode.h" #include "third_party/gdtoa/gdtoa.h" #define LUA_USE_POSIX diff --git a/third_party/lua/luaencodeurl.c b/third_party/lua/luaencodeurl.c index b9717968a..e26370796 100644 --- a/third_party/lua/luaencodeurl.c +++ b/third_party/lua/luaencodeurl.c @@ -16,8 +16,6 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/mem/mem.h" -#include "libc/str/str.h" #include "libc/x/x.h" #include "net/http/url.h" #include "third_party/lua/cosmo.h" diff --git a/third_party/lua/luaprintstack.c b/third_party/lua/luaprintstack.c index 400b8b22a..6d286fb4b 100644 --- a/third_party/lua/luaprintstack.c +++ b/third_party/lua/luaprintstack.c @@ -16,7 +16,6 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/mem/mem.h" #include "libc/stdio/stdio.h" #include "third_party/lua/cosmo.h" #include "third_party/lua/lua.h" diff --git a/third_party/lua/luapushheader.c b/third_party/lua/luapushheader.c index 58d1e02d0..efaa6d6b4 100644 --- a/third_party/lua/luapushheader.c +++ b/third_party/lua/luapushheader.c @@ -16,7 +16,6 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/mem/mem.h" #include "net/http/http.h" #include "third_party/lua/cosmo.h" #include "third_party/lua/lauxlib.h" diff --git a/third_party/lua/luapushheaders.c b/third_party/lua/luapushheaders.c index 3f96b67f6..44ab42363 100644 --- a/third_party/lua/luapushheaders.c +++ b/third_party/lua/luapushheaders.c @@ -16,7 +16,6 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/mem/mem.h" #include "net/http/escape.h" #include "net/http/http.h" #include "third_party/lua/cosmo.h" diff --git a/third_party/lua/lundump.c b/third_party/lua/lundump.c index beb991090..0b1662bdb 100644 --- a/third_party/lua/lundump.c +++ b/third_party/lua/lundump.c @@ -7,7 +7,6 @@ #define lundump_c #define LUA_CORE -#include "libc/str/str.h" #include "third_party/lua/ldebug.h" #include "third_party/lua/ldo.h" #include "third_party/lua/lfunc.h" diff --git a/third_party/lua/lvm.c b/third_party/lua/lvm.c index 13dd54d8f..f3bf1e711 100644 --- a/third_party/lua/lvm.c +++ b/third_party/lua/lvm.c @@ -27,7 +27,6 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #define lvm_c #define LUA_CORE -#include "libc/str/str.h" #include "third_party/lua/ldebug.h" #include "third_party/lua/ldo.h" #include "third_party/lua/lfunc.h" diff --git a/third_party/lua/lzio.c b/third_party/lua/lzio.c index 6e0ea173b..4857b0957 100644 --- a/third_party/lua/lzio.c +++ b/third_party/lua/lzio.c @@ -27,7 +27,6 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #define lzio_c #define LUA_CORE -#include "libc/str/str.h" #include "third_party/lua/llimits.h" #include "third_party/lua/lmem.h" #include "third_party/lua/lprefix.h" diff --git a/third_party/make/error.c b/third_party/make/error.c index a2aac18b8..064f1b1a2 100644 --- a/third_party/make/error.c +++ b/third_party/make/error.c @@ -25,8 +25,6 @@ #include "libc/stdio/stdio.h" #include "libc/fmt/fmt.h" #include "libc/fmt/fmt.h" -#include "libc/str/str.h" -#include "libc/runtime/runtime.h" #include "third_party/make/stdio.h" #if !_LIBC && ENABLE_NLS diff --git a/third_party/make/hash.c b/third_party/make/hash.c index cb678fc95..7f4806b01 100644 --- a/third_party/make/hash.c +++ b/third_party/make/hash.c @@ -414,6 +414,24 @@ jhash(unsigned const char *k, int length) #define UINTSZ sizeof (unsigned int) +#ifdef WORDS_BIGENDIAN +/* The ifs are ordered from the first byte in memory to the last. */ +#define sum_up_to_nul(r, p, plen, flag) \ + do { \ + unsigned int val = 0; \ + size_t pn = (plen); \ + size_t n = pn < UINTSZ ? pn : UINTSZ; \ + memcpy (&val, (p), n); \ + if ((val & 0xFF000000) == 0) \ + flag = 1; \ + else if ((val & 0xFF0000) == 0) \ + r += val & ~0xFFFF, flag = 1; \ + else if ((val & 0xFF00) == 0) \ + r += val & ~0xFF, flag = 1; \ + else \ + r += val, flag = (val & 0xFF) == 0; \ + } while (0) +#else /* First detect the presence of zeroes. If there is none, we can sum the 4 bytes directly. Otherwise, the ifs are ordered as in the big endian case, from the first byte in memory to the last. */ @@ -436,6 +454,7 @@ jhash(unsigned const char *k, int length) r += val; \ } \ } while (0) +#endif unsigned int jhash_string(unsigned const char *k) diff --git a/third_party/make/make.mk b/third_party/make/make.mk index d3e40e1f5..d91b73c87 100644 --- a/third_party/make/make.mk +++ b/third_party/make/make.mk @@ -74,6 +74,8 @@ THIRD_PARTY_MAKE_SRCS_LIB = \ third_party/make/xmalloc.c THIRD_PARTY_MAKE_SRCS_BASE = \ + third_party/make/ar.c \ + third_party/make/arscan.c \ third_party/make/commands.c \ third_party/make/default.c \ third_party/make/dir.c \ @@ -162,7 +164,6 @@ o/$(MODE)/third_party/make/hash.o: \ $(THIRD_PARTY_MAKE_OBJS): \ OVERRIDE_CFLAGS += \ - -DNO_ARCHIVES \ -DSTACK_FRAME_UNLIMITED \ -DHAVE_CONFIG_H \ -DINCLUDEDIR=\".\" \ diff --git a/third_party/maxmind/maxminddb.c b/third_party/maxmind/maxminddb.c index 2e4537654..26216bef9 100644 --- a/third_party/maxmind/maxminddb.c +++ b/third_party/maxmind/maxminddb.c @@ -26,10 +26,8 @@ #include "libc/inttypes.h" #include "libc/limits.h" #include "libc/mem/mem.h" -#include "libc/runtime/runtime.h" #include "libc/sock/struct/sockaddr6.h" #include "libc/stdio/stdio.h" -#include "libc/str/str.h" #include "libc/sysv/consts/af.h" #include "libc/sysv/consts/map.h" #include "libc/sysv/consts/o.h" diff --git a/third_party/mbedtls/aes.c b/third_party/mbedtls/aes.c index 462d43e56..a8763ddec 100644 --- a/third_party/mbedtls/aes.c +++ b/third_party/mbedtls/aes.c @@ -17,7 +17,6 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/bits/bits.h" #include "libc/nexgen32e/x86feature.h" -#include "libc/str/str.h" #include "third_party/mbedtls/aes.h" #include "third_party/mbedtls/aesni.h" #include "third_party/mbedtls/common.h" diff --git a/third_party/mbedtls/asn1.h b/third_party/mbedtls/asn1.h index 0bffed0df..8f6ed77fe 100644 --- a/third_party/mbedtls/asn1.h +++ b/third_party/mbedtls/asn1.h @@ -1,6 +1,5 @@ #ifndef MBEDTLS_ASN1_H #define MBEDTLS_ASN1_H -#include "libc/str/str.h" #include "third_party/mbedtls/bignum.h" #include "third_party/mbedtls/config.h" /* clang-format off */ diff --git a/third_party/mbedtls/asn1parse.c b/third_party/mbedtls/asn1parse.c index 2e630fab1..548a87794 100644 --- a/third_party/mbedtls/asn1parse.c +++ b/third_party/mbedtls/asn1parse.c @@ -15,7 +15,6 @@ │ See the License for the specific language governing permissions and │ │ limitations under the License. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/str/str.h" #include "third_party/mbedtls/asn1.h" #include "third_party/mbedtls/bignum.h" #include "third_party/mbedtls/common.h" diff --git a/third_party/mbedtls/asn1write.c b/third_party/mbedtls/asn1write.c index 4cd0c64c9..68aa4ee15 100644 --- a/third_party/mbedtls/asn1write.c +++ b/third_party/mbedtls/asn1write.c @@ -15,7 +15,6 @@ │ See the License for the specific language governing permissions and │ │ limitations under the License. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/str/str.h" #include "third_party/mbedtls/asn1write.h" #include "third_party/mbedtls/common.h" #include "third_party/mbedtls/error.h" diff --git a/third_party/mbedtls/base64.c b/third_party/mbedtls/base64.c index 32255954a..6c4f29835 100644 --- a/third_party/mbedtls/base64.c +++ b/third_party/mbedtls/base64.c @@ -15,7 +15,6 @@ │ See the License for the specific language governing permissions and │ │ limitations under the License. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/str/str.h" #include "third_party/mbedtls/base64.h" #include "third_party/mbedtls/common.h" #include "third_party/mbedtls/platform.h" diff --git a/third_party/mbedtls/bignum.c b/third_party/mbedtls/bignum.c index bd6cc4a7b..0ae9359eb 100644 --- a/third_party/mbedtls/bignum.c +++ b/third_party/mbedtls/bignum.c @@ -26,7 +26,6 @@ #include "libc/nexgen32e/nexgen32e.h" #include "libc/nexgen32e/x86feature.h" #include "libc/runtime/runtime.h" -#include "libc/str/str.h" #include "third_party/mbedtls/bignum.h" #include "third_party/mbedtls/bignum_internal.h" #include "third_party/mbedtls/chk.h" diff --git a/third_party/mbedtls/ccm.c b/third_party/mbedtls/ccm.c index e018be40a..6cd3122c7 100644 --- a/third_party/mbedtls/ccm.c +++ b/third_party/mbedtls/ccm.c @@ -15,7 +15,6 @@ │ See the License for the specific language governing permissions and │ │ limitations under the License. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/str/str.h" #include "third_party/mbedtls/ccm.h" #include "third_party/mbedtls/common.h" #include "third_party/mbedtls/error.h" diff --git a/third_party/mbedtls/chacha20.c b/third_party/mbedtls/chacha20.c index 44d3441cb..0de82cb82 100644 --- a/third_party/mbedtls/chacha20.c +++ b/third_party/mbedtls/chacha20.c @@ -17,7 +17,6 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/bits/bits.h" #include "libc/stdio/stdio.h" -#include "libc/str/str.h" #include "third_party/mbedtls/chacha20.h" #include "third_party/mbedtls/common.h" #include "third_party/mbedtls/error.h" diff --git a/third_party/mbedtls/chachapoly.c b/third_party/mbedtls/chachapoly.c index c449bb535..b3c97dc3a 100644 --- a/third_party/mbedtls/chachapoly.c +++ b/third_party/mbedtls/chachapoly.c @@ -15,7 +15,6 @@ │ See the License for the specific language governing permissions and │ │ limitations under the License. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/str/str.h" #include "third_party/mbedtls/chachapoly.h" #include "third_party/mbedtls/chk.h" #include "third_party/mbedtls/common.h" diff --git a/third_party/mbedtls/cipher.c b/third_party/mbedtls/cipher.c index f2af20eca..d605af6ed 100644 --- a/third_party/mbedtls/cipher.c +++ b/third_party/mbedtls/cipher.c @@ -15,7 +15,6 @@ │ See the License for the specific language governing permissions and │ │ limitations under the License. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/str/str.h" #include "third_party/mbedtls/ccm.h" #include "third_party/mbedtls/chacha20.h" #include "third_party/mbedtls/chachapoly.h" diff --git a/third_party/mbedtls/debug.c b/third_party/mbedtls/debug.c index a79626110..5b86c1be3 100644 --- a/third_party/mbedtls/debug.c +++ b/third_party/mbedtls/debug.c @@ -15,7 +15,6 @@ │ See the License for the specific language governing permissions and │ │ limitations under the License. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/str/str.h" #include "third_party/mbedtls/common.h" #include "third_party/mbedtls/debug.h" #include "third_party/mbedtls/error.h" diff --git a/third_party/mbedtls/dhm.c b/third_party/mbedtls/dhm.c index 8d41b82e6..d91d9e01b 100644 --- a/third_party/mbedtls/dhm.c +++ b/third_party/mbedtls/dhm.c @@ -16,7 +16,6 @@ │ limitations under the License. │ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/calls/calls.h" -#include "libc/str/str.h" #include "third_party/mbedtls/asn1.h" #include "third_party/mbedtls/bignum.h" #include "third_party/mbedtls/common.h" diff --git a/third_party/mbedtls/ecdh_everest.c b/third_party/mbedtls/ecdh_everest.c index ea270eb34..92f62b58b 100644 --- a/third_party/mbedtls/ecdh_everest.c +++ b/third_party/mbedtls/ecdh_everest.c @@ -15,7 +15,6 @@ │ See the License for the specific language governing permissions and │ │ limitations under the License. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/str/str.h" #include "third_party/mbedtls/ecdh_everest.h" #include "third_party/mbedtls/everest.h" #if defined(MBEDTLS_ECDH_C) && defined(MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED) diff --git a/third_party/mbedtls/ecdsa.c b/third_party/mbedtls/ecdsa.c index 39ca48ba9..0ac74dcd1 100644 --- a/third_party/mbedtls/ecdsa.c +++ b/third_party/mbedtls/ecdsa.c @@ -15,7 +15,6 @@ │ See the License for the specific language governing permissions and │ │ limitations under the License. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/str/str.h" #include "third_party/mbedtls/asn1write.h" #include "third_party/mbedtls/common.h" #include "third_party/mbedtls/ecdsa.h" diff --git a/third_party/mbedtls/ecp.c b/third_party/mbedtls/ecp.c index 26d205ed7..45f13c86c 100644 --- a/third_party/mbedtls/ecp.c +++ b/third_party/mbedtls/ecp.c @@ -20,7 +20,6 @@ #include "libc/log/log.h" #include "libc/runtime/runtime.h" #include "libc/stdio/stdio.h" -#include "libc/str/str.h" #include "third_party/mbedtls/bignum.h" #include "third_party/mbedtls/bignum_internal.h" #include "third_party/mbedtls/common.h" diff --git a/third_party/mbedtls/ecp256.c b/third_party/mbedtls/ecp256.c index 9627cc325..2f5d93bd7 100644 --- a/third_party/mbedtls/ecp256.c +++ b/third_party/mbedtls/ecp256.c @@ -21,7 +21,6 @@ #include "libc/nexgen32e/x86feature.h" #include "libc/runtime/gc.internal.h" #include "libc/runtime/runtime.h" -#include "libc/str/str.h" #include "third_party/mbedtls/bignum_internal.h" #include "third_party/mbedtls/ecp.h" #include "third_party/mbedtls/ecp_internal.h" diff --git a/third_party/mbedtls/ecp384.c b/third_party/mbedtls/ecp384.c index 52da20af9..8b6a6dd94 100644 --- a/third_party/mbedtls/ecp384.c +++ b/third_party/mbedtls/ecp384.c @@ -22,7 +22,6 @@ #include "libc/nexgen32e/x86feature.h" #include "libc/runtime/gc.internal.h" #include "libc/runtime/runtime.h" -#include "libc/str/str.h" #include "third_party/mbedtls/bignum_internal.h" #include "third_party/mbedtls/ecp.h" #include "third_party/mbedtls/ecp_internal.h" diff --git a/third_party/mbedtls/ecp_curves.c b/third_party/mbedtls/ecp_curves.c index 36a56d48a..2b13aed58 100644 --- a/third_party/mbedtls/ecp_curves.c +++ b/third_party/mbedtls/ecp_curves.c @@ -15,7 +15,6 @@ │ See the License for the specific language governing permissions and │ │ limitations under the License. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/str/str.h" #include "third_party/mbedtls/common.h" #include "third_party/mbedtls/ecp.h" #include "third_party/mbedtls/error.h" diff --git a/third_party/mbedtls/entropy.c b/third_party/mbedtls/entropy.c index a94203f94..6c5413c16 100644 --- a/third_party/mbedtls/entropy.c +++ b/third_party/mbedtls/entropy.c @@ -17,7 +17,6 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/calls/calls.h" #include "libc/stdio/stdio.h" -#include "libc/str/str.h" #include "third_party/mbedtls/common.h" #include "third_party/mbedtls/entropy.h" #include "third_party/mbedtls/entropy_poll.h" diff --git a/third_party/mbedtls/error.c b/third_party/mbedtls/error.c index a109b9b1e..68747c6ea 100644 --- a/third_party/mbedtls/error.c +++ b/third_party/mbedtls/error.c @@ -16,7 +16,6 @@ │ limitations under the License. │ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/fmt/fmt.h" -#include "libc/str/str.h" #include "third_party/mbedtls/aes.h" #include "third_party/mbedtls/asn1.h" #include "third_party/mbedtls/base64.h" diff --git a/third_party/mbedtls/md.c b/third_party/mbedtls/md.c index 598ccb975..dd16cc7c0 100644 --- a/third_party/mbedtls/md.c +++ b/third_party/mbedtls/md.c @@ -18,7 +18,6 @@ #include "libc/mem/mem.h" #include "libc/stdio/stdio.h" #include "libc/str/blake2.h" -#include "libc/str/str.h" #include "third_party/mbedtls/common.h" #include "third_party/mbedtls/error.h" #include "third_party/mbedtls/md.h" diff --git a/third_party/mbedtls/md5.c b/third_party/mbedtls/md5.c index 362465b6c..b3f535ea9 100644 --- a/third_party/mbedtls/md5.c +++ b/third_party/mbedtls/md5.c @@ -16,7 +16,6 @@ │ limitations under the License. │ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/bits/bits.h" -#include "libc/str/str.h" #include "third_party/mbedtls/common.h" #include "third_party/mbedtls/error.h" #include "third_party/mbedtls/md.h" diff --git a/third_party/mbedtls/nist_kw.c b/third_party/mbedtls/nist_kw.c index 9adbceac7..0f7e263c9 100644 --- a/third_party/mbedtls/nist_kw.c +++ b/third_party/mbedtls/nist_kw.c @@ -15,7 +15,6 @@ │ See the License for the specific language governing permissions and │ │ limitations under the License. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/str/str.h" #include "third_party/mbedtls/common.h" #include "third_party/mbedtls/endian.h" #include "third_party/mbedtls/error.h" diff --git a/third_party/mbedtls/oid.c b/third_party/mbedtls/oid.c index d31d7b9d9..80ca45b57 100644 --- a/third_party/mbedtls/oid.c +++ b/third_party/mbedtls/oid.c @@ -16,7 +16,6 @@ │ limitations under the License. │ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/fmt/fmt.h" -#include "libc/str/str.h" #include "third_party/mbedtls/common.h" #include "third_party/mbedtls/error.h" #include "third_party/mbedtls/oid.h" diff --git a/third_party/mbedtls/param.c b/third_party/mbedtls/param.c index 2bf2eb5f2..951ac0c7f 100644 --- a/third_party/mbedtls/param.c +++ b/third_party/mbedtls/param.c @@ -20,7 +20,6 @@ #include "libc/fmt/itoa.h" #include "libc/mem/mem.h" #include "libc/runtime/runtime.h" -#include "libc/str/str.h" #include "third_party/mbedtls/platform.h" void mbedtls_param_failed(const char *msg, const char *file, int line) { diff --git a/third_party/mbedtls/pem.c b/third_party/mbedtls/pem.c index db9f0ab67..e9a20a572 100644 --- a/third_party/mbedtls/pem.c +++ b/third_party/mbedtls/pem.c @@ -16,7 +16,6 @@ │ limitations under the License. │ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/mem/mem.h" -#include "libc/str/str.h" #include "third_party/mbedtls/aes.h" #include "third_party/mbedtls/base64.h" #include "third_party/mbedtls/chk.h" diff --git a/third_party/mbedtls/pk_wrap.c b/third_party/mbedtls/pk_wrap.c index 241d2e1f5..c3b8722ad 100644 --- a/third_party/mbedtls/pk_wrap.c +++ b/third_party/mbedtls/pk_wrap.c @@ -15,7 +15,6 @@ │ See the License for the specific language governing permissions and │ │ limitations under the License. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/str/str.h" #include "third_party/mbedtls/asn1.h" #include "third_party/mbedtls/asn1write.h" #include "third_party/mbedtls/common.h" diff --git a/third_party/mbedtls/test/everest_test.c b/third_party/mbedtls/test/everest_test.c index c9abc7825..e201fa88a 100644 --- a/third_party/mbedtls/test/everest_test.c +++ b/third_party/mbedtls/test/everest_test.c @@ -18,7 +18,6 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/rand/rand.h" #include "libc/stdio/stdio.h" -#include "libc/str/str.h" #include "libc/testlib/ezbench.h" #include "libc/testlib/testlib.h" #include "third_party/mbedtls/config.h" diff --git a/third_party/mbedtls/test/test.mk b/third_party/mbedtls/test/test.mk index bf3b80f4e..95df2b1b1 100644 --- a/third_party/mbedtls/test/test.mk +++ b/third_party/mbedtls/test/test.mk @@ -137,7 +137,7 @@ o/$(MODE)/third_party/mbedtls/test/%.com: o/$(MODE)/third_party/mbedtls/test/%.c @$(COMPILE) -AOBJCOPY -T$@ $(OBJCOPY) -S -O binary $< $@ o/$(MODE)/third_party/mbedtls/test/%.com.runs: o/$(MODE)/third_party/mbedtls/test/%.com - @$(COMPILE) -wACHECK -tT$@ $< $(TESTARGS) + @$(COMPILE) -ACHECK -tT$@ $< $(TESTARGS) $(THIRD_PARTY_MBEDTLS_TEST_OBJS): \ OVERRIDE_CFLAGS += \ diff --git a/third_party/python/Include/pydebug.h b/third_party/python/Include/pydebug.h index e0d86a712..b2738ec84 100644 --- a/third_party/python/Include/pydebug.h +++ b/third_party/python/Include/pydebug.h @@ -3,7 +3,6 @@ #define Py_PYDEBUG_H COSMOPOLITAN_C_START_ /* clang-format off */ -#include "libc/runtime/runtime.h" /* These global variable are defined in pylifecycle.c */ /* XXX (ncoghlan): move these declarations to pylifecycle.h? */ diff --git a/third_party/python/Modules/_decimal/libmpdec/io.c b/third_party/python/Modules/_decimal/libmpdec/io.c index 79f191360..389765546 100644 --- a/third_party/python/Modules/_decimal/libmpdec/io.c +++ b/third_party/python/Modules/_decimal/libmpdec/io.c @@ -30,7 +30,6 @@ #include "libc/errno.h" #include "libc/fmt/fmt.h" #include "libc/unicode/locale.h" -#include "libc/unicode/unicode.h" #include "third_party/python/Modules/_decimal/libmpdec/bits.h" #include "third_party/python/Modules/_decimal/libmpdec/constants.h" #include "third_party/python/Modules/_decimal/libmpdec/io.h" diff --git a/third_party/python/Modules/_decimal/libmpdec/memory.c b/third_party/python/Modules/_decimal/libmpdec/memory.c index 6675bcdaa..032c50a5f 100644 --- a/third_party/python/Modules/_decimal/libmpdec/memory.c +++ b/third_party/python/Modules/_decimal/libmpdec/memory.c @@ -27,7 +27,6 @@ │ OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, │ │ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/mem/mem.h" #include "third_party/python/Modules/_decimal/libmpdec/mpalloc.h" #include "third_party/python/Modules/_decimal/libmpdec/mpdecimal.h" #include "third_party/python/Modules/_decimal/libmpdec/typearith.h" diff --git a/third_party/python/Modules/_decimal/libmpdec/mpdecimal.h b/third_party/python/Modules/_decimal/libmpdec/mpdecimal.h index f363e28c7..fe7d0144f 100644 --- a/third_party/python/Modules/_decimal/libmpdec/mpdecimal.h +++ b/third_party/python/Modules/_decimal/libmpdec/mpdecimal.h @@ -3,7 +3,6 @@ #include "libc/fmt/conv.h" #include "libc/inttypes.h" #include "libc/limits.h" -#include "libc/runtime/runtime.h" #include "libc/stdio/stdio.h" #include "third_party/python/pyconfig.h" COSMOPOLITAN_C_START_ diff --git a/third_party/python/Modules/_localemodule.c b/third_party/python/Modules/_localemodule.c index bbe0e0d40..6f74393d1 100644 --- a/third_party/python/Modules/_localemodule.c +++ b/third_party/python/Modules/_localemodule.c @@ -7,7 +7,6 @@ #define PY_SSIZE_T_CLEAN #include "libc/unicode/langinfo.h" #include "libc/unicode/locale.h" -#include "libc/unicode/unicode.h" #include "third_party/python/Include/dictobject.h" #include "third_party/python/Include/fileutils.h" #include "third_party/python/Include/import.h" diff --git a/third_party/python/Modules/_testcapimodule.c b/third_party/python/Modules/_testcapimodule.c index 321a42319..834697484 100644 --- a/third_party/python/Modules/_testcapimodule.c +++ b/third_party/python/Modules/_testcapimodule.c @@ -12,7 +12,6 @@ #include "libc/fmt/fmt.h" #include "libc/limits.h" #include "libc/math.h" -#include "libc/mem/mem.h" #include "libc/sysv/consts/sig.h" #include "libc/time/time.h" #include "third_party/python/Include/abstract.h" diff --git a/third_party/python/Modules/_tracemalloc.c b/third_party/python/Modules/_tracemalloc.c index f4781c62b..1c2a8a7bb 100644 --- a/third_party/python/Modules/_tracemalloc.c +++ b/third_party/python/Modules/_tracemalloc.c @@ -6,7 +6,6 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/errno.h" #include "libc/fmt/conv.h" -#include "libc/mem/mem.h" #include "third_party/python/Include/boolobject.h" #include "third_party/python/Include/dictobject.h" #include "third_party/python/Include/fileutils.h" diff --git a/third_party/python/Modules/expat/xmlparse.c b/third_party/python/Modules/expat/xmlparse.c index c5a16dbff..d19b906ac 100644 --- a/third_party/python/Modules/expat/xmlparse.c +++ b/third_party/python/Modules/expat/xmlparse.c @@ -3,7 +3,6 @@ #include "libc/calls/struct/timeval.h" #include "libc/errno.h" #include "libc/limits.h" -#include "libc/mem/mem.h" #include "libc/nexgen32e/rdtsc.h" #include "libc/nexgen32e/x86feature.h" #include "libc/rand/rand.h" diff --git a/third_party/python/Modules/resource.c b/third_party/python/Modules/resource.c index 3d546c74d..df28434b2 100644 --- a/third_party/python/Modules/resource.c +++ b/third_party/python/Modules/resource.c @@ -9,7 +9,6 @@ #include "libc/calls/struct/rusage.h" #include "libc/calls/weirdtypes.h" #include "libc/errno.h" -#include "libc/runtime/runtime.h" #include "libc/sysv/consts/rlim.h" #include "libc/sysv/consts/rlimit.h" #include "libc/sysv/consts/rusage.h" diff --git a/third_party/python/Objects/fileobject.c b/third_party/python/Objects/fileobject.c index 5f3186f27..afe196670 100644 --- a/third_party/python/Objects/fileobject.c +++ b/third_party/python/Objects/fileobject.c @@ -7,7 +7,6 @@ #define PY_SSIZE_T_CLEAN #include "libc/calls/calls.h" #include "libc/errno.h" -#include "libc/stdio/lock.h" #include "third_party/python/Include/abstract.h" #include "third_party/python/Include/boolobject.h" #include "third_party/python/Include/bytesobject.h" diff --git a/third_party/python/Objects/obmalloc.c b/third_party/python/Objects/obmalloc.c index 1bc8d17dd..7f8942355 100644 --- a/third_party/python/Objects/obmalloc.c +++ b/third_party/python/Objects/obmalloc.c @@ -10,7 +10,6 @@ #include "libc/dce.h" #include "libc/fmt/fmt.h" #include "libc/intrin/asan.internal.h" -#include "libc/mem/mem.h" #include "libc/runtime/runtime.h" #include "libc/sysv/consts/map.h" #include "libc/sysv/consts/prot.h" diff --git a/third_party/python/Parser/acceler.c b/third_party/python/Parser/acceler.c index 94cc1d690..1349ca7da 100644 --- a/third_party/python/Parser/acceler.c +++ b/third_party/python/Parser/acceler.c @@ -4,7 +4,6 @@ │ Python 3 │ │ https://docs.python.org/3/license.html │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/runtime/runtime.h" #include "third_party/python/Include/grammar.h" #include "third_party/python/Include/node.h" #include "third_party/python/Include/objimpl.h" diff --git a/third_party/python/Parser/grammar.c b/third_party/python/Parser/grammar.c index 17ba0b650..bfc4acdd6 100644 --- a/third_party/python/Parser/grammar.c +++ b/third_party/python/Parser/grammar.c @@ -4,7 +4,6 @@ │ Python 3 │ │ https://docs.python.org/3/license.html │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/mem/mem.h" #include "third_party/python/Include/grammar.h" #include "third_party/python/Include/objimpl.h" #include "third_party/python/Include/pgenheaders.h" diff --git a/third_party/python/Python/cosmomodule.c b/third_party/python/Python/cosmomodule.c index e72819505..b6ea626c5 100644 --- a/third_party/python/Python/cosmomodule.c +++ b/third_party/python/Python/cosmomodule.c @@ -19,9 +19,7 @@ #define PY_SSIZE_T_CLEAN #include "dsp/scale/cdecimate2xuint8x8.h" #include "libc/bits/popcnt.h" -#include "libc/calls/calls.h" #include "libc/dce.h" -#include "libc/errno.h" #include "libc/macros.internal.h" #include "libc/math.h" #include "libc/mem/mem.h" @@ -29,7 +27,6 @@ #include "libc/nexgen32e/rdtsc.h" #include "libc/nexgen32e/rdtscp.h" #include "libc/runtime/runtime.h" -#include "libc/str/str.h" #include "third_party/python/Include/abstract.h" #include "third_party/python/Include/import.h" #include "third_party/python/Include/longobject.h" @@ -190,59 +187,6 @@ cosmo_popcount(PyObject *self, PyObject *args) return PyLong_FromSize_t(_countbits(p, n)); } -PyDoc_STRVAR(pledge_doc, -"pledge($module, promises, execpromises)\n\ ---\n\n\ -Permits syscall operations, e.g.\n\ -\n\ - >>> cosmo.pledge('stdio rpath tty', None)\n\ -\n\ -This function implements the OpenBSD pledge() API for\n\ -OpenBSD and Linux, where we use SECCOMP BPF. Read the\n\ -Cosmopolitan Libc documentation to learn more."); - -static PyObject * -cosmo_pledge(PyObject *self, PyObject *args) -{ - int e = errno; - const char *x, *y; - if (!PyArg_ParseTuple(args, "sz:pledge", &x, &y)) return 0; - if (!pledge(x, y)) { - Py_RETURN_NONE; - } else { - PyErr_SetString(PyExc_SystemError, strerror(errno)); - errno = e; - return 0; - } -} - -PyDoc_STRVAR(unveil_doc, -"unveil($module, path, permissions)\n\ ---\n\n\ -Permits filesystem operations, e.g.\n\ -\n\ - >>> cosmo.unveil('.', 'rwcx')\n\ - >>> cosmo.unveil(None, None)\n\ -\n\ -This function implements the OpenBSD unveil() API for\n\ -OpenBSD and Linux where we use Landlock LSM. Read the\n\ -Cosmopolitan Libc documentation to learn more."); - -static PyObject * -cosmo_unveil(PyObject *self, PyObject *args) -{ - int e = errno; - const char *x, *y; - if (!PyArg_ParseTuple(args, "zz:unveil", &x, &y)) return 0; - if (!unveil(x, y)) { - Py_RETURN_NONE; - } else { - PyErr_SetString(PyExc_SystemError, strerror(errno)); - errno = e; - return 0; - } -} - PyDoc_STRVAR(exit1_doc, "exit1($module)\n\ --\n\n\ @@ -325,8 +269,6 @@ static PyMethodDef cosmo_methods[] = { {"exit1", cosmo_exit1, METH_NOARGS, exit1_doc}, {"rdtsc", cosmo_rdtsc, METH_NOARGS, rdtsc_doc}, {"crc32c", cosmo_crc32c, METH_VARARGS, crc32c_doc}, - {"pledge", cosmo_pledge, METH_VARARGS, pledge_doc}, - {"unveil", cosmo_unveil, METH_VARARGS, unveil_doc}, {"syscount", cosmo_syscount, METH_NOARGS, syscount_doc}, {"popcount", cosmo_popcount, METH_VARARGS, popcount_doc}, {"decimate", cosmo_decimate, METH_VARARGS, decimate_doc}, diff --git a/third_party/python/Python/dtoa.c b/third_party/python/Python/dtoa.c index 30013e25d..861813056 100644 --- a/third_party/python/Python/dtoa.c +++ b/third_party/python/Python/dtoa.c @@ -7,7 +7,6 @@ #include "libc/assert.h" #include "libc/errno.h" #include "libc/math.h" -#include "libc/runtime/runtime.h" #include "third_party/python/Include/pymem.h" #include "third_party/python/Include/pyport.h" /* clang-format off */ diff --git a/third_party/python/Python/errors.c b/third_party/python/Python/errors.c index 213956aa0..2a1039b2b 100644 --- a/third_party/python/Python/errors.c +++ b/third_party/python/Python/errors.c @@ -5,7 +5,6 @@ │ https://docs.python.org/3/license.html │ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/errno.h" -#include "libc/mem/mem.h" #include "libc/nt/enum/formatmessageflags.h" #include "libc/nt/enum/lang.h" #include "libc/nt/memory.h" diff --git a/third_party/python/Python/fileutils.c b/third_party/python/Python/fileutils.c index c796db2f0..892aee18c 100644 --- a/third_party/python/Python/fileutils.c +++ b/third_party/python/Python/fileutils.c @@ -15,7 +15,6 @@ #include "libc/sysv/consts/fio.h" #include "libc/sysv/consts/o.h" #include "libc/unicode/locale.h" -#include "libc/unicode/unicode.h" #include "third_party/python/Include/bytesobject.h" #include "third_party/python/Include/ceval.h" #include "third_party/python/Include/fileutils.h" diff --git a/third_party/python/Python/import.c b/third_party/python/Python/import.c index ce10ef249..c89a13109 100644 --- a/third_party/python/Python/import.c +++ b/third_party/python/Python/import.c @@ -11,15 +11,14 @@ #include "libc/calls/struct/stat.macros.h" #include "libc/fmt/conv.h" #include "libc/macros.internal.h" -#include "libc/mem/mem.h" #include "libc/runtime/gc.h" +#include "libc/x/x.h" #include "libc/sysv/consts/o.h" #include "libc/sysv/consts/s.h" -#include "libc/x/x.h" #include "third_party/python/Include/Python-ast.h" #include "third_party/python/Include/abstract.h" -#include "third_party/python/Include/bltinmodule.h" #include "third_party/python/Include/boolobject.h" +#include "third_party/python/Include/bltinmodule.h" #include "third_party/python/Include/ceval.h" #include "third_party/python/Include/code.h" #include "third_party/python/Include/dictobject.h" diff --git a/third_party/python/freeze.c b/third_party/python/freeze.c index 08c2c9b07..cc325be35 100644 --- a/third_party/python/freeze.c +++ b/third_party/python/freeze.c @@ -5,7 +5,6 @@ │ https://docs.python.org/3/license.html │ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/assert.h" -#include "libc/mem/mem.h" #include "third_party/python/Include/bytesobject.h" #include "third_party/python/Include/compile.h" #include "third_party/python/Include/fileutils.h" diff --git a/third_party/python/launch.c b/third_party/python/launch.c index 485468eed..093d4dc94 100644 --- a/third_party/python/launch.c +++ b/third_party/python/launch.c @@ -9,7 +9,6 @@ #include "libc/intrin/kprintf.h" #include "libc/log/libfatal.internal.h" #include "libc/log/log.h" -#include "libc/mem/mem.h" #include "libc/runtime/runtime.h" #include "libc/testlib/testlib.h" #include "libc/x/x.h" diff --git a/third_party/python/python.mk b/third_party/python/python.mk index f142856f7..f31a713bd 100644 --- a/third_party/python/python.mk +++ b/third_party/python/python.mk @@ -473,12 +473,12 @@ THIRD_PARTY_PYTHON_STAGE1_A_DEPS = \ o//third_party/python/Python/importlib.inc: \ o/$(MODE)/third_party/python/freeze.com \ third_party/python/Lib/importlib/_bootstrap.py - @$(COMPILE) -wAFREEZE -T$@ $^ $@ + @$(COMPILE) -AFREEZE -T$@ $^ $@ o//third_party/python/Python/importlib_external.inc: \ o/$(MODE)/third_party/python/freeze.com \ third_party/python/Lib/importlib/_bootstrap_external.py - @$(COMPILE) -wAFREEZE -T$@ $^ $@ + @$(COMPILE) -AFREEZE -T$@ $^ $@ $(THIRD_PARTY_PYTHON_STAGE1_A): \ $(THIRD_PARTY_PYTHON_STAGE1_A).pkg \ @@ -2093,1515 +2093,1515 @@ o/$(MODE)/third_party/python/pythontester.com.dbg: \ o/$(MODE)/third_party/python/Lib/test/test_grammar.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_grammar $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_grammar $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_set.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_set $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_set $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_genexps.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_genexps $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_genexps $(PYTESTARGS) # [jart] incompatible with landlock because it uses current directory for temp files # o/$(MODE)/third_party/python/Lib/test/test_sqlite.py.runs: \ # o/$(MODE)/third_party/python/pythontester.com -# @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_sqlite $(PYTESTARGS) +# @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_sqlite $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_bz2.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_bz2 $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_bz2 $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_zlib.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_zlib $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_zlib $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_opcodes.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_opcodes $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_opcodes $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_marshal.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_marshal $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_marshal $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_pow.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_pow $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_pow $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_binascii.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_binascii $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_binascii $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_binhex.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_binhex $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_binhex $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_capi.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_capi $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_capi $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test__locale.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test__locale $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test__locale $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_binop.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_binop $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_binop $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test___future__.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test___future__ $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test___future__ $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test__opcode.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test__opcode $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test__opcode $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_abc.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_abc $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_abc $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_bytes.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_bytes $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_bytes $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_setcomps.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_setcomps $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_setcomps $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_itertools.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_itertools $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_itertools $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_listcomps.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_listcomps $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_listcomps $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_aifc.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_aifc $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_aifc $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_audioop.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_audioop $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_audioop $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_bool.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_bool $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_bool $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_base64.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_base64 $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_base64 $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_baseexception.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_baseexception $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_baseexception $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_array.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_array $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_array $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_builtin.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_builtin $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_builtin $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_charmapcodec.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_charmapcodec $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_charmapcodec $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_codecs.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_codecs $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_codecs $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_codeop.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_codeop $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_codeop $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_cgi.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_cgi $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_cgi $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_abstract_numbers.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_abstract_numbers $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_abstract_numbers $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_augassign.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_augassign $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_augassign $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_bigaddrspace.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_bigaddrspace $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_bigaddrspace $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_class.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_class $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_class $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_call.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_call $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_call $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_buffer.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_buffer $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_buffer $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_bufio.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_bufio $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_bufio $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_enum.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_enum $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_enum $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_code.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_code $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_code $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_cmd.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_cmd $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_cmd $(PYTESTARGS) # [jart] incompatible with landlock because it uses current directory for temp files # o/$(MODE)/third_party/python/Lib/test/test_pwd.py.runs: \ # o/$(MODE)/third_party/python/pythontester.com -# @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_pwd $(PYTESTARGS) +# @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_pwd $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_cmath.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_cmath $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_cmath $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_defaultdict.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_defaultdict $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_defaultdict $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_decorators.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_decorators $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_decorators $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_copy.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_copy $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_copy $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_csv.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_csv $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_csv $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_difflib.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_difflib $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_difflib $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_colorsys.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_colorsys $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_colorsys $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_compare.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_compare $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_compare $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_copyreg.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_copyreg $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_copyreg $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_collections.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_collections $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_collections $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_format.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_format $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_format $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_fractions.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_fractions $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_fractions $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_eof.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_eof $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_eof $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_fnmatch.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_fnmatch $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_fnmatch $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_frame.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_frame $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_frame $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_dummy_threading.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_dummy_threading $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_dummy_threading $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_dynamic.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_dynamic $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_dynamic $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_dict.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_dict $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_dict $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_wsgiref.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_wsgiref $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_wsgiref $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_wave.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_wave $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_wave $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_urlparse.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_urlparse $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_urlparse $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_userdict.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_userdict $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_userdict $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_userlist.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_userlist $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_userlist $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_userstring.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_userstring $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_userstring $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_utf8source.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_utf8source $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_utf8source $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_uu.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_uu $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_uu $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_email/test__encoded_words.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_email.test__encoded_words $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_email.test__encoded_words $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_email/test__header_value_parser.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_email.test__header_value_parser $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_email.test__header_value_parser $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_email/test_asian_codecs.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_email.test_asian_codecs $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_email.test_asian_codecs $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_email/test_contentmanager.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_email.test_contentmanager $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_email.test_contentmanager $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_email/test_defect_handling.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_email.test_defect_handling $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_email.test_defect_handling $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_email/test_email.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_email.test_email $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_email.test_email $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_email/test_generator.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_email.test_generator $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_email.test_generator $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_email/test_headerregistry.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_email.test_headerregistry $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_email.test_headerregistry $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_email/test_inversion.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_email.test_inversion $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_email.test_inversion $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_email/test_message.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_email.test_message $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_email.test_message $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_email/test_parser.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_email.test_parser $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_email.test_parser $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_email/test_pickleable.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_email.test_pickleable $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_email.test_pickleable $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_email/test_policy.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_email.test_policy $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_email.test_policy $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_email/test_utils.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_email.test_utils $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_email.test_utils $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_strtod.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_strtod $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_strtod $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_struct.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_struct $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_struct $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_structmembers.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_structmembers $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_structmembers $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_hash.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_hash $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_hash $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_heapq.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_heapq $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_heapq $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_operator.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_operator $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_operator $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_optparse.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_optparse $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_optparse $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_finalization.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_finalization $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_finalization $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_enumerate.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_enumerate $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_enumerate $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_errno.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_errno $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_errno $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_html.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_html $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_html $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_htmlparser.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_htmlparser $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_htmlparser $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_http_cookiejar.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_http_cookiejar $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_http_cookiejar $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_http_cookies.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_http_cookies $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_http_cookies $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_list.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_list $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_list $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_long.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_long $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_long $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_longexp.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_longexp $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_longexp $(PYTESTARGS) # [jart] incompatible with landlock because it uses current directory for temp files # o/$(MODE)/third_party/python/Lib/test/test_glob.py.runs: \ # o/$(MODE)/third_party/python/pythontester.com -# @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_glob $(PYTESTARGS) +# @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_glob $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_global.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_global $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_global $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_ipaddress.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_ipaddress $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_ipaddress $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_isinstance.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_isinstance $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_isinstance $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_iter.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_iter $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_iter $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_json/__main__.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_json $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_json $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_tarfile.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_tarfile $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_tarfile $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_iterlen.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_iterlen $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_iterlen $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_stat.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_stat $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_stat $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_memoryio.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_memoryio $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_memoryio $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_memoryview.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_memoryview $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_memoryview $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_metaclass.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_metaclass $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_metaclass $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_mimetypes.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_mimetypes $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_mimetypes $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_kdf.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_kdf $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_kdf $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_cosmo.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_cosmo $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_cosmo $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_scratch.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_scratch $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_scratch $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_hashlib.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_hashlib $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_hashlib $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_complex.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_complex $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_complex $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_funcattrs.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_funcattrs $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_funcattrs $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_functools.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_functools $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_functools $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_int.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_int $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_int $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_int_literal.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_int_literal $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_int_literal $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_bisect.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_bisect $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_bisect $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_pyexpat.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_pyexpat $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_pyexpat $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_ioctl.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_ioctl $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_ioctl $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_getopt.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_getopt $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_getopt $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_sort.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_sort $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_sort $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_slice.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_slice $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_slice $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_decimal.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_decimal $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_decimal $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_deque.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_deque $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_deque $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_mmap.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_mmap $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_mmap $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_poll.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_poll $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_poll $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_robotparser.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_robotparser $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_robotparser $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_re.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_re $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_re $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_range.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_range $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_range $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_sax.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_sax $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_sax $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_scope.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_scope $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_scope $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_stringprep.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_stringprep $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_stringprep $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_syntax.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_syntax $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_syntax $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_unicodedata.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_unicodedata $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_unicodedata $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_unpack.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_unpack $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_unpack $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_unpack_ex.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_unpack_ex $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_unpack_ex $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_file.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_file $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_file $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_uuid.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_uuid $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_uuid $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_filecmp.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_filecmp $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_filecmp $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_fileinput.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_fileinput $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_fileinput $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_fileio.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_fileio $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_fileio $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_float.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_float $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_float $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_pickle.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_pickle $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_pickle $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_pickletools.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_pickletools $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_pickletools $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_tuple.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_tuple $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_tuple $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_reprlib.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_reprlib $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_reprlib $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_strftime.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_strftime $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_strftime $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_quopri.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_quopri $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_quopri $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_with.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_with $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_with $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_raise.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_raise $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_raise $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_yield_from.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_yield_from $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_yield_from $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_typechecks.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_typechecks $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_typechecks $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_types.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_types $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_types $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_random.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_random $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_random $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_typing.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_typing $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_typing $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_unary.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_unary $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_unary $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_print.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_print $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_print $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_pprint.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_pprint $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_pprint $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_secrets.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_secrets $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_secrets $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_select.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_select $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_select $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_selectors.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_selectors $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_selectors $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_contains.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_contains $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_contains $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_super.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_super $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_super $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_unicode.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_unicode $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_unicode $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_unicode_file.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_unicode_file $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_unicode_file $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_unicode_identifiers.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_unicode_identifiers $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_unicode_identifiers $(PYTESTARGS) # [jart] unsupported with landlock right now because exdev renaming # o/$(MODE)/third_party/python/Lib/test/test_unicode_file_functions.py.runs: \ # o/$(MODE)/third_party/python/pythontester.com -# @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_unicode_file_functions $(PYTESTARGS) +# @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_unicode_file_functions $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_textwrap.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_textwrap $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_textwrap $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_pulldom.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_pulldom $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_pulldom $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_minidom.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_minidom $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_minidom $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_xml_dom_minicompat.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_xml_dom_minicompat $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_xml_dom_minicompat $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_xml_etree_c.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_xml_etree_c $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_xml_etree_c $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_coroutines.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_coroutines $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_coroutines $(PYTESTARGS) # [jart] incompatible with landlock because it uses current directory for temp files # o/$(MODE)/third_party/python/Lib/test/test_tempfile.py.runs: \ # o/$(MODE)/third_party/python/pythontester.com -# @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_tempfile $(PYTESTARGS) +# @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_tempfile $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_normalization.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_normalization $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_normalization $(PYTESTARGS) # [jart] unsupported with landlock right now because it needs /bin/sh # o/$(MODE)/third_party/python/Lib/test/test_os.py.runs: \ # o/$(MODE)/third_party/python/pythontester.com -# @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_os $(PYTESTARGS) +# @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_os $(PYTESTARGS) # [jart] incompatible with landlock because it uses current directory for temp files # o/$(MODE)/third_party/python/Lib/test/test_logging.py.runs: \ # o/$(MODE)/third_party/python/pythontester.com -# @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_logging $(PYTESTARGS) +# @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_logging $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_io.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_io $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_io $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_gzip.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_gzip $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_gzip $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_tracemalloc.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_tracemalloc $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_tracemalloc $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_configparser.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_configparser $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_configparser $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_flufl.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_flufl $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_flufl $(PYTESTARGS) # [jart] incompatible with landlock because it uses current directory for temp files # o/$(MODE)/third_party/python/Lib/test/test_keyword.py.runs: \ # o/$(MODE)/third_party/python/pythontester.com -# @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_keyword $(PYTESTARGS) +# @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_keyword $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_keywordonlyarg.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_keywordonlyarg $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_keywordonlyarg $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_sys.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_sys $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_sys $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_cgitb.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_cgitb $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_cgitb $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_asyncgen.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_asyncgen $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_asyncgen $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_runpy.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_runpy $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_runpy $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_doctest.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_doctest $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_doctest $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_doctest2.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_doctest2 $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_doctest2 $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_calendar.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_calendar $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_calendar $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_asynchat.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_asynchat $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_asynchat $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_asdl_parser.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_asdl_parser $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_asdl_parser $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_atexit.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_atexit $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_atexit $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_dis.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_dis $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_dis $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_asyncore.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_asyncore $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_asyncore $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_epoll.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_epoll $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_epoll $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_cmd_line.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_cmd_line $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_cmd_line $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_cmd_line_script.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_cmd_line_script $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_cmd_line_script $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_code_module.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_code_module $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_code_module $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_codeccallbacks.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_codeccallbacks $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_codeccallbacks $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_codecmaps_cn.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_codecmaps_cn $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_codecmaps_cn $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_codecmaps_jp.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_codecmaps_jp $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_codecmaps_jp $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_codecencodings_cn.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_codecencodings_cn $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_codecencodings_cn $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_codecencodings_hk.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_codecencodings_hk $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_codecencodings_hk $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_codecmaps_hk.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_codecmaps_hk $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_codecmaps_hk $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_codecmaps_kr.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_codecmaps_kr $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_codecmaps_kr $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_codecmaps_tw.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_codecmaps_tw $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_codecmaps_tw $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_codecencodings_iso2022.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_codecencodings_iso2022 $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_codecencodings_iso2022 $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_codecencodings_jp.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_codecencodings_jp $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_codecencodings_jp $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_codecencodings_kr.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_codecencodings_kr $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_codecencodings_kr $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_codecencodings_tw.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_codecencodings_tw $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_codecencodings_tw $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_compile.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_compile $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_compile $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_contextlib.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_contextlib $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_contextlib $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_cprofile.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_cprofile $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_cprofile $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_crashers.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_crashers $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_crashers $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_crypt.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_crypt $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_crypt $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_datetime.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_datetime $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_datetime $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_descrtut.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_descrtut $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_descrtut $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_devpoll.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_devpoll $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_devpoll $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_dict_version.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_dict_version $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_dict_version $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_dictcomps.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_dictcomps $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_dictcomps $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_dictviews.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_dictviews $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_dictviews $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_dtrace.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_dtrace $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_dtrace $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_dynamicclassattribute.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_dynamicclassattribute $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_dynamicclassattribute $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_eintr.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_eintr $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_eintr $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_exception_hierarchy.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_exception_hierarchy $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_exception_hierarchy $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_xmlrpc_net.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_xmlrpc_net $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_xmlrpc_net $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_bigmem.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_bigmem $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_bigmem $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_exception_variations.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_exception_variations $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_exception_variations $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_exceptions.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_exceptions $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_exceptions $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_time.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_time $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_time $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_docxmlrpc.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_docxmlrpc $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_docxmlrpc $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_extcall.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_extcall $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_extcall $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_faulthandler.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_faulthandler $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_faulthandler $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_fcntl.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_fcntl $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_fcntl $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_file_eintr.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_file_eintr $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_file_eintr $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_fork1.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_fork1 $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_fork1 $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_fstring.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_fstring $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_fstring $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_ftplib.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_ftplib $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_ftplib $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_future.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_future $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_future $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_future3.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_future3 $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_future3 $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_future4.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_future4 $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_future4 $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_future5.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_future5 $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_future5 $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_gc.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_gc $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_gc $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_gdb.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_gdb $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_gdb $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_generator_stop.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_generator_stop $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_generator_stop $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_generators.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_generators $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_generators $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_genericpath.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_genericpath $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_genericpath $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_getargs2.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_getargs2 $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_getargs2 $(PYTESTARGS) # [jart] incompatible with landlock because it reads /etc/passwd # o/$(MODE)/third_party/python/Lib/test/test_getpass.py.runs: \ # o/$(MODE)/third_party/python/pythontester.com -# @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_getpass $(PYTESTARGS) +# @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_getpass $(PYTESTARGS) # [jart] incompatible with landlock because it uses current directory for temp files # o/$(MODE)/third_party/python/Lib/test/test_gettext.py.runs: \ # o/$(MODE)/third_party/python/pythontester.com -# @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_gettext $(PYTESTARGS) +# @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_gettext $(PYTESTARGS) # [jart] incompatible with landlock because it reads /etc/passwd # o/$(MODE)/third_party/python/Lib/test/test_grp.py.runs: \ # o/$(MODE)/third_party/python/pythontester.com -# @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_grp $(PYTESTARGS) +# @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_grp $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_imaplib.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_imaplib $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_imaplib $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_imghdr.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_imghdr $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_imghdr $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_imp.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_imp $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_imp $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_index.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_index $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_index $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_kqueue.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_kqueue $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_kqueue $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_largefile.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_largefile $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_largefile $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_linecache.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_linecache $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_linecache $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_locale.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_locale $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_locale $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_macpath.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_macpath $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_macpath $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_macurl2path.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_macurl2path $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_macurl2path $(PYTESTARGS) # [jart] unsupported with landlock right now because exdev renaming # o/$(MODE)/third_party/python/Lib/test/test_mailbox.py.runs: \ # o/$(MODE)/third_party/python/pythontester.com -# @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_mailbox $(PYTESTARGS) +# @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_mailbox $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_mailcap.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_mailcap $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_mailcap $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_module.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_module $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_module $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_modulefinder.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_modulefinder $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_modulefinder $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_multibytecodec.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_multibytecodec $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_multibytecodec $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_multiprocessing_fork.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_multiprocessing_fork $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_multiprocessing_fork $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_multiprocessing_forkserver.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_multiprocessing_forkserver $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_multiprocessing_forkserver $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_multiprocessing_main_handling.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_multiprocessing_main_handling $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_multiprocessing_main_handling $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_multiprocessing_spawn.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_multiprocessing_spawn $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_multiprocessing_spawn $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_netrc.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_netrc $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_netrc $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_nis.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_nis $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_nis $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_nntplib.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_nntplib $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_nntplib $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_ntpath.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_ntpath $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_ntpath $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_numeric_tower.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_numeric_tower $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_numeric_tower $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_ossaudiodev.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_ossaudiodev $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_ossaudiodev $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_parser.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_parser $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_parser $(PYTESTARGS) # [jart] unsupported with landlock right now because exdev renaming # o/$(MODE)/third_party/python/Lib/test/test_pathlib.py.runs: \ # o/$(MODE)/third_party/python/pythontester.com -# @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_pathlib $(PYTESTARGS) +# @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_pathlib $(PYTESTARGS) # [jart] unsupported with landlock right now because it uses current directory for temp files # o/$(MODE)/third_party/python/Lib/test/test_pdb.py.runs: \ # o/$(MODE)/third_party/python/pythontester.com -# @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_pdb $(PYTESTARGS) +# @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_pdb $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_peepholer.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_peepholer $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_peepholer $(PYTESTARGS) # [jart] unsupported with landlock right now because it needs /bin/sh # o/$(MODE)/third_party/python/Lib/test/test_pipes.py.runs: \ # o/$(MODE)/third_party/python/pythontester.com -# @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_pipes $(PYTESTARGS) +# @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_pipes $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_pkgimport.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_pkgimport $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_pkgimport $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_platform.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_platform $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_platform $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_plistlib.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_plistlib $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_plistlib $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_httplib.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_httplib $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_httplib $(PYTESTARGS) # [jart] unsupported with landlock right now because it needs /bin/sh # o/$(MODE)/third_party/python/Lib/test/test_popen.py.runs: \ # o/$(MODE)/third_party/python/pythontester.com -# @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_popen $(PYTESTARGS) +# @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_popen $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_poplib.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_poplib $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_poplib $(PYTESTARGS) # [jart] incompatible with landlock because it uses current directory for temp files # o/$(MODE)/third_party/python/Lib/test/test_posix.py.runs: \ # o/$(MODE)/third_party/python/pythontester.com -# @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_posix $(PYTESTARGS) +# @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_posix $(PYTESTARGS) # [jart] unsupported with landlock right now because exdev renaming # o/$(MODE)/third_party/python/Lib/test/test_posixpath.py.runs: \ # o/$(MODE)/third_party/python/pythontester.com -# @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_posixpath $(PYTESTARGS) +# @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_posixpath $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_profile.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_profile $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_profile $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_property.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_property $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_property $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_pstats.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_pstats $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_pstats $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_pty.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_pty $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_pty $(PYTESTARGS) # [jart] incompatible with landlock because it uses current directory for temp files # o/$(MODE)/third_party/python/Lib/test/test_py_compile.py.runs: \ # o/$(MODE)/third_party/python/pythontester.com -# @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_py_compile $(PYTESTARGS) +# @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_py_compile $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_pyclbr.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_pyclbr $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_pyclbr $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_pydoc.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_pydoc $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_pydoc $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_readline.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_readline $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_readline $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_regrtest.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_regrtest $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_regrtest $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_repl.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_repl $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_repl $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_resource.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_resource $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_resource $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_richcmp.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_richcmp $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_richcmp $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_sched.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_sched $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_sched $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_script_helper.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_script_helper $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_script_helper $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_shlex.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_shlex $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_shlex $(PYTESTARGS) # [jart] incompatible with landlock because it uses current directory for temp files # o/$(MODE)/third_party/python/Lib/test/test_shutil.py.runs: \ # o/$(MODE)/third_party/python/pythontester.com -# @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_shutil $(PYTESTARGS) +# @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_shutil $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_signal.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_signal $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_signal $(PYTESTARGS) # [jart] incompatible with landlock because it uses current directory for temp files # o/$(MODE)/third_party/python/Lib/test/test_site.py.runs: \ # o/$(MODE)/third_party/python/pythontester.com -# @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_site $(PYTESTARGS) +# @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_site $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_smtpd.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_smtpd $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_smtpd $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_smtplib.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_smtplib $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_smtplib $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_smtpnet.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_smtpnet $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_smtpnet $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_sndhdr.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_sndhdr $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_sndhdr $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_socket.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_socket $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_socket $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_socketserver.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_socketserver $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_socketserver $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_spwd.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_spwd $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_spwd $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_startfile.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_startfile $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_startfile $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_statistics.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_statistics $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_statistics $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_string.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_string $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_string $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_string_literals.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_string_literals $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_string_literals $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_strptime.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_strptime $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_strptime $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_structseq.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_structseq $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_structseq $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_subclassinit.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_subclassinit $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_subclassinit $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_subprocess.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_subprocess $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_subprocess $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_sunau.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_sunau $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_sunau $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_support.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_support $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_support $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_symbol.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_symbol $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_symbol $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_symtable.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_symtable $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_symtable $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_sys_setprofile.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_sys_setprofile $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_sys_setprofile $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_syslog.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_syslog $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_syslog $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_telnetlib.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_telnetlib $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_telnetlib $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_threadedtempfile.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_threadedtempfile $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_threadedtempfile $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_timeit.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_timeit $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_timeit $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_timeout.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_timeout $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_timeout $(PYTESTARGS) # TODO(jart): what's wrong with this since landlock? # o/$(MODE)/third_party/python/Lib/test/test_tokenize.py.runs: \ # o/$(MODE)/third_party/python/pythontester.com -# @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_tokenize $(PYTESTARGS) +# @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_tokenize $(PYTESTARGS) # [jart] incompatible with landlock because it uses current directory for temp files # o/$(MODE)/third_party/python/Lib/test/test_trace.py.runs: \ # o/$(MODE)/third_party/python/pythontester.com -# @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_trace $(PYTESTARGS) +# @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_trace $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_traceback.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_traceback $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_traceback $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_turtle.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_turtle $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_turtle $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_unittest.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_unittest $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_unittest $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_univnewlines.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_univnewlines $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_univnewlines $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_urllib.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_urllib $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_urllib $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_urllib2.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_urllib2 $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_urllib2 $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_urllib2_localnet.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_urllib2_localnet $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_urllib2_localnet $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_urllib2net.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_urllib2net $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_urllib2net $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_urllib_response.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_urllib_response $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_urllib_response $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_urllibnet.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_urllibnet $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_urllibnet $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_wait3.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_wait3 $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_wait3 $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_wait4.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_wait4 $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_wait4 $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_webbrowser.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_webbrowser $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_webbrowser $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_xdrlib.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_xdrlib $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_xdrlib $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_weakref.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_weakref $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_weakref $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_weakset.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_weakset $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_weakset $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_zipapp.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_zipapp $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_zipapp $(PYTESTARGS) # [jart] incompatible with landlock because it uses current directory for temp files # o/$(MODE)/third_party/python/Lib/test/test_zipimport.py.runs: \ # o/$(MODE)/third_party/python/pythontester.com -# @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_zipimport $(PYTESTARGS) +# @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_zipimport $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_zipfile.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_zipfile $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_zipfile $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_zipfile64.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_zipfile64 $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_zipfile64 $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/mp_preload.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.mp_preload $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.mp_preload $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/bisect.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.bisect $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.bisect $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/signalinterproctester.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.signalinterproctester $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.signalinterproctester $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/pythoninfo.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.pythoninfo $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.pythoninfo $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/datetimetester.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.datetimetester $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.datetimetester $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/outstanding_bugs.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.outstanding_bugs $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.outstanding_bugs $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/sortperf.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.sortperf $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.sortperf $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_openpty.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_openpty $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_openpty $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_queue.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_queue $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_queue $(PYTESTARGS) o/$(MODE)/third_party/python/Lib/test/test_ordered_dict.py.runs: \ o/$(MODE)/third_party/python/pythontester.com - @$(COMPILE) -wACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_ordered_dict $(PYTESTARGS) + @$(COMPILE) -ACHECK -tT$@ $(PYHARNESSARGS) $< -m test.test_ordered_dict $(PYTESTARGS) ################################################################################ @@ -4448,7 +4448,7 @@ o/$(MODE)/third_party/python/chibicc.inc: \ third_party/python/Include/warnings.h \ third_party/python/Include/weakrefobject.h \ third_party/python/pyconfig.h - @$(COMPILE) -wACHECK.h $(COMPILE.c) -xc -E -P -fdirectives-only -dD -D__chibicc__ -o $@ $< + @$(COMPILE) -ACHECK.h $(COMPILE.c) -xc -E -P -fdirectives-only -dD -D__chibicc__ -o $@ $< ################################################################################ # HELLO.COM diff --git a/third_party/quickjs/VERSION b/third_party/quickjs/VERSION new file mode 100644 index 000000000..22ffec184 --- /dev/null +++ b/third_party/quickjs/VERSION @@ -0,0 +1 @@ +2021-03-27 diff --git a/third_party/quickjs/array.c b/third_party/quickjs/array.c index 25cc26225..2b439d5d1 100644 --- a/third_party/quickjs/array.c +++ b/third_party/quickjs/array.c @@ -22,7 +22,6 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -#include "libc/str/str.h" #include "third_party/quickjs/internal.h" asm(".ident\t\"\\n\\n\ diff --git a/third_party/quickjs/atof.c b/third_party/quickjs/atof.c index 4bcb99abd..08f291f02 100644 --- a/third_party/quickjs/atof.c +++ b/third_party/quickjs/atof.c @@ -23,8 +23,6 @@ * THE SOFTWARE. */ #include "libc/assert.h" -#include "libc/runtime/runtime.h" -#include "libc/str/str.h" #include "third_party/gdtoa/gdtoa.h" #include "third_party/quickjs/internal.h" diff --git a/third_party/quickjs/atom.c b/third_party/quickjs/atom.c index 0eaad8979..e96afe71b 100644 --- a/third_party/quickjs/atom.c +++ b/third_party/quickjs/atom.c @@ -24,7 +24,6 @@ */ #include "libc/assert.h" #include "libc/fmt/fmt.h" -#include "libc/str/str.h" #include "third_party/quickjs/internal.h" #include "third_party/quickjs/libregexp.h" #include "third_party/quickjs/quickjs.h" diff --git a/third_party/quickjs/bigdecimal.c b/third_party/quickjs/bigdecimal.c index 89e544e89..7f6c68b4d 100644 --- a/third_party/quickjs/bigdecimal.c +++ b/third_party/quickjs/bigdecimal.c @@ -22,8 +22,6 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -#include "libc/runtime/runtime.h" -#include "libc/str/str.h" #include "third_party/quickjs/internal.h" asm(".ident\t\"\\n\\n\ diff --git a/third_party/quickjs/bigint.c b/third_party/quickjs/bigint.c index bea95955e..0bdf49565 100644 --- a/third_party/quickjs/bigint.c +++ b/third_party/quickjs/bigint.c @@ -23,7 +23,6 @@ * THE SOFTWARE. */ #include "libc/assert.h" -#include "libc/runtime/runtime.h" #include "third_party/quickjs/internal.h" asm(".ident\t\"\\n\\n\ diff --git a/third_party/quickjs/byte.c b/third_party/quickjs/byte.c index 7b871c54a..ffff34b51 100644 --- a/third_party/quickjs/byte.c +++ b/third_party/quickjs/byte.c @@ -23,8 +23,6 @@ * THE SOFTWARE. */ #include "libc/assert.h" -#include "libc/runtime/runtime.h" -#include "libc/str/str.h" #include "third_party/quickjs/internal.h" #include "third_party/quickjs/leb128.h" #include "third_party/quickjs/libregexp.h" diff --git a/third_party/quickjs/dbuf.c b/third_party/quickjs/dbuf.c index f57502827..e21bcf51e 100644 --- a/third_party/quickjs/dbuf.c +++ b/third_party/quickjs/dbuf.c @@ -23,8 +23,6 @@ * THE SOFTWARE. */ #include "libc/fmt/fmt.h" -#include "libc/mem/mem.h" -#include "libc/str/str.h" #include "third_party/quickjs/internal.h" #include "third_party/quickjs/libregexp.h" #include "third_party/quickjs/quickjs.h" diff --git a/third_party/quickjs/float.c b/third_party/quickjs/float.c index e558e95a5..f739770cd 100644 --- a/third_party/quickjs/float.c +++ b/third_party/quickjs/float.c @@ -22,7 +22,6 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -#include "libc/runtime/runtime.h" #include "third_party/quickjs/internal.h" asm(".ident\t\"\\n\\n\ diff --git a/third_party/quickjs/gc.c b/third_party/quickjs/gc.c index f5da99fa5..c6408d9d0 100644 --- a/third_party/quickjs/gc.c +++ b/third_party/quickjs/gc.c @@ -23,7 +23,6 @@ * THE SOFTWARE. */ #include "libc/assert.h" -#include "libc/runtime/runtime.h" #include "third_party/quickjs/internal.h" asm(".ident\t\"\\n\\n\ diff --git a/third_party/quickjs/gen.c b/third_party/quickjs/gen.c index be64d69a5..380287f0b 100644 --- a/third_party/quickjs/gen.c +++ b/third_party/quickjs/gen.c @@ -23,7 +23,6 @@ * THE SOFTWARE. */ #include "libc/assert.h" -#include "libc/runtime/runtime.h" #include "third_party/quickjs/internal.h" asm(".ident\t\"\\n\\n\ diff --git a/third_party/quickjs/json.c b/third_party/quickjs/json.c index dfceceaf2..8168af45b 100644 --- a/third_party/quickjs/json.c +++ b/third_party/quickjs/json.c @@ -24,7 +24,6 @@ */ #include "libc/assert.h" #include "libc/fmt/fmt.h" -#include "libc/str/str.h" #include "third_party/quickjs/internal.h" #include "third_party/quickjs/libregexp.h" #include "third_party/quickjs/quickjs.h" diff --git a/third_party/quickjs/libbf.c b/third_party/quickjs/libbf.c index 24668f82e..3d81db9e3 100644 --- a/third_party/quickjs/libbf.c +++ b/third_party/quickjs/libbf.c @@ -25,7 +25,6 @@ #include "libc/bits/avxintrin.internal.h" #include "libc/bits/likely.h" #include "libc/inttypes.h" -#include "libc/runtime/runtime.h" #include "libc/stdio/stdio.h" #include "libc/str/str.h" #include "third_party/quickjs/cutils.h" diff --git a/third_party/quickjs/libregexp.c b/third_party/quickjs/libregexp.c index 89b9374de..5739d24fe 100644 --- a/third_party/quickjs/libregexp.c +++ b/third_party/quickjs/libregexp.c @@ -26,7 +26,6 @@ #include "libc/fmt/fmt.h" #include "libc/limits.h" #include "libc/mem/alloca.h" -#include "libc/runtime/runtime.h" #include "libc/stdio/stdio.h" #include "libc/str/str.h" #include "third_party/quickjs/cutils.h" diff --git a/third_party/quickjs/libunicode.c b/third_party/quickjs/libunicode.c index 00927631e..3abcaca8e 100644 --- a/third_party/quickjs/libunicode.c +++ b/third_party/quickjs/libunicode.c @@ -23,8 +23,6 @@ */ #include "libc/assert.h" #include "libc/limits.h" -#include "libc/mem/mem.h" -#include "libc/runtime/runtime.h" #include "libc/stdio/stdio.h" #include "libc/str/str.h" #include "third_party/quickjs/cutils.h" diff --git a/third_party/quickjs/parse.c b/third_party/quickjs/parse.c index 4532fc754..cae5b8a6c 100644 --- a/third_party/quickjs/parse.c +++ b/third_party/quickjs/parse.c @@ -24,8 +24,6 @@ */ #include "libc/assert.h" #include "libc/fmt/fmt.h" -#include "libc/runtime/runtime.h" -#include "libc/str/str.h" #include "third_party/quickjs/internal.h" #include "third_party/quickjs/libregexp.h" diff --git a/third_party/quickjs/quickjs-libc.c b/third_party/quickjs/quickjs-libc.c index 1393cf4c3..9428b29c6 100644 --- a/third_party/quickjs/quickjs-libc.c +++ b/third_party/quickjs/quickjs-libc.c @@ -35,7 +35,6 @@ #include "libc/fmt/conv.h" #include "libc/fmt/fmt.h" #include "libc/limits.h" -#include "libc/mem/mem.h" #include "libc/nt/synchronization.h" #include "libc/runtime/dlfcn.h" #include "libc/runtime/sysconf.h" diff --git a/third_party/quickjs/quickjs.c b/third_party/quickjs/quickjs.c index d33853700..b8d6c9c6a 100644 --- a/third_party/quickjs/quickjs.c +++ b/third_party/quickjs/quickjs.c @@ -45,8 +45,6 @@ #include "third_party/quickjs/internal.h" #include "third_party/quickjs/internal.h" #include "third_party/quickjs/internal.h" -#include "libc/str/str.h" -#include "libc/mem/mem.h" #include "third_party/quickjs/libbf.h" asm(".ident\t\"\\n\\n\ diff --git a/third_party/quickjs/quickjs.mk b/third_party/quickjs/quickjs.mk index 83613d4f7..bdaab4cec 100644 --- a/third_party/quickjs/quickjs.mk +++ b/third_party/quickjs/quickjs.mk @@ -132,12 +132,12 @@ THIRD_PARTY_QUICKJS_CHECKS = \ o/$(MODE)/third_party/quickjs/qjscalc.c: \ third_party/quickjs/qjscalc.js \ o/$(MODE)/third_party/quickjs/qjsc.com - @$(COMPILE) -wAQJSC o/$(MODE)/third_party/quickjs/qjsc.com -fbignum -o $@ -c $< + @$(COMPILE) -AQJSC o/$(MODE)/third_party/quickjs/qjsc.com -fbignum -o $@ -c $< o/$(MODE)/third_party/quickjs/repl.c: \ third_party/quickjs/repl.js \ o/$(MODE)/third_party/quickjs/qjsc.com - @$(COMPILE) -wAQJSC o/$(MODE)/third_party/quickjs/qjsc.com -o $@ -m -c $< + @$(COMPILE) -AQJSC o/$(MODE)/third_party/quickjs/qjsc.com -o $@ -m -c $< o/$(MODE)/third_party/quickjs/qjs.com.dbg: \ $(THIRD_PARTY_QUICKJS) \ @@ -179,7 +179,7 @@ o/$(MODE)/third_party/quickjs/unicode_gen.com.dbg: \ $(THIRD_PARTY_QUICKJS_OBJS): \ OVERRIDE_CPPFLAGS += \ -DCONFIG_BIGNUM \ - -DCONFIG_VERSION=\"2021-03-27\" + -DCONFIG_VERSION=\"$(shell cat third_party/quickjs/VERSION)\" o/tiny/third_party/quickjs/call.o: \ OVERRIDE_CFLAGS += \ diff --git a/third_party/quickjs/regexp.c b/third_party/quickjs/regexp.c index 11237d96d..51b518c24 100644 --- a/third_party/quickjs/regexp.c +++ b/third_party/quickjs/regexp.c @@ -22,7 +22,6 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -#include "libc/str/str.h" #include "third_party/quickjs/internal.h" #include "third_party/quickjs/libregexp.h" #include "third_party/quickjs/quickjs.h" diff --git a/third_party/quickjs/run-test262.c b/third_party/quickjs/run-test262.c index cfe32dd0a..1527e9806 100644 --- a/third_party/quickjs/run-test262.c +++ b/third_party/quickjs/run-test262.c @@ -28,8 +28,6 @@ #include "libc/fmt/conv.h" #include "libc/fmt/fmt.h" #include "libc/log/log.h" -#include "libc/mem/mem.h" -#include "libc/str/str.h" #include "libc/sysv/consts/clock.h" #include "libc/time/time.h" #include "third_party/musl/ftw.h" diff --git a/third_party/quickjs/shape.c b/third_party/quickjs/shape.c index 08b921291..77f8f8f93 100644 --- a/third_party/quickjs/shape.c +++ b/third_party/quickjs/shape.c @@ -23,7 +23,6 @@ * THE SOFTWARE. */ #include "libc/assert.h" -#include "libc/str/str.h" #include "third_party/quickjs/internal.h" asm(".ident\t\"\\n\\n\ diff --git a/third_party/quickjs/str.c b/third_party/quickjs/str.c index 7391b3189..25ff3953e 100644 --- a/third_party/quickjs/str.c +++ b/third_party/quickjs/str.c @@ -26,7 +26,6 @@ #include "libc/fmt/conv.h" #include "libc/fmt/fmt.h" #include "libc/runtime/fenv.h" -#include "libc/str/str.h" #include "third_party/gdtoa/gdtoa.h" #include "third_party/quickjs/internal.h" #include "third_party/quickjs/libregexp.h" diff --git a/third_party/quickjs/strbuf.c b/third_party/quickjs/strbuf.c index 8e31d225d..cd9cac6b0 100644 --- a/third_party/quickjs/strbuf.c +++ b/third_party/quickjs/strbuf.c @@ -22,7 +22,6 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -#include "libc/str/str.h" #include "third_party/quickjs/internal.h" #include "third_party/quickjs/libregexp.h" #include "third_party/quickjs/quickjs.h" diff --git a/third_party/quickjs/tok.c b/third_party/quickjs/tok.c index 53b70a890..67a8ff4f0 100644 --- a/third_party/quickjs/tok.c +++ b/third_party/quickjs/tok.c @@ -22,7 +22,6 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -#include "libc/str/str.h" #include "third_party/quickjs/internal.h" #include "third_party/quickjs/libregexp.h" diff --git a/third_party/quickjs/typedarray.c b/third_party/quickjs/typedarray.c index 1812116d5..0ef8b4dce 100644 --- a/third_party/quickjs/typedarray.c +++ b/third_party/quickjs/typedarray.c @@ -22,8 +22,6 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -#include "libc/runtime/runtime.h" -#include "libc/str/str.h" #include "third_party/quickjs/internal.h" asm(".ident\t\"\\n\\n\ diff --git a/third_party/quickjs/uri.c b/third_party/quickjs/uri.c index 9d9d3478d..1db04fe90 100644 --- a/third_party/quickjs/uri.c +++ b/third_party/quickjs/uri.c @@ -22,7 +22,6 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -#include "libc/str/str.h" #include "third_party/quickjs/internal.h" asm(".ident\t\"\\n\\n\ diff --git a/third_party/quickjs/usage.c b/third_party/quickjs/usage.c index 54343304b..67cccb588 100644 --- a/third_party/quickjs/usage.c +++ b/third_party/quickjs/usage.c @@ -23,7 +23,6 @@ * THE SOFTWARE. */ #include "libc/inttypes.h" -#include "libc/str/str.h" #include "third_party/quickjs/internal.h" asm(".ident\t\"\\n\\n\ diff --git a/third_party/smallz4/smallz4cat.c b/third_party/smallz4/smallz4cat.c index 2ab09e980..bb1eefe37 100644 --- a/third_party/smallz4/smallz4cat.c +++ b/third_party/smallz4/smallz4cat.c @@ -30,7 +30,6 @@ #include "libc/mem/mem.h" #include "libc/runtime/gc.internal.h" #include "libc/stdio/stdio.h" -#include "libc/str/str.h" /** * @fileoverview shorter, more readable, albeit slower re-implementation diff --git a/third_party/sqlite3/os_unix.c b/third_party/sqlite3/os_unix.c index 9529293cd..38be8df01 100644 --- a/third_party/sqlite3/os_unix.c +++ b/third_party/sqlite3/os_unix.c @@ -48,7 +48,6 @@ #include "libc/sysv/consts/lock.h" #include "libc/calls/struct/stat.h" #include "libc/sysv/consts/s.h" -#include "libc/runtime/runtime.h" #include "third_party/sqlite3/sqliteInt.inc" #if SQLITE_OS_UNIX /* This file is used on unix only */ diff --git a/third_party/sqlite3/shell.c b/third_party/sqlite3/shell.c index 41c524c1c..448a0b95d 100644 --- a/third_party/sqlite3/shell.c +++ b/third_party/sqlite3/shell.c @@ -58,7 +58,6 @@ #include "third_party/linenoise/linenoise.h" #include "libc/sysv/consts/rusage.h" #include "libc/time/time.h" -#include "libc/runtime/runtime.h" #if SQLITE_USER_AUTHENTICATION #include "third_party/sqlite3/sqlite3userauth.inc" #endif diff --git a/third_party/tidy/alloc.c b/third_party/tidy/alloc.c index fa16e8865..2eb92ead7 100644 --- a/third_party/tidy/alloc.c +++ b/third_party/tidy/alloc.c @@ -13,8 +13,6 @@ #include "third_party/tidy/forward.h" #include "libc/stdio/stdio.h" #include "libc/assert.h" -#include "libc/runtime/runtime.h" -#include "libc/mem/mem.h" #include "third_party/tidy/sprtf.h" static TidyMalloc g_malloc = NULL; diff --git a/third_party/tidy/forward.h b/third_party/tidy/forward.h index 00183a7f2..921f8cc2b 100644 --- a/third_party/tidy/forward.h +++ b/third_party/tidy/forward.h @@ -17,7 +17,6 @@ */ #include "third_party/tidy/tidyplatform.h" -#include "libc/str/str.h" #include "third_party/tidy/tidy.h" /* Internal symbols are prefixed to avoid clashes with other libraries */ diff --git a/third_party/tidy/mappedio.c b/third_party/tidy/mappedio.c index 37d718bb5..46f21dfd5 100644 --- a/third_party/tidy/mappedio.c +++ b/third_party/tidy/mappedio.c @@ -16,7 +16,6 @@ #include "libc/sysv/consts/prot.h" #include "libc/calls/calls.h" #include "libc/sysv/consts/map.h" -#include "libc/runtime/runtime.h" #include "third_party/tidy/mappedio.h" #if SUPPORT_POSIX_MAPPED_FILES diff --git a/third_party/tidy/tidy.c b/third_party/tidy/tidy.c index feb0abd59..8bc582601 100644 --- a/third_party/tidy/tidy.c +++ b/third_party/tidy/tidy.c @@ -25,9 +25,6 @@ #include "libc/assert.h" #include "libc/fmt/fmt.h" #include "libc/alg/alg.h" -#include "libc/str/str.h" -#include "libc/runtime/runtime.h" -#include "libc/mem/mem.h" #include "third_party/tidy/sprtf.h" #if defined(_WIN32) diff --git a/third_party/tidy/tidy.mk b/third_party/tidy/tidy.mk index ea979fe3c..5dfafa666 100644 --- a/third_party/tidy/tidy.mk +++ b/third_party/tidy/tidy.mk @@ -55,7 +55,7 @@ o/$(MODE)/third_party/tidy/tidy.com.dbg: \ @$(APELINK) o/$(MODE)/third_party/tidy/.tidyrc.zip.o: third_party/tidy/.tidyrc - @$(COMPILE) -wAZIPOBJ $(ZIPOBJ) $(ZIPOBJ_FLAGS) -B $(OUTPUT_OPTION) $< + @$(COMPILE) -AZIPOBJ $(ZIPOBJ) $(ZIPOBJ_FLAGS) -B $(OUTPUT_OPTION) $< THIRD_PARTY_TIDY_COMS = \ o/$(MODE)/third_party/tidy/tidy.com diff --git a/third_party/unzip/envargs.c b/third_party/unzip/envargs.c index 5bdd56f71..49ff6ace9 100644 --- a/third_party/unzip/envargs.c +++ b/third_party/unzip/envargs.c @@ -19,8 +19,6 @@ | to make the action of the code less obscure. |---------------------------------------------------------------- | UnZip notes: 24 May 92 ("v1.4"): -#include "libc/runtime/runtime.h" -#include "libc/runtime/runtime.h" | 1. #include "third_party/unzip/unzip.h" for prototypes (24 May 92) | 2. changed ch to type char (24 May 92) | 3. added an ifdef to avoid Borland warnings (24 May 92) diff --git a/third_party/unzip/unzpriv.h b/third_party/unzip/unzpriv.h index ac1d9ce62..2758224ef 100644 --- a/third_party/unzip/unzpriv.h +++ b/third_party/unzip/unzpriv.h @@ -32,8 +32,6 @@ #include "libc/calls/calls.h" #include "libc/fmt/fmt.h" #include "third_party/zip/crypt.h" -#include "libc/mem/mem.h" -#include "libc/runtime/runtime.h" #include "third_party/unzip/unxcfg.h" /* First thing: Signal all following code that we compile UnZip utilities! */ diff --git a/third_party/zip/util.c b/third_party/zip/util.c index 3807574f1..50d978d11 100644 --- a/third_party/zip/util.c +++ b/third_party/zip/util.c @@ -17,7 +17,6 @@ #include "third_party/zip/zip.h" #include "libc/str/str.h" #include "libc/fmt/fmt.h" -#include "libc/runtime/runtime.h" #include "libc/fmt/conv.h" uch upper[256], lower[256]; diff --git a/third_party/zlib/gz/gzwrite.c b/third_party/zlib/gz/gzwrite.c index 8e7e47413..f7c736704 100644 --- a/third_party/zlib/gz/gzwrite.c +++ b/third_party/zlib/gz/gzwrite.c @@ -1,6 +1,5 @@ #include "libc/calls/calls.h" #include "libc/fmt/fmt.h" -#include "libc/mem/mem.h" #include "third_party/zlib/gz/gzguts.inc" // clang-format off diff --git a/tool/args/args.c b/tool/args/args.c index e5398551d..aec1c73ff 100644 --- a/tool/args/args.c +++ b/tool/args/args.c @@ -19,7 +19,6 @@ #include "libc/assert.h" #include "libc/calls/calls.h" #include "libc/errno.h" -#include "libc/mem/mem.h" #include "libc/runtime/gc.internal.h" #include "libc/runtime/runtime.h" #include "libc/str/str.h" diff --git a/tool/build/build.mk b/tool/build/build.mk index 27f3d70f9..58ea370e8 100644 --- a/tool/build/build.mk +++ b/tool/build/build.mk @@ -75,7 +75,7 @@ o/$(MODE)/tool/build/build.pkg: \ o/$(MODE)/%.ctest.ok: \ %.ctest \ $(TOOL_BUILD_CALCULATOR) - @$(COMPILE) -wAMKWIDES -tT$@ $(TOOL_BUILD_CALCULATOR) $< + @$(COMPILE) -AMKWIDES -tT$@ $(TOOL_BUILD_CALCULATOR) $< o/$(MODE)/tool/build/%.com.dbg: \ $(TOOL_BUILD_DEPS) \ @@ -90,21 +90,21 @@ o/$(MODE)/tool/build/emulator.o: \ -fno-sanitize=pointer-overflow o/$(MODE)/tool/build/mkdir.zip.o: o/$(MODE)/tool/build/mkdir - @$(COMPILE) -wAZIPOBJ $(ZIPOBJ) $(ZIPOBJ_FLAGS) -0 -B -Pbin $(OUTPUT_OPTION) $< + @$(COMPILE) -AZIPOBJ $(ZIPOBJ) $(ZIPOBJ_FLAGS) -0 -B -Pbin $(OUTPUT_OPTION) $< o/$(MODE)/tool/build/chmod.zip.o: o/$(MODE)/tool/build/chmod - @$(COMPILE) -wAZIPOBJ $(ZIPOBJ) $(ZIPOBJ_FLAGS) -0 -B -Pbin $(OUTPUT_OPTION) $< + @$(COMPILE) -AZIPOBJ $(ZIPOBJ) $(ZIPOBJ_FLAGS) -0 -B -Pbin $(OUTPUT_OPTION) $< o/$(MODE)/tool/build/cp.zip.o: o/$(MODE)/tool/build/cp - @$(COMPILE) -wAZIPOBJ $(ZIPOBJ) $(ZIPOBJ_FLAGS) -0 -B -Pbin $(OUTPUT_OPTION) $< + @$(COMPILE) -AZIPOBJ $(ZIPOBJ) $(ZIPOBJ_FLAGS) -0 -B -Pbin $(OUTPUT_OPTION) $< o/$(MODE)/tool/build/mv.zip.o: o/$(MODE)/tool/build/mv - @$(COMPILE) -wAZIPOBJ $(ZIPOBJ) $(ZIPOBJ_FLAGS) -0 -B -Pbin $(OUTPUT_OPTION) $< + @$(COMPILE) -AZIPOBJ $(ZIPOBJ) $(ZIPOBJ_FLAGS) -0 -B -Pbin $(OUTPUT_OPTION) $< o/$(MODE)/tool/build/echo.zip.o: o/$(MODE)/tool/build/echo - @$(COMPILE) -wAZIPOBJ $(ZIPOBJ) $(ZIPOBJ_FLAGS) -0 -B -Pbin $(OUTPUT_OPTION) $< + @$(COMPILE) -AZIPOBJ $(ZIPOBJ) $(ZIPOBJ_FLAGS) -0 -B -Pbin $(OUTPUT_OPTION) $< o/$(MODE)/tool/build/gzip.zip.o: o/$(MODE)/tool/build/gzip - @$(COMPILE) -wAZIPOBJ $(ZIPOBJ) $(ZIPOBJ_FLAGS) -0 -B -Pbin $(OUTPUT_OPTION) $< + @$(COMPILE) -AZIPOBJ $(ZIPOBJ) $(ZIPOBJ_FLAGS) -0 -B -Pbin $(OUTPUT_OPTION) $< o/$(MODE)/tool/build/printf.zip.o: o/$(MODE)/tool/build/printf - @$(COMPILE) -wAZIPOBJ $(ZIPOBJ) $(ZIPOBJ_FLAGS) -0 -B -Pbin $(OUTPUT_OPTION) $< + @$(COMPILE) -AZIPOBJ $(ZIPOBJ) $(ZIPOBJ_FLAGS) -0 -B -Pbin $(OUTPUT_OPTION) $< o/$(MODE)/tool/build/dd.zip.o: o/$(MODE)/tool/build/dd - @$(COMPILE) -wAZIPOBJ $(ZIPOBJ) $(ZIPOBJ_FLAGS) -0 -B -Pbin $(OUTPUT_OPTION) $< + @$(COMPILE) -AZIPOBJ $(ZIPOBJ) $(ZIPOBJ_FLAGS) -0 -B -Pbin $(OUTPUT_OPTION) $< # we need pic because: # so it can be an LD_PRELOAD payload @@ -125,9 +125,7 @@ o/$(MODE)/tool/build/dso/sandbox.so: \ o/$(MODE)/tool/build/dso/sandbox.o \ o/$(MODE)/libc/calls/pledge-linux.o \ o/$(MODE)/libc/sysv/restorert.o - @$(COMPILE) -ALINK.so -tT$@ \ - $(CC) \ - -s \ + @$(CC) -s \ -shared \ -nostdlib \ -Wl,--gc-sections \ @@ -138,7 +136,7 @@ o/$(MODE)/tool/build/dso/sandbox.so: \ o/$(MODE)/tool/build/dso/sandbox.so.zip.o: \ o/$(MODE)/tool/build/dso/sandbox.so - @$(COMPILE) -wAZIPOBJ $(ZIPOBJ) $(ZIPOBJ_FLAGS) -B $(OUTPUT_OPTION) $< + @$(COMPILE) -AZIPOBJ $(ZIPOBJ) $(ZIPOBJ_FLAGS) -B $(OUTPUT_OPTION) $< o/$(MODE)/tool/build/pledge.com.dbg: \ $(TOOL_BUILD_DEPS) \ diff --git a/tool/build/compile.c b/tool/build/compile.c index fac44778f..4d1ae69e9 100644 --- a/tool/build/compile.c +++ b/tool/build/compile.c @@ -16,7 +16,6 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/alg.h" #include "libc/bits/bits.h" #include "libc/bits/safemacros.internal.h" #include "libc/calls/calls.h" @@ -42,7 +41,6 @@ #include "libc/mem/mem.h" #include "libc/nexgen32e/kcpuids.h" #include "libc/nexgen32e/x86feature.h" -#include "libc/runtime/gc.internal.h" #include "libc/runtime/runtime.h" #include "libc/runtime/sysconf.h" #include "libc/stdio/append.internal.h" @@ -51,7 +49,6 @@ #include "libc/sysv/consts/auxv.h" #include "libc/sysv/consts/clock.h" #include "libc/sysv/consts/itimer.h" -#include "libc/sysv/consts/madv.h" #include "libc/sysv/consts/o.h" #include "libc/sysv/consts/rlimit.h" #include "libc/sysv/consts/s.h" @@ -112,7 +109,6 @@ FLAGS\n\ -s decrement verbosity [default 4]\n\ -v increments verbosity [default 4]\n\ -n do nothing (prime ape executable)\n\ - -w disable landlock tmp workaround\n\ -h print help\n\ \n\ ENVIRONMENT\n\ @@ -148,7 +144,6 @@ bool wantfentry; bool wantrecord; bool fulloutput; bool touchtarget; -bool noworkaround; bool wantnoredzone; bool stdoutmustclose; bool no_sanitize_null; @@ -716,8 +711,6 @@ void ReportResources(void) { bool MovePreservingDestinationInode(const char *from, const char *to) { bool res; - ssize_t rc; - size_t remain; struct stat st; int fdin, fdout; if ((fdin = open(from, O_RDONLY)) == -1) { @@ -728,30 +721,7 @@ bool MovePreservingDestinationInode(const char *from, const char *to) { close(fdin); return false; } - fadvise(fdin, 0, st.st_size, MADV_SEQUENTIAL); - ftruncate(fdout, st.st_size); - for (res = true, remain = st.st_size; remain;) { - rc = copy_file_range(fdin, 0, fdout, 0, remain, 0); - if (rc != -1) { - remain -= rc; - } else if (errno == EXDEV) { - if (lseek(fdin, 0, SEEK_SET) == -1) { - kprintf("%s: failed to lseek after exdev\n", from); - res = false; - break; - } - if (lseek(fdout, 0, SEEK_SET) == -1) { - kprintf("%s: failed to lseek after exdev\n", to); - res = false; - break; - } - res = _copyfd(fdin, fdout, -1) != -1; - break; - } else { - res = false; - break; - } - } + res = _copyfd(fdin, fdout, -1) != -1; close(fdin); close(fdout); return res; @@ -777,23 +747,6 @@ bool IsNativeExecutable(const char *path) { return res; } -char *MakeTmpOut(const char *path) { - int c; - char *p = tmpout; - char *e = tmpout + sizeof(tmpout) - 1; - p = stpcpy(p, kTmpPath); - while ((c = *path++)) { - if (c == '/') c = '_'; - if (p == e) { - kprintf("MakeTmpOut path too long: %s\n", tmpout); - exit(1); - } - *p++ = c; - } - *p = 0; - return tmpout; -} - int main(int argc, char *argv[]) { int columns; uint64_t us; @@ -804,6 +757,7 @@ int main(int argc, char *argv[]) { char *s, *p, *q, **envp; mode = firstnonnull(getenv("MODE"), MODE); + ksnprintf(tmpout, sizeof(tmpout), "%scompile.%d", kTmpPath, getpid()); /* * parse prefix arguments @@ -815,7 +769,7 @@ int main(int argc, char *argv[]) { fszquota = 256 * 1000 * 1000; /* bytes */ memquota = 512 * 1024 * 1024; /* bytes */ if ((s = getenv("V"))) verbose = atoi(s); - while ((opt = getopt(argc, argv, "hnstvwA:C:F:L:M:O:P:T:V:")) != -1) { + while ((opt = getopt(argc, argv, "hnstvA:C:F:L:M:O:P:T:V:")) != -1) { switch (opt) { case 'n': exit(0); @@ -834,9 +788,6 @@ int main(int argc, char *argv[]) { case 't': touchtarget = true; break; - case 'w': - noworkaround = true; - break; case 'L': timeout = atoi(optarg); break; @@ -905,37 +856,17 @@ int main(int argc, char *argv[]) { * ingest arguments */ for (i = optind; i < argc; ++i) { - - /* - * replace output filename argument - * - * some commands (e.g. ar) don't use the `-o PATH` notation. in that - * case we assume the output path was passed to compile.com -TTARGET - * which means we can replace the appropriate command line argument. - */ - if (!noworkaround && // - !movepath && // - !outpath && // - target && // - !strcmp(target, argv[i])) { - AddArg(MakeTmpOut(argv[i])); - outpath = target; + if (!movepath && !outpath && target && !strcmp(target, argv[i])) { + outpath = argv[i]; + AddArg(tmpout); movepath = target; MovePreservingDestinationInode(target, tmpout); continue; } - - /* - * capture arguments - */ if (argv[i][0] != '-') { AddArg(argv[i]); continue; } - - /* - * capture flags - */ if (startswith(argv[i], "-o")) { if (!strcmp(argv[i], "-o")) { outpath = argv[++i]; @@ -943,12 +874,8 @@ int main(int argc, char *argv[]) { outpath = argv[i] + 2; } AddArg("-o"); - if (noworkaround) { - AddArg(outpath); - } else { - movepath = outpath; - AddArg(MakeTmpOut(outpath)); - } + AddArg(tmpout); + movepath = outpath; continue; } if (!iscc) { diff --git a/tool/build/lib/buildlib.mk b/tool/build/lib/buildlib.mk index 5e1bf856c..d8a2ac7b8 100644 --- a/tool/build/lib/buildlib.mk +++ b/tool/build/lib/buildlib.mk @@ -91,11 +91,11 @@ o/$(MODE)/tool/build/lib/apetest2.com.dbg: \ o/$(MODE)/tool/build/lib/apetest.com.zip.o: \ o/$(MODE)/tool/build/lib/apetest.com - @$(COMPILE) -wAZIPOBJ $(ZIPOBJ) $(ZIPOBJ_FLAGS) -B $(OUTPUT_OPTION) $< + @$(COMPILE) -AZIPOBJ $(ZIPOBJ) $(ZIPOBJ_FLAGS) -B $(OUTPUT_OPTION) $< o/$(MODE)/tool/build/lib/apetest2.com.zip.o: \ o/$(MODE)/tool/build/lib/apetest2.com - @$(COMPILE) -wAZIPOBJ $(ZIPOBJ) $(ZIPOBJ_FLAGS) -B $(OUTPUT_OPTION) $< + @$(COMPILE) -AZIPOBJ $(ZIPOBJ) $(ZIPOBJ_FLAGS) -B $(OUTPUT_OPTION) $< o/$(MODE)/tool/build/lib/apetest.o: \ tool/build/lib/apetest.c \ diff --git a/tool/build/lib/psk.c b/tool/build/lib/psk.c index f9ff160bc..b1b08b6a0 100644 --- a/tool/build/lib/psk.c +++ b/tool/build/lib/psk.c @@ -18,7 +18,6 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/calls/struct/stat.h" #include "libc/log/check.h" -#include "libc/mem/mem.h" #include "libc/runtime/gc.internal.h" #include "libc/sysv/consts/o.h" #include "libc/x/x.h" diff --git a/tool/build/summy.c b/tool/build/summy.c index 1c749309f..7ba67e758 100644 --- a/tool/build/summy.c +++ b/tool/build/summy.c @@ -17,7 +17,6 @@ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/stdio/stdio.h" -#include "libc/str/str.h" /** * @fileoverview Sums per-line integers from stdin. diff --git a/tool/build/unveil.c b/tool/build/unveil.c index bbce0aa9d..b13cd7042 100644 --- a/tool/build/unveil.c +++ b/tool/build/unveil.c @@ -18,10 +18,8 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/calls/calls.h" #include "libc/calls/syscall-sysv.internal.h" -#include "libc/dce.h" #include "libc/intrin/kprintf.h" #include "libc/log/bsd.h" -#include "libc/mem/mem.h" #include "libc/runtime/runtime.h" #include "libc/stdio/stdio.h" #include "libc/str/str.h" @@ -29,7 +27,7 @@ #define USAGE \ "\ -usage: unveil.com [-h] PROG ARGS...\n\ +usage: pledge.com [-h] PROG ARGS...\n\ -h show help\n\ \n\ unveil.com v1.o\n\ @@ -81,7 +79,7 @@ int main(int argc, char *argv[]) { bool chomped = false; while (!chomped) - if (line[len - 1] == '\r' || line[len - 1] == '\n') + if (line[len-1] == '\r' || line[len-1] == '\n') line[--len] = '\0'; else chomped = true; @@ -103,11 +101,11 @@ int main(int argc, char *argv[]) { err(1, "unveil(%s, %s)", fields[0], fields[1]); } free(line); - if (ferror(stdin)) { + if (ferror(stdin)) err(1, "getline"); - } - if (unveil(NULL, NULL) == -1) err(1, "unveil(NULL, NULL)"); + if (unveil(NULL, NULL) == -1) + err(1, "unveil(NULL, NULL)"); __sys_execve(prog, argv + optind, environ); err(127, "execve"); diff --git a/tool/build/xlat.c b/tool/build/xlat.c index 5f7d49555..f6cd30680 100644 --- a/tool/build/xlat.c +++ b/tool/build/xlat.c @@ -21,7 +21,6 @@ #include "libc/fmt/conv.h" #include "libc/log/check.h" #include "libc/math.h" -#include "libc/mem/mem.h" #include "libc/runtime/gc.internal.h" #include "libc/runtime/runtime.h" #include "libc/stdio/stdio.h" diff --git a/tool/decode/scrubdox.c b/tool/decode/scrubdox.c index c990fe908..ce8909d62 100644 --- a/tool/decode/scrubdox.c +++ b/tool/decode/scrubdox.c @@ -72,11 +72,9 @@ └────────────┴─────────────┴────────────────────────────────┴────────────┘ */ #include "libc/log/log.h" #include "libc/macros.internal.h" -#include "libc/mem/mem.h" #include "libc/runtime/gc.internal.h" #include "libc/stdio/stdio.h" #include "libc/str/str.h" -#include "libc/unicode/unicode.h" #include "libc/x/x.h" #define IsSpace(C) ((C) == ' ') diff --git a/tool/decode/zip2.c b/tool/decode/zip2.c index a596c6a9c..56c9eae35 100644 --- a/tool/decode/zip2.c +++ b/tool/decode/zip2.c @@ -22,7 +22,6 @@ #include "libc/fmt/conv.h" #include "libc/log/check.h" #include "libc/log/log.h" -#include "libc/mem/mem.h" #include "libc/runtime/gc.internal.h" #include "libc/runtime/runtime.h" #include "libc/sysv/consts/map.h" diff --git a/tool/lambda/asc2bin.c b/tool/lambda/asc2bin.c index b3c8ac5ea..a800e1e04 100644 --- a/tool/lambda/asc2bin.c +++ b/tool/lambda/asc2bin.c @@ -16,7 +16,6 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/runtime/runtime.h" #include "third_party/getopt/getopt.h" #include "tool/lambda/lib/blc.h" diff --git a/tool/lambda/blcdump.c b/tool/lambda/blcdump.c index c56676b86..680fca6d1 100644 --- a/tool/lambda/blcdump.c +++ b/tool/lambda/blcdump.c @@ -18,7 +18,6 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/calls/calls.h" #include "libc/calls/struct/rlimit.h" -#include "libc/runtime/runtime.h" #include "libc/sysv/consts/rlimit.h" #include "libc/unicode/locale.h" #include "third_party/getopt/getopt.h" diff --git a/tool/lambda/bru2bin.c b/tool/lambda/bru2bin.c index 24658c31d..c1ab2a33c 100644 --- a/tool/lambda/bru2bin.c +++ b/tool/lambda/bru2bin.c @@ -18,10 +18,7 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/calls/calls.h" #include "libc/intrin/kprintf.h" -#include "libc/mem/mem.h" -#include "libc/runtime/runtime.h" #include "libc/stdio/stdio.h" -#include "libc/str/str.h" #include "libc/unicode/locale.h" #include "third_party/getopt/getopt.h" diff --git a/tool/lambda/lam2bin.c b/tool/lambda/lam2bin.c index d11442659..979a08a34 100644 --- a/tool/lambda/lam2bin.c +++ b/tool/lambda/lam2bin.c @@ -18,10 +18,7 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/calls/calls.h" #include "libc/intrin/kprintf.h" -#include "libc/mem/mem.h" -#include "libc/runtime/runtime.h" #include "libc/stdio/stdio.h" -#include "libc/str/str.h" #include "libc/unicode/locale.h" #include "third_party/getopt/getopt.h" diff --git a/tool/lambda/lib/debug.c b/tool/lambda/lib/debug.c index 8dba7556b..52d230e85 100644 --- a/tool/lambda/lib/debug.c +++ b/tool/lambda/lib/debug.c @@ -18,7 +18,6 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/fmt/itoa.h" #include "libc/intrin/kprintf.h" -#include "libc/str/str.h" #include "tool/lambda/lib/blc.h" const char *GetOpName(int x) { diff --git a/tool/lambda/lib/error.c b/tool/lambda/lib/error.c index abe52b266..487bf2be6 100644 --- a/tool/lambda/lib/error.c +++ b/tool/lambda/lib/error.c @@ -17,7 +17,6 @@ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/intrin/kprintf.h" -#include "libc/runtime/runtime.h" #include "tool/lambda/lib/blc.h" void Error(int rc, const char* s, ...) { diff --git a/tool/lambda/lib/getbit.c b/tool/lambda/lib/getbit.c index 6cccf8bf0..f0121db94 100644 --- a/tool/lambda/lib/getbit.c +++ b/tool/lambda/lib/getbit.c @@ -16,7 +16,6 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/str/str.h" #include "tool/lambda/lib/blc.h" char GetBit(FILE* f) { diff --git a/tool/lambda/lib/parserom.c b/tool/lambda/lib/parserom.c index d939f1616..d0e31edfe 100644 --- a/tool/lambda/lib/parserom.c +++ b/tool/lambda/lib/parserom.c @@ -16,7 +16,6 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/str/str.h" #include "tool/lambda/lib/blc.h" static struct Parse ParseImpl(int tail, int need, FILE *f) { diff --git a/tool/net/lfuncs.c b/tool/net/lfuncs.c index 6b486dc9e..35c3321e2 100644 --- a/tool/net/lfuncs.c +++ b/tool/net/lfuncs.c @@ -43,7 +43,6 @@ #include "libc/runtime/runtime.h" #include "libc/runtime/sysconf.h" #include "libc/sock/sock.h" -#include "libc/str/str.h" #include "libc/sysv/consts/af.h" #include "libc/sysv/consts/ipproto.h" #include "libc/sysv/consts/o.h" diff --git a/tool/net/lmaxmind.c b/tool/net/lmaxmind.c index 0f40bcee4..2bc0c4663 100644 --- a/tool/net/lmaxmind.c +++ b/tool/net/lmaxmind.c @@ -16,7 +16,6 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/mem/mem.h" #include "libc/x/x.h" #include "third_party/lua/lauxlib.h" #include "third_party/lua/lua.h" diff --git a/tool/net/lre.c b/tool/net/lre.c index 4f158126a..4adcb9dcf 100644 --- a/tool/net/lre.c +++ b/tool/net/lre.c @@ -17,7 +17,6 @@ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/macros.internal.h" -#include "libc/str/str.h" #include "third_party/lua/lauxlib.h" #include "third_party/regex/regex.h" diff --git a/tool/net/lsqlite3.c b/tool/net/lsqlite3.c index 2a8ee3be0..1f609af40 100644 --- a/tool/net/lsqlite3.c +++ b/tool/net/lsqlite3.c @@ -29,7 +29,6 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/calls/weirdtypes.h" #include "libc/mem/mem.h" -#include "libc/str/str.h" #include "third_party/lua/lauxlib.h" #include "third_party/lua/lua.h" #include "third_party/lua/luaconf.h" diff --git a/tool/net/net.mk b/tool/net/net.mk index fd368af5a..95e5d6a71 100644 --- a/tool/net/net.mk +++ b/tool/net/net.mk @@ -116,8 +116,8 @@ o/$(MODE)/tool/net/redbean.com: \ o/$(MODE)/tool/net/redbean.com.dbg \ o/$(MODE)/tool/build/symtab.com @$(COMPILE) -AOBJCOPY -T$@ $(OBJCOPY) -S -O binary $< $@ - @$(COMPILE) -wASYMTAB o/$(MODE)/tool/build/symtab.com -o $(SYMTAB) $< - @$(COMPILE) -wAZIP -T$@ $@ -A $(SYMTAB) + @$(COMPILE) -ASYMTAB o/$(MODE)/tool/build/symtab.com -o $(SYMTAB) $< + @$(COMPILE) -AZIP -T$@ $@ -A $(SYMTAB) # REDBEAN-DEMO.COM # @@ -229,8 +229,8 @@ o/$(MODE)/tool/net/redbean-demo.com: \ o/$(MODE)/tool/net/redbean-demo.com.dbg \ o/$(MODE)/tool/build/symtab.com @$(COMPILE) -AOBJCOPY -T$@ $(OBJCOPY) -S -O binary $< $@ - @$(COMPILE) -wASYMTAB o/$(MODE)/tool/build/symtab.com -o $(SYMTAB) $< - @$(COMPILE) -wAZIP -T$@ $@ -A $(SYMTAB) + @$(COMPILE) -ASYMTAB o/$(MODE)/tool/build/symtab.com -o $(SYMTAB) $< + @$(COMPILE) -AZIP -T$@ $@ -A $(SYMTAB) # REDBEAN-STATIC.COM # diff --git a/tool/plinko/lib/gc.c b/tool/plinko/lib/gc.c index f4622a5eb..6e12485d8 100644 --- a/tool/plinko/lib/gc.c +++ b/tool/plinko/lib/gc.c @@ -25,7 +25,6 @@ #include "libc/macros.internal.h" #include "libc/mem/mem.h" #include "libc/nexgen32e/bsf.h" -#include "libc/str/str.h" #include "tool/plinko/lib/cons.h" #include "tool/plinko/lib/gc.h" #include "tool/plinko/lib/histo.h" diff --git a/tool/plinko/plinko.mk b/tool/plinko/plinko.mk index 8f5eacc32..46b2f8219 100644 --- a/tool/plinko/plinko.mk +++ b/tool/plinko/plinko.mk @@ -60,7 +60,7 @@ o/$(MODE)/tool/plinko/lib/ok.lisp.zip.o: \ o/$(MODE)/tool/plinko/plinko.com.zip.o: \ o/$(MODE)/tool/plinko/plinko.com - @$(COMPILE) -wAZIPOBJ $(ZIPOBJ) $(ZIPOBJ_FLAGS) -B $(OUTPUT_OPTION) $< + @$(COMPILE) -AZIPOBJ $(ZIPOBJ) $(ZIPOBJ_FLAGS) -B $(OUTPUT_OPTION) $< .PHONY: o/$(MODE)/tool/plinko o/$(MODE)/tool/plinko: $(TOOL_PLINKO_BINS) $(TOOL_PLINKO_CHECKS) diff --git a/tool/viz/basicidea.c b/tool/viz/basicidea.c index 079cb1eef..3e37ec20e 100644 --- a/tool/viz/basicidea.c +++ b/tool/viz/basicidea.c @@ -23,9 +23,7 @@ #include "libc/fmt/fmt.h" #include "libc/log/log.h" #include "libc/macros.internal.h" -#include "libc/mem/mem.h" #include "libc/runtime/runtime.h" -#include "libc/str/str.h" #include "libc/sysv/consts/exit.h" #include "libc/sysv/consts/fileno.h" #include "libc/sysv/consts/map.h" diff --git a/tool/viz/dumphexc.c b/tool/viz/dumphexc.c index a738c6e46..13d558121 100644 --- a/tool/viz/dumphexc.c +++ b/tool/viz/dumphexc.c @@ -18,7 +18,6 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/fmt/fmt.h" #include "libc/macros.internal.h" -#include "libc/mem/mem.h" #include "libc/stdio/append.internal.h" #include "libc/stdio/hex.internal.h" #include "libc/stdio/stdio.h" diff --git a/tool/viz/getglyph.c b/tool/viz/getglyph.c index 7a4fb2ff7..0878fa33b 100644 --- a/tool/viz/getglyph.c +++ b/tool/viz/getglyph.c @@ -20,11 +20,9 @@ #include "libc/limits.h" #include "libc/log/log.h" #include "libc/macros.internal.h" -#include "libc/mem/mem.h" #include "libc/runtime/gc.internal.h" #include "libc/stdio/append.internal.h" #include "libc/stdio/stdio.h" -#include "libc/str/str.h" #include "libc/str/tpenc.h" #include "libc/sysv/consts/sig.h" #include "libc/x/x.h" diff --git a/tool/viz/ntmaster.c b/tool/viz/ntmaster.c index f0fd57448..05152ea3b 100644 --- a/tool/viz/ntmaster.c +++ b/tool/viz/ntmaster.c @@ -18,7 +18,6 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "libc/log/log.h" #include "libc/macros.internal.h" -#include "libc/mem/mem.h" #include "libc/stdio/stdio.h" #include "libc/str/str.h" #include "libc/x/x.h" diff --git a/tool/viz/printdos2errno.c b/tool/viz/printdos2errno.c index fba1ba278..87f88fccf 100644 --- a/tool/viz/printdos2errno.c +++ b/tool/viz/printdos2errno.c @@ -19,7 +19,6 @@ #include "libc/fmt/fmt.h" #include "libc/intrin/dos2errno.internal.h" #include "libc/intrin/kprintf.h" -#include "libc/str/str.h" // note: these are supplementary errno magnum mappings // don't include the ones in libc/sysv/consts.sh diff --git a/tool/viz/printimage.c b/tool/viz/printimage.c index 514f476e9..2a7a2836a 100644 --- a/tool/viz/printimage.c +++ b/tool/viz/printimage.c @@ -28,7 +28,6 @@ #include "libc/fmt/conv.h" #include "libc/log/check.h" #include "libc/log/log.h" -#include "libc/mem/mem.h" #include "libc/runtime/gc.internal.h" #include "libc/runtime/runtime.h" #include "libc/stdio/stdio.h"