📄 api.h
字号:
// // Visopsys// Copyright (C) 1998-2005 J. Andrew McLaughlin// // This library is free software; you can redistribute it and/or modify it// under the terms of the GNU Lesser General Public License as published by// the Free Software Foundation; either version 2.1 of the License, or (at// your option) any later version.//// This library is distributed in the hope that it will be useful, but// WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser// General Public License for more details.//// You should have received a copy of the GNU Lesser General Public License// along with this library; if not, write to the Free Software Foundation,// Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.//// api.h//// This file describes all of the functions that are directly exported by// the Visopsys kernel to the outside world. All functions and their// numbers are listed here, as well as macros needed to perform call-gate// calls into the kernel. Also, each exported kernel function is represented// here in the form of a little inline function.#if !defined(_API_H)// This file should mostly never be included when we're compiling a kernel// file (kernelApi.c is an exception)#if defined(KERNEL)#error "You cannot call the kernel API from within a kernel function"#endif#ifndef _X_#define _X_#endif#include <time.h>#include <sys/device.h>#include <sys/disk.h>#include <sys/file.h>#include <sys/image.h>#include <sys/process.h>#include <sys/loader.h>#include <sys/lock.h>#include <sys/memory.h>#include <sys/variable.h>#include <sys/stream.h>#include <sys/window.h>#include <sys/network.h>#include <sys/progress.h>// Included in the Visopsys standard library to prevent API calls from// within kernel code.extern int visopsys_in_kernel;// Text input/output functions. All are in the 1000-1999 range.#define _fnum_textGetConsoleInput 1000#define _fnum_textSetConsoleInput 1001#define _fnum_textGetConsoleOutput 1002#define _fnum_textSetConsoleOutput 1003#define _fnum_textGetCurrentInput 1004#define _fnum_textSetCurrentInput 1005#define _fnum_textGetCurrentOutput 1006#define _fnum_textSetCurrentOutput 1007#define _fnum_textGetForeground 1008#define _fnum_textSetForeground 1009#define _fnum_textGetBackground 1010#define _fnum_textSetBackground 1011#define _fnum_textPutc 1012#define _fnum_textPrint 1013#define _fnum_textPrintLine 1014#define _fnum_textNewline 1015#define _fnum_textBackSpace 1016#define _fnum_textTab 1017#define _fnum_textCursorUp 1018#define _fnum_textCursorDown 1019#define _fnum_ternelTextCursorLeft 1020#define _fnum_textCursorRight 1021#define _fnum_textScroll 1022#define _fnum_textGetNumColumns 1023#define _fnum_textGetNumRows 1024#define _fnum_textGetColumn 1025#define _fnum_textSetColumn 1026#define _fnum_textGetRow 1027#define _fnum_textSetRow 1028#define _fnum_textSetCursor 1029#define _fnum_textScreenClear 1030#define _fnum_textScreenSave 1031#define _fnum_textScreenRestore 1032#define _fnum_textInputStreamCount 1033#define _fnum_textInputCount 1034#define _fnum_textInputStreamGetc 1035#define _fnum_textInputGetc 1036#define _fnum_textInputStreamReadN 1037#define _fnum_textInputReadN 1038#define _fnum_textInputStreamReadAll 1039#define _fnum_textInputReadAll 1040#define _fnum_textInputStreamAppend 1041#define _fnum_textInputAppend 1042#define _fnum_textInputStreamAppendN 1043#define _fnum_textInputAppendN 1044#define _fnum_textInputStreamRemove 1045#define _fnum_textInputRemove 1046#define _fnum_textInputStreamRemoveN 1047#define _fnum_textInputRemoveN 1048#define _fnum_textInputStreamRemoveAll 1049#define _fnum_textInputRemoveAll 1050#define _fnum_textInputStreamSetEcho 1051#define _fnum_textInputSetEcho 1052// Disk functions. All are in the 2000-2999 range.#define _fnum_diskReadPartitions 2000#define _fnum_diskSync 2001#define _fnum_diskGetBoot 2002#define _fnum_diskGetCount 2003#define _fnum_diskGetPhysicalCount 2004#define _fnum_diskGet 2005#define _fnum_diskGetAll 2006#define _fnum_diskGetAllPhysical 2007#define _fnum_diskGetPartType 2008#define _fnum_diskGetPartTypes 2009#define _fnum_diskSetLockState 2010#define _fnum_diskSetDoorState 2011#define _fnum_diskGetMediaState 2012#define _fnum_diskReadSectors 2013#define _fnum_diskWriteSectors 2014// Filesystem functions. All are in the 3000-3999 range.#define _fnum_filesystemFormat 3000#define _fnum_filesystemClobber 3001#define _fnum_filesystemCheck 3002#define _fnum_filesystemDefragment 3003#define _fnum_filesystemMount 3004#define _fnum_filesystemUnmount 3005#define _fnum_filesystemGetFree 3006#define _fnum_filesystemGetBlockSize 3007// File functions. All are in the 4000-4999 range.#define _fnum_fileFixupPath 4000#define _fnum_fileSeparateLast 4001#define _fnum_fileGetDisk 4002#define _fnum_fileCount 4003#define _fnum_fileFirst 4004#define _fnum_fileNext 4005#define _fnum_fileFind 4006#define _fnum_fileOpen 4007#define _fnum_fileClose 4008#define _fnum_fileRead 4009#define _fnum_fileWrite 4010#define _fnum_fileDelete 4011#define _fnum_fileDeleteRecursive 4012#define _fnum_fileDeleteSecure 4013#define _fnum_fileMakeDir 4014#define _fnum_fileRemoveDir 4015#define _fnum_fileCopy 4016#define _fnum_fileCopyRecursive 4017#define _fnum_fileMove 4018#define _fnum_fileTimestamp 4019#define _fnum_fileGetTemp 4020#define _fnum_fileStreamOpen 4021#define _fnum_fileStreamSeek 4022#define _fnum_fileStreamRead 4023#define _fnum_fileStreamReadLine 4024#define _fnum_fileStreamWrite 4025#define _fnum_fileStreamWriteStr 4026#define _fnum_fileStreamWriteLine 4027#define _fnum_fileStreamFlush 4028#define _fnum_fileStreamClose 4029// Memory manager functions. All are in the 5000-5999 range.#define _fnum_memoryGet 5000#define _fnum_memoryGetPhysical 5001#define _fnum_memoryRelease 5002#define _fnum_memoryReleaseAllByProcId 5003#define _fnum_memoryChangeOwner 5004#define _fnum_memoryGetStats 5005#define _fnum_memoryGetBlocks 5006// Multitasker functions. All are in the 6000-6999 range.#define _fnum_multitaskerCreateProcess 6000#define _fnum_multitaskerSpawn 6001#define _fnum_multitaskerGetCurrentProcessId 6002#define _fnum_multitaskerGetProcess 6003#define _fnum_multitaskerGetProcessByName 6004#define _fnum_multitaskerGetProcesses 6005#define _fnum_multitaskerSetProcessState 6006#define _fnum_multitaskerProcessIsAlive 6007#define _fnum_multitaskerSetProcessPriority 6008#define _fnum_multitaskerGetProcessPrivilege 6009#define _fnum_multitaskerGetCurrentDirectory 6010#define _fnum_multitaskerSetCurrentDirectory 6011#define _fnum_multitaskerGetTextInput 6012#define _fnum_multitaskerSetTextInput 6013#define _fnum_multitaskerGetTextOutput 6014#define _fnum_multitaskerSetTextOutput 6015#define _fnum_multitaskerDuplicateIO 6016#define _fnum_multitaskerGetProcessorTime 6017#define _fnum_multitaskerYield 6018#define _fnum_multitaskerWait 6019#define _fnum_multitaskerBlock 6020#define _fnum_multitaskerDetach 6021#define _fnum_multitaskerKillProcess 6022#define _fnum_multitaskerKillByName 6023#define _fnum_multitaskerTerminate 6024#define _fnum_multitaskerSignalSet 6025#define _fnum_multitaskerSignal 6026#define _fnum_multitaskerSignalRead 6027// next 3 added by Davide Airaghi for IO protection#define _fnum_multitaskerGetIOperm 6028#define _fnum_multitaskerAllowIO 6029#define _fnum_multitaskerNotAllowIO 6030// Loader functions. All are in the 7000-7999 range.#define _fnum_loaderLoad 7000#define _fnum_loaderClassify 7001#define _fnum_loaderClassifyFile 7002#define _fnum_loaderGetSymbols 7003#define _fnum_loaderLoadProgram 7004#define _fnum_loaderLoadLibrary 7005#define _fnum_loaderExecProgram 7006#define _fnum_loaderLoadAndExec 7007// Real-time clock functions. All are in the 8000-8999 range.#define _fnum_rtcReadSeconds 8000#define _fnum_rtcReadMinutes 8001#define _fnum_rtcReadHours 8002#define _fnum_rtcDayOfWeek 8003#define _fnum_rtcReadDayOfMonth 8004#define _fnum_rtcReadMonth 8005#define _fnum_rtcReadYear 8006#define _fnum_rtcUptimeSeconds 8007#define _fnum_rtcDateTime 8008// Random number functions. All are in the 9000-9999 range.#define _fnum_randomUnformatted 9000#define _fnum_randomFormatted 9001#define _fnum_randomSeededUnformatted 9002#define _fnum_randomSeededFormatted 9003// Environment functions. All are in the 10000-10999 range.#define _fnum_environmentGet 10000#define _fnum_environmentSet 10001#define _fnum_environmentUnset 10002#define _fnum_environmentDump 10003// Raw graphics drawing functions. All are in the 11000-11999 range#define _fnum_graphicsAreEnabled 11000#define _fnum_graphicGetModes 11001#define _fnum_graphicGetMode 11002#define _fnum_graphicSetMode 11003#define _fnum_graphicGetScreenWidth 11004#define _fnum_graphicGetScreenHeight 11005#define _fnum_graphicCalculateAreaBytes 11006#define _fnum_graphicClearScreen 11007#define _fnum_graphicGetColor 11008#define _fnum_graphicSetColor 11009#define _fnum_graphicDrawPixel 11010#define _fnum_graphicDrawLine 11011#define _fnum_graphicDrawRect 11012#define _fnum_graphicDrawOval 11013#define _fnum_graphicDrawImage 11014#define _fnum_graphicGetImage 11015#define _fnum_graphicDrawText 11016#define _fnum_graphicCopyArea 11017#define _fnum_graphicClearArea 11018#define _fnum_graphicRenderBuffer 11019// Windowing system functions. All are in the 12000-12999 range#define _fnum_windowLogin 12000#define _fnum_windowLogout 12001#define _fnum_windowNew 12002#define _fnum_windowNewDialog 12003#define _fnum_windowDestroy 12004#define _fnum_windowUpdateBuffer 12005#define _fnum_windowSetTitle 12006#define _fnum_windowGetSize 12007#define _fnum_windowSetSize 12008#define _fnum_windowGetLocation 12009#define _fnum_windowSetLocation 12010#define _fnum_windowCenter 12011#define _fnum_windowSnapIcons 12012#define _fnum_windowSetHasBorder 12013#define _fnum_windowSetHasTitleBar 12014#define _fnum_windowSetMovable 12015#define _fnum_windowSetResizable 12016#define _fnum_windowSetHasMinimizeButton 12017#define _fnum_windowSetHasCloseButton 12018#define _fnum_windowSetColors 12019#define _fnum_windowSetVisible 12020#define _fnum_windowSetMinimized 12021 #define _fnum_windowAddConsoleTextArea 12022#define _fnum_windowRedrawArea 12023#define _fnum_windowProcessEvent 12024#define _fnum_windowComponentEventGet 12025#define _fnum_windowTileBackground 12026#define _fnum_windowCenterBackground 12027#define _fnum_windowScreenShot 12028#define _fnum_windowSaveScreenShot 12029#define _fnum_windowSetTextOutput 12030#define _fnum_windowComponentSetVisible 12031#define _fnum_windowComponentSetEnabled 12032
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -