⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kernelapi.c

📁 上一个上传的有问题,这个是好的。visopsys包括系统内核和GUI的全部SOURCE code ,还包括一些基本的docs文档。里面src子目录对应所有SOURCE code.对于想研究操作系统的朋
💻 C
📖 第 1 页 / 共 3 页
字号:
////  Visopsys//  Copyright (C) 1998-2005 J. Andrew McLaughlin// //  This program is free software; you can redistribute it and/or modify it//  under the terms of the GNU General Public License as published by the Free//  Software Foundation; either version 2 of the License, or (at your option)//  any later version.// //  This program 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 General Public License//  for more details.//  //  You should have received a copy of the GNU General Public License along//  with this program; if not, write to the Free Software Foundation, Inc.,//  59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.////  kernelApi.c//	// This is the part of the kernel's API that sorts out which functions// get called from external locations.#include "kernelApi.h"#include "kernelParameters.h"#include "kernelText.h"#include "kernelDisk.h"#include "kernelFile.h"#include "kernelFilesystem.h"#include "kernelFileStream.h"#include "kernelMemory.h"#include "kernelMultitasker.h"#include "kernelLoader.h"#include "kernelRtc.h"#include "kernelRandom.h"#include "kernelEnvironment.h"#include "kernelWindow.h"#include "kernelUser.h"#include "kernelNetworkDevice.h"#include "kernelNetwork.h"#include "kernelShutdown.h"#include "kernelMisc.h"#include "kernelEncrypt.h"#include "kernelKeyboard.h"#include "kernelProcessorX86.h"#include "kernelError.h"// We do this so that <sys/api.h> won't complain about being included// in a kernel file#undef KERNEL#include <sys/api.h>#define KERNELstatic kernelFunctionIndex textFunctionIndex[] = {  // Text input/output functions (1000-1999 range)  { _fnum_textGetConsoleInput, kernelTextGetConsoleInput, 0, PRIVILEGE_USER },  { _fnum_textSetConsoleInput, kernelTextSetConsoleInput,    1, PRIVILEGE_SUPERVISOR },  { _fnum_textGetConsoleOutput, kernelTextGetConsoleOutput,    0, PRIVILEGE_USER },  { _fnum_textSetConsoleOutput, kernelTextSetConsoleOutput,    1, PRIVILEGE_SUPERVISOR },  { _fnum_textGetCurrentInput, kernelTextGetCurrentInput, 0, PRIVILEGE_USER },  { _fnum_textSetCurrentInput, kernelTextSetCurrentInput, 1, PRIVILEGE_USER },  { _fnum_textGetCurrentOutput, kernelTextGetCurrentOutput,    0, PRIVILEGE_USER },  { _fnum_textSetCurrentOutput, kernelTextSetCurrentOutput,    1, PRIVILEGE_USER },  { _fnum_textGetForeground, kernelTextGetForeground, 0, PRIVILEGE_USER },  { _fnum_textSetForeground, kernelTextSetForeground, 1, PRIVILEGE_USER },  { _fnum_textGetBackground, kernelTextGetBackground, 0, PRIVILEGE_USER },  { _fnum_textSetBackground, kernelTextSetBackground, 1, PRIVILEGE_USER },  { _fnum_textPutc, kernelTextPutc, 1, PRIVILEGE_USER },  { _fnum_textPrint, kernelTextPrint, 1, PRIVILEGE_USER },  { _fnum_textPrintLine, kernelTextPrintLine, 1, PRIVILEGE_USER },  { _fnum_textNewline, kernelTextNewline, 0, PRIVILEGE_USER },  { _fnum_textBackSpace, kernelTextBackSpace, 0, PRIVILEGE_USER },  { _fnum_textTab, kernelTextTab, 0, PRIVILEGE_USER },  { _fnum_textCursorUp, kernelTextCursorUp, 0, PRIVILEGE_USER },  { _fnum_textCursorDown, kernelTextCursorDown, 0, PRIVILEGE_USER },  { _fnum_ternelTextCursorLeft, kernelTextCursorLeft, 0, PRIVILEGE_USER },  { _fnum_textCursorRight, kernelTextCursorRight, 0, PRIVILEGE_USER },  { _fnum_textScroll, kernelTextScroll, 1, PRIVILEGE_USER },  { _fnum_textGetNumColumns, kernelTextGetNumColumns, 0, PRIVILEGE_USER },  { _fnum_textGetNumRows, kernelTextGetNumRows, 0, PRIVILEGE_USER },  { _fnum_textGetColumn, kernelTextGetColumn, 0, PRIVILEGE_USER },  { _fnum_textSetColumn, kernelTextSetColumn, 1, PRIVILEGE_USER },  { _fnum_textGetRow, kernelTextGetRow, 0, PRIVILEGE_USER },  { _fnum_textSetRow, kernelTextSetRow, 1, PRIVILEGE_USER },  { _fnum_textSetCursor, kernelTextSetCursor, 1, PRIVILEGE_USER },  { _fnum_textScreenClear, kernelTextScreenClear, 0, PRIVILEGE_USER },  { _fnum_textScreenSave, kernelTextScreenSave, 0, PRIVILEGE_USER },  { _fnum_textScreenRestore, kernelTextScreenRestore, 0, PRIVILEGE_USER },  { _fnum_textInputStreamCount, kernelTextInputStreamCount,    1, PRIVILEGE_USER },  { _fnum_textInputCount, kernelTextInputCount, 0, PRIVILEGE_USER },  { _fnum_textInputStreamGetc, kernelTextInputStreamGetc, 2, PRIVILEGE_USER },  { _fnum_textInputGetc, kernelTextInputGetc, 1, PRIVILEGE_USER },  { _fnum_textInputStreamReadN, kernelTextInputStreamReadN,    3, PRIVILEGE_USER },  { _fnum_textInputReadN, kernelTextInputReadN, 2, PRIVILEGE_USER },  { _fnum_textInputStreamReadAll, kernelTextInputStreamReadAll,    2, PRIVILEGE_USER },  { _fnum_textInputReadAll, kernelTextInputReadAll, 1, PRIVILEGE_USER },  { _fnum_textInputStreamAppend, kernelTextInputStreamAppend,    2, PRIVILEGE_USER },  { _fnum_textInputAppend, kernelTextInputAppend, 1, PRIVILEGE_USER },  { _fnum_textInputStreamAppendN, kernelTextInputStreamAppendN,    3, PRIVILEGE_USER },  { _fnum_textInputAppendN, kernelTextInputAppendN, 2, PRIVILEGE_USER },  { _fnum_textInputStreamRemove, kernelTextInputStreamRemove,    1, PRIVILEGE_USER },  { _fnum_textInputRemove, kernelTextInputRemove, 0, PRIVILEGE_USER },  { _fnum_textInputStreamRemoveN, kernelTextInputStreamRemoveN,    2, PRIVILEGE_USER },  { _fnum_textInputRemoveN, kernelTextInputRemoveN, 1, PRIVILEGE_USER },  { _fnum_textInputStreamRemoveAll, kernelTextInputStreamRemoveAll,    1, PRIVILEGE_USER },  { _fnum_textInputRemoveAll, kernelTextInputRemoveAll, 0, PRIVILEGE_USER },  { _fnum_textInputStreamSetEcho, kernelTextInputStreamSetEcho,    2, PRIVILEGE_USER },  { _fnum_textInputSetEcho, kernelTextInputSetEcho, 1,  PRIVILEGE_USER }};static kernelFunctionIndex diskFunctionIndex[] = {  // Disk functions (2000-2999 range)  { _fnum_diskReadPartitions, kernelDiskReadPartitions,    0, PRIVILEGE_SUPERVISOR },  { _fnum_diskSync, kernelDiskSync, 0, PRIVILEGE_USER },  { _fnum_diskGetBoot, kernelDiskGetBoot, 1, PRIVILEGE_USER },  { _fnum_diskGetCount, kernelDiskGetCount, 0, PRIVILEGE_USER },  { _fnum_diskGetPhysicalCount, kernelDiskGetPhysicalCount,    0, PRIVILEGE_USER },  { _fnum_diskGet, kernelDiskGet, 2, PRIVILEGE_USER },  { _fnum_diskGetAll, kernelDiskGetAll, 2, PRIVILEGE_USER },  { _fnum_diskGetAllPhysical, kernelDiskGetAllPhysical, 2, PRIVILEGE_USER },  { _fnum_diskGetPartType, kernelDiskGetPartType, 2, PRIVILEGE_USER },  { _fnum_diskGetPartTypes, kernelDiskGetPartTypes, 0, PRIVILEGE_USER },  { _fnum_diskSetLockState, kernelDiskSetLockState, 2, PRIVILEGE_USER },  { _fnum_diskSetDoorState, kernelDiskSetDoorState, 2, PRIVILEGE_USER },  { _fnum_diskGetMediaState, kernelDiskGetMediaState, 1, PRIVILEGE_USER },  { _fnum_diskReadSectors, kernelDiskReadSectors, 4, PRIVILEGE_SUPERVISOR },  { _fnum_diskWriteSectors, kernelDiskWriteSectors, 4, PRIVILEGE_SUPERVISOR }};static kernelFunctionIndex filesystemFunctionIndex[] = {  // Filesystem functions (3000-3999 range)  { _fnum_filesystemFormat, kernelFilesystemFormat, 5, PRIVILEGE_SUPERVISOR },  { _fnum_filesystemClobber, kernelFilesystemClobber,    1, PRIVILEGE_SUPERVISOR },  { _fnum_filesystemCheck, kernelFilesystemCheck, 4, PRIVILEGE_USER },  { _fnum_filesystemDefragment, kernelFilesystemDefragment,    2, PRIVILEGE_SUPERVISOR },  { _fnum_filesystemMount, kernelFilesystemMount, 2, PRIVILEGE_USER },  { _fnum_filesystemUnmount, kernelFilesystemUnmount, 1, PRIVILEGE_USER },  { _fnum_filesystemGetFree, kernelFilesystemGetFree, 1, PRIVILEGE_USER },  { _fnum_filesystemGetBlockSize, kernelFilesystemGetBlockSize,    1, PRIVILEGE_USER }};static kernelFunctionIndex fileFunctionIndex[] = {  // File functions (4000-4999 range)  { _fnum_fileFixupPath, kernelFileFixupPath, 2, PRIVILEGE_USER },  { _fnum_fileSeparateLast, kernelFileSeparateLast, 3, PRIVILEGE_USER },  { _fnum_fileGetDisk, kernelFileGetDisk, 2, PRIVILEGE_USER },  { _fnum_fileCount, kernelFileCount, 1, PRIVILEGE_USER },  { _fnum_fileFirst, kernelFileFirst, 2, PRIVILEGE_USER },  { _fnum_fileNext, kernelFileNext, 2, PRIVILEGE_USER },  { _fnum_fileFind, kernelFileFind, 2, PRIVILEGE_USER },  { _fnum_fileOpen, kernelFileOpen, 3, PRIVILEGE_USER },  { _fnum_fileClose, kernelFileClose, 1, PRIVILEGE_USER },  { _fnum_fileRead, kernelFileRead, 4, PRIVILEGE_USER },  { _fnum_fileWrite, kernelFileWrite, 4, PRIVILEGE_USER },  { _fnum_fileDelete, kernelFileDelete, 1, PRIVILEGE_USER },  { _fnum_fileDeleteRecursive, kernelFileDeleteRecursive, 1, PRIVILEGE_USER },  { _fnum_fileDeleteSecure, kernelFileDeleteSecure, 1, PRIVILEGE_USER },  { _fnum_fileMakeDir, kernelFileMakeDir, 1, PRIVILEGE_USER },  { _fnum_fileRemoveDir, kernelFileRemoveDir, 1, PRIVILEGE_USER },  { _fnum_fileCopy, kernelFileCopy, 2, PRIVILEGE_USER },  { _fnum_fileCopyRecursive, kernelFileCopyRecursive, 2, PRIVILEGE_USER },  { _fnum_fileMove, kernelFileMove, 2, PRIVILEGE_USER },  { _fnum_fileTimestamp, kernelFileTimestamp, 1, PRIVILEGE_USER },  { _fnum_fileGetTemp, kernelFileGetTemp, 1, PRIVILEGE_USER },  { _fnum_fileStreamOpen, kernelFileStreamOpen, 3, PRIVILEGE_USER },  { _fnum_fileStreamSeek, kernelFileStreamSeek, 2, PRIVILEGE_USER },  { _fnum_fileStreamRead, kernelFileStreamRead, 3, PRIVILEGE_USER },  { _fnum_fileStreamReadLine, kernelFileStreamReadLine, 3, PRIVILEGE_USER },  { _fnum_fileStreamWrite, kernelFileStreamWrite, 3, PRIVILEGE_USER },  { _fnum_fileStreamWriteStr, kernelFileStreamWriteStr, 2, PRIVILEGE_USER },  { _fnum_fileStreamWriteLine, kernelFileStreamWriteLine, 2, PRIVILEGE_USER },  { _fnum_fileStreamFlush, kernelFileStreamFlush, 1, PRIVILEGE_USER },  { _fnum_fileStreamClose, kernelFileStreamClose, 1, PRIVILEGE_USER }};static kernelFunctionIndex memoryFunctionIndex[] = {  // Memory manager functions (5000-5999 range)  { _fnum_memoryGet, kernelMemoryGet, 2, PRIVILEGE_USER },  { _fnum_memoryGetPhysical, kernelMemoryGetPhysical,    3, PRIVILEGE_SUPERVISOR },  { _fnum_memoryRelease, kernelMemoryRelease, 1, PRIVILEGE_USER },  { _fnum_memoryReleaseAllByProcId, kernelMemoryReleaseAllByProcId,    1, PRIVILEGE_USER },  { _fnum_memoryChangeOwner, kernelMemoryChangeOwner,    4, PRIVILEGE_SUPERVISOR },  { _fnum_memoryGetStats, kernelMemoryGetStats, 2, PRIVILEGE_USER },  { _fnum_memoryGetBlocks, kernelMemoryGetBlocks, 3, PRIVILEGE_USER }};static kernelFunctionIndex multitaskerFunctionIndex[] = {  // Multitasker functions (6000-6999 range)  { _fnum_multitaskerCreateProcess, kernelMultitaskerCreateProcess,    3, PRIVILEGE_USER },  { _fnum_multitaskerSpawn, kernelMultitaskerSpawn, 4, PRIVILEGE_USER },  { _fnum_multitaskerGetCurrentProcessId, kernelMultitaskerGetCurrentProcessId,    0, PRIVILEGE_USER },  { _fnum_multitaskerGetProcess, kernelMultitaskerGetProcess,    2, PRIVILEGE_USER },  { _fnum_multitaskerGetProcessByName, kernelMultitaskerGetProcessByName,    2, PRIVILEGE_USER },  { _fnum_multitaskerGetProcesses, kernelMultitaskerGetProcesses,

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -