<?xml version='1.0' encoding='iso-8859-1' standalone='no'?> <doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.4.7"> <compounddef id="syscall_8c" kind="file"> <compoundname>syscall.c</compoundname> <includes refid="syscall_8h" local="no">ubixos/syscall.h</includes> <includes refid="syscalls_8h" local="no">ubixos/syscalls.h</includes> <includes refid="sched_8h" local="no">ubixos/sched.h</includes> <includes refid="types_8h" local="no">ubixos/types.h</includes> <includes refid="exec_8h" local="no">ubixos/exec.h</includes> <includes refid="elf_8h" local="no">ubixos/elf.h</includes> <includes refid="endtask_8h" local="no">ubixos/endtask.h</includes> <includes refid="time_8h" local="no">ubixos/time.h</includes> <includes refid="video_8h" local="no">sys/video.h</includes> <includes refid="trap_8h" local="no">sys/trap.h</includes> <includes refid="file_8h" local="no">vfs/file.h</includes> <includes refid="ubixfs_8h" local="no">ubixfs/ubixfs.h</includes> <includes refid="lib_2string_8h" local="no">lib/string.h</includes> <includes refid="kprintf_8h" local="no">lib/kprintf.h</includes> <includes refid="kmalloc_8h" local="no">lib/kmalloc.h</includes> <includes refid="vitals_8h" local="no">ubixos/vitals.h</includes> <includes refid="mpi_8h" local="no">mpi/mpi.h</includes> <includes refid="vmm_8h" local="no">vmm/vmm.h</includes> <incdepgraph> <node id="5477"> <label>sys/thread.h</label> <link refid="thread_8h"/> <childnode refid="5468" relation="include"> </childnode> </node> <node id="5471"> <label>ubixos/sched.h</label> <link refid="sched_8h"/> <childnode refid="5468" relation="include"> </childnode> <childnode refid="5472" relation="include"> </childnode> <childnode refid="5473" relation="include"> </childnode> <childnode refid="5476" relation="include"> </childnode> <childnode refid="5477" relation="include"> </childnode> </node> <node id="5480"> <label>ubixos/endtask.h</label> <link refid="endtask_8h"/> <childnode refid="5468" relation="include"> </childnode> <childnode refid="5471" relation="include"> </childnode> </node> <node id="5467"> <label>ubixos/syscall.h</label> <link refid="syscall_8h"/> <childnode refid="5468" relation="include"> </childnode> </node> <node id="5494"> <label>ubixos/vitals.h</label> <link refid="vitals_8h"/> <childnode refid="5495" relation="include"> </childnode> <childnode refid="5486" relation="include"> </childnode> </node> <node id="5468"> <label>ubixos/types.h</label> <link refid="types_8h"/> <childnode refid="5469" relation="include"> </childnode> </node> <node id="5469"> <label>sys/_types.h</label> <link refid="__types_8h"/> </node> <node id="5483"> <label>sys/video.h</label> <link refid="video_8h"/> <childnode refid="5468" relation="include"> </childnode> </node> <node id="5491"> <label>lib/string.h</label> <link refid="lib_2string_8h"/> <childnode refid="5468" relation="include"> </childnode> </node> <node id="5497"> <label>vmm/paging.h</label> <link refid="paging_8h"/> <childnode refid="5468" relation="include"> </childnode> <childnode refid="5487" relation="include"> </childnode> <childnode refid="5477" relation="include"> </childnode> </node> <node id="5481"> <label>ubixos/time.h</label> <link refid="time_8h"/> <childnode refid="5468" relation="include"> </childnode> <childnode refid="5482" relation="include"> </childnode> </node> <node id="5473"> <label>vfs/file.h</label> <link refid="file_8h"/> <childnode refid="5468" relation="include"> </childnode> <childnode refid="5474" relation="include"> </childnode> <childnode refid="5475" relation="include"> </childnode> </node> <node id="5476"> <label>sys/tss.h</label> <link refid="tss_8h"/> <childnode refid="5468" relation="include"> </childnode> </node> <node id="5493"> <label>lib/kmalloc.h</label> <link refid="kmalloc_8h"/> <childnode refid="5468" relation="include"> </childnode> </node> <node id="5496"> <label>vmm/vmm.h</label> <link refid="vmm_8h"/> <childnode refid="5497" relation="include"> </childnode> <childnode refid="5468" relation="include"> </childnode> </node> <node id="5490"> <label>mpi/mpi.h</label> <link refid="mpi_8h"/> <childnode refid="5468" relation="include"> </childnode> <childnode refid="5471" relation="include"> </childnode> </node> <node id="5486"> <label>vfs/vfs.h</label> <link refid="vfs_8h"/> <childnode refid="5468" relation="include"> </childnode> <childnode refid="5473" relation="include"> </childnode> <childnode refid="5475" relation="include"> </childnode> <childnode refid="5487" relation="include"> </childnode> <childnode refid="5477" relation="include"> </childnode> </node> <node id="5475"> <label>vfs/mount.h</label> <link refid="mount_8h"/> <childnode refid="5468" relation="include"> </childnode> </node> <node id="5492"> <label>lib/kprintf.h</label> <link refid="kprintf_8h"/> <childnode refid="5468" relation="include"> </childnode> </node> <node id="5485"> <label>ubixfs/ubixfs.h</label> <link refid="ubixfs_8h"/> <childnode refid="5468" relation="include"> </childnode> <childnode refid="5486" relation="include"> </childnode> <childnode refid="5489" relation="include"> </childnode> <childnode refid="5490" relation="include"> </childnode> <childnode refid="5474" relation="include"> </childnode> </node> <node id="5495"> <label>ubixos/ubthread.h</label> <link refid="ubthread_8h"/> <childnode refid="5468" relation="include"> </childnode> <childnode refid="5471" relation="include"> </childnode> <childnode refid="5481" relation="include"> </childnode> </node> <node id="5466"> <label>src/sys/kernel/syscall.c</label> <link refid="syscall.c"/> <childnode refid="5467" relation="include"> </childnode> <childnode refid="5470" relation="include"> </childnode> <childnode refid="5471" relation="include"> </childnode> <childnode refid="5468" relation="include"> </childnode> <childnode refid="5478" relation="include"> </childnode> <childnode refid="5479" relation="include"> </childnode> <childnode refid="5480" relation="include"> </childnode> <childnode refid="5481" relation="include"> </childnode> <childnode refid="5483" relation="include"> </childnode> <childnode refid="5484" relation="include"> </childnode> <childnode refid="5473" relation="include"> </childnode> <childnode refid="5485" relation="include"> </childnode> <childnode refid="5491" relation="include"> </childnode> <childnode refid="5492" relation="include"> </childnode> <childnode refid="5493" relation="include"> </childnode> <childnode refid="5494" relation="include"> </childnode> <childnode refid="5490" relation="include"> </childnode> <childnode refid="5496" relation="include"> </childnode> </node> <node id="5474"> <label>ubixfs/dirCache.h</label> <link refid="dirCache_8h"/> <childnode refid="5468" relation="include"> </childnode> </node> <node id="5478"> <label>ubixos/exec.h</label> <link refid="exec_8h"/> <childnode refid="5468" relation="include"> </childnode> <childnode refid="5471" relation="include"> </childnode> </node> <node id="5470"> <label>ubixos/syscalls.h</label> <link refid="syscalls_8h"/> <childnode refid="5471" relation="include"> </childnode> <childnode refid="5473" relation="include"> </childnode> </node> <node id="5487"> <label>sys/sysproto.h</label> <link refid="sysproto_8h"/> <childnode refid="5488" relation="include"> </childnode> <childnode refid="5477" relation="include"> </childnode> </node> <node id="5479"> <label>ubixos/elf.h</label> <link refid="elf_8h"/> <childnode refid="5468" relation="include"> </childnode> <childnode refid="5471" relation="include"> </childnode> </node> <node id="5488"> <label>sys/signal.h</label> <link refid="signal_8h"/> <childnode refid="5468" relation="include"> </childnode> </node> <node id="5472"> <label>ubixos/tty.h</label> <link refid="tty_8h"/> <childnode refid="5468" relation="include"> </childnode> </node> <node id="5482"> <label>sys/io.h</label> <link refid="io_8h"/> </node> <node id="5489"> <label>sys/device.h</label> <link refid="device_8h"/> <childnode refid="5468" relation="include"> </childnode> </node> <node id="5484"> <label>sys/trap.h</label> <link refid="trap_8h"/> </node> </incdepgraph> <innerclass refid="struct__UbixUser" prot="public">_UbixUser</innerclass> <sectiondef kind="typedef"> <memberdef kind="typedef" id="syscall_8c_12aebf5c0d98c1cc7bdaffd745e6b1ca2" prot="public" static="no"> <type><ref refid="struct__UbixUser" kindref="compound">_UbixUser</ref></type> <definition>typedef struct _UbixUser UbixUser</definition> <argsstring></argsstring> <name>UbixUser</name> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/usr/home/reddawg/source/ubix2/src/sys/kernel/syscall.c" line="89" bodyfile="/usr/home/reddawg/source/ubix2/src/sys/kernel/syscall.c" bodystart="89" bodyend="-1"/> </memberdef> </sectiondef> <sectiondef kind="func"> <memberdef kind="function" id="syscall_8c_17e3bb5eb052892f4fa62d4c187fb10d4" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type></type> <definition>asm</definition> <argsstring>(".globl _sysCallNew \n""_sysCallNew: \n"" pusha \n"" push %ss \n"" push %ds \n"" push %es \n"" push %fs \n"" push %gs \n"" cmpl totalCalls,%eax \n"" jae invalidSysCallNew \n"" mov %esp,%ebx \n"" add $12,%ebx \n"" push (%ebx) \n"" call *systemCalls(,%eax,4) \n"" add $4,%esp \n"" jmp doneNew \n""invalidSysCallNew: \n"" call InvalidSystemCall \n""doneNew: \n"" pop %gs \n"" pop %fs \n"" pop %es \n"" pop %ds \n"" pop %ss \n"" popa \n"" iret \n")</argsstring> <name>asm</name> <param> <type>".globl _sysCallNew \n""_sysCallNew: \n"" pusha \n"" push %ss \n"" push %ds \n"" push %es \n"" push %<ref refid="structfs" kindref="compound">fs</ref> \n"" push %gs \n"" cmpl </type> <declname>totalCalls</declname> </param> <param> <type>%<ref refid="strlen_8S_10d9c430c9a9cb6a66e192946a5554e3b" kindref="member">eax</ref>\n""jae invalidSysCallNew\n""<ref refid="ap-boot_8S_1ede772866220799485f4da9fc06e759d" kindref="member">mov</ref>%</type> <declname>esp</declname> </param> <param> <type>%<ref refid="ap-boot_8S_11c50f544178eb7e0af39bd078c5a986f" kindref="member">ebx</ref>\n""add $</type> <declname>12</declname> </param> <param> <type>%<ref refid="ap-boot_8S_11c50f544178eb7e0af39bd078c5a986f" kindref="member">ebx</ref>\n""push(%<ref refid="ap-boot_8S_11c50f544178eb7e0af39bd078c5a986f" kindref="member">ebx</ref>)\n""call *<ref refid="syscalls_8h_1fd1dfeee7c994f633faad4b6f4dd964b" kindref="member">systemCalls</ref>(,%<ref refid="strlen_8S_10d9c430c9a9cb6a66e192946a5554e3b" kindref="member">eax</ref>, 4)\n""add $</type> <declname>4</declname> </param> <param> <type>%<ref refid="start_8S_1fba1069006eb01caca2f78a33f379594" kindref="member">esp</ref>\n""jmp doneNew\n""invalidSysCallNew:\n""call InvalidSystemCall\n""doneNew:\n""pop%gs\n""pop%<ref refid="structfs" kindref="compound">fs</ref>\n""pop%es\n""pop%ds\n""pop%ss\n""popa\n""iret\n"</type> </param> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/usr/home/reddawg/source/ubix2/src/sys/kernel/syscall.c" line="81"/> </memberdef> <memberdef kind="function" id="syscall_8c_1145582743a4b91df2d954dbde7a667f4" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>long</type> <definition>long fuword</definition> <argsstring>(const void *base)</argsstring> <name>fuword</name> <param> <type>const void *</type> <declname>base</declname> </param> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/usr/home/reddawg/source/ubix2/src/sys/kernel/syscall.c" line="50"/> </memberdef> <memberdef kind="function" id="syscall_8c_198fb463aa3c38a140b47e594bf9603d6" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> <definition>void invalidCall</definition> <argsstring>(int sys_call)</argsstring> <name>invalidCall</name> <param> <type>int</type> <declname>sys_call</declname> </param> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/usr/home/reddawg/source/ubix2/src/sys/kernel/syscall.c" line="251" bodyfile="/usr/home/reddawg/source/ubix2/src/sys/kernel/syscall.c" bodystart="251" bodyend="254"/> <references refid="kprint_8h_1b2761bdf0cca73ad0fb5880895210cd8" compoundref="kprintf_8c" startline="38" endline="49">kprintf</references> </memberdef> <memberdef kind="function" id="syscall_8c_1f7052cfb833f292be2fd73436e4c96b6" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> <definition>void InvalidSystemCall</definition> <argsstring>()</argsstring> <name>InvalidSystemCall</name> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/usr/home/reddawg/source/ubix2/src/sys/kernel/syscall.c" line="84" bodyfile="/usr/home/reddawg/source/ubix2/src/sys/kernel/syscall.c" bodystart="83" bodyend="87"/> <references refid="kprint_8h_1b2761bdf0cca73ad0fb5880895210cd8" compoundref="kprintf_8c" startline="38" endline="49">kprintf</references> </memberdef> <memberdef kind="function" id="syscall_8c_14290727c1924758744edacd57ff00def" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> <definition>void sdeTestThread</definition> <argsstring>()</argsstring> <name>sdeTestThread</name> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/usr/home/reddawg/source/ubix2/src/sys/kernel/syscall.c" line="52"/> </memberdef> <memberdef kind="function" id="syscall_8c_15242d291fc024663a9035376f70a9938" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> <definition>void sysAddModule</definition> <argsstring>()</argsstring> <name>sysAddModule</name> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/usr/home/reddawg/source/ubix2/src/sys/kernel/syscall.c" line="120" bodyfile="/usr/home/reddawg/source/ubix2/src/sys/kernel/syscall.c" bodystart="119" bodyend="122"/> </memberdef> <memberdef kind="function" id="syscall_8c_1f53171b36a238440fc8e757c0d00a91f" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> <definition>void sysAuth</definition> <argsstring>(UbixUser *uu)</argsstring> <name>sysAuth</name> <param> <type><ref refid="struct__UbixUser" kindref="compound">UbixUser</ref> *</type> <declname>uu</declname> </param> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/usr/home/reddawg/source/ubix2/src/sys/kernel/syscall.c" line="101" bodyfile="/usr/home/reddawg/source/ubix2/src/sys/kernel/syscall.c" bodystart="100" bodyend="111"/> <references refid="struct__UbixUser_1a0779ab57c9c43976b09c01c2eaab5cb" compoundref="syscall_8c" startline="95">_UbixUser::gid</references> <references refid="kprint_8h_1b2761bdf0cca73ad0fb5880895210cd8" compoundref="kprintf_8c" startline="38" endline="49">kprintf</references> <references refid="struct__UbixUser_121648dbd731b4320943eff8de2084f5a" compoundref="syscall_8c" startline="93">_UbixUser::password</references> <references refid="struct__UbixUser_18d21d76e84a85aa49edf8109c138dfe9" compoundref="syscall_8c" startline="94">_UbixUser::uid</references> <references refid="struct__UbixUser_1759468c4ab67b1251e94c1d9ac1c4b9f" compoundref="syscall_8c" startline="92">_UbixUser::username</references> </memberdef> <memberdef kind="function" id="syscall_8c_1618ade9098959166434c56fedf05f71a" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> <definition>void sysCheckPid</definition> <argsstring>(int pid, int *ptr)</argsstring> <name>sysCheckPid</name> <param> <type>int</type> <declname>pid</declname> </param> <param> <type>int *</type> <declname>ptr</declname> </param> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/usr/home/reddawg/source/ubix2/src/sys/kernel/syscall.c" line="180" bodyfile="/usr/home/reddawg/source/ubix2/src/sys/kernel/syscall.c" bodystart="179" bodyend="187"/> <references refid="sched_8h_19cf37ade4c1f6184b33014ac2015e8ed" compoundref="sched_8c" startline="216" endline="226">schedFindTask</references> <references refid="structtaskStruct_1b085a40e09975d9ebf55b393f9549710" compoundref="sched_8h" startline="62">taskStruct::state</references> </memberdef> <memberdef kind="function" id="syscall_8c_1fe946867553f08182c48bb1dac56f1ca" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> <definition>void sysExit</definition> <argsstring>(int status)</argsstring> <name>sysExit</name> <param> <type>int</type> <declname>status</declname> </param> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/usr/home/reddawg/source/ubix2/src/sys/kernel/syscall.c" line="175" bodyfile="/usr/home/reddawg/source/ubix2/src/sys/kernel/syscall.c" bodystart="174" bodyend="177"/> <references refid="sched_8h_154397bfe18d5da4d50ff03b15f540858" compoundref="sched_8c" startline="51">_current</references> <references refid="endtask_8h_1152c1859ada097cc21071f471bfa2e67" compoundref="endtask_8c" startline="46" endline="67">endTask</references> <references refid="structtaskStruct_130966587a60db6b40c8be6c387e11d81" compoundref="sched_8h" startline="55">taskStruct::id</references> </memberdef> <memberdef kind="function" id="syscall_8c_1a1858601da45332a2cd7d43bb3bcb80d" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> <definition>void sysGetCwd</definition> <argsstring>(char *data, int len)</argsstring> <name>sysGetCwd</name> <param> <type>char *</type> <declname>data</declname> </param> <param> <type>int</type> <declname>len</declname> </param> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/usr/home/reddawg/source/ubix2/src/sys/kernel/syscall.c" line="229" bodyfile="/usr/home/reddawg/source/ubix2/src/sys/kernel/syscall.c" bodystart="228" bodyend="233"/> <references refid="sched_8h_154397bfe18d5da4d50ff03b15f540858" compoundref="sched_8c" startline="51">_current</references> <references refid="structosInfo_1e9411eaa7df66cd0148237248848bbdf" compoundref="sched_8h" startline="51">osInfo::cwd</references> <references refid="structtaskStruct_10933c70230d4ac8bc9953640c979f8d7" compoundref="sched_8h" startline="60">taskStruct::oInfo</references> <references refid="lib_2string_8h_1c38cd16373d98782e1465bd3d5aba470" compoundref="kprintf_8c" startline="51" endline="58">sprintf</references> </memberdef> <memberdef kind="function" id="syscall_8c_18bdd527e2c5a0fe7ea30685196ce3323" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> <definition>void sysGetDrives</definition> <argsstring>(uInt32 *ptr)</argsstring> <name>sysGetDrives</name> <param> <type><ref refid="types_8h_15847ea0262a5aa61eee48cbe95544a78" kindref="member">uInt32</ref> *</type> <declname>ptr</declname> </param> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/usr/home/reddawg/source/ubix2/src/sys/kernel/syscall.c" line="207" bodyfile="/usr/home/reddawg/source/ubix2/src/sys/kernel/syscall.c" bodystart="206" bodyend="211"/> </memberdef> <memberdef kind="function" id="syscall_8c_11db3bfbad534c2fa75c02646fcf80a90" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> <definition>void sysGetFreePage</definition> <argsstring>(long *ptr, int count, int type)</argsstring> <name>sysGetFreePage</name> <param> <type>long *</type> <declname>ptr</declname> </param> <param> <type>int</type> <declname>count</declname> </param> <param> <type>int</type> <declname>type</declname> </param> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/usr/home/reddawg/source/ubix2/src/sys/kernel/syscall.c" line="196" bodyfile="/usr/home/reddawg/source/ubix2/src/sys/kernel/syscall.c" bodystart="196" bodyend="204"/> <references refid="sched_8h_154397bfe18d5da4d50ff03b15f540858" compoundref="sched_8c" startline="51">_current</references> <references refid="structtaskStruct_130966587a60db6b40c8be6c387e11d81" compoundref="sched_8h" startline="55">taskStruct::id</references> <references refid="paging_8h_159a518704bf2f0b56603476bcb1eebbf" compoundref="paging_8h" startline="38">VM_TASK</references> <references refid="paging_8h_14ede4e8b3e149ef94678acdae7de0e18" compoundref="paging_8h" startline="37">VM_THRD</references> <references refid="paging_8h_14b324672c4b25064eb8db1e3419337b1" compoundref="getfreevirtualpage_8c" startline="47" endline="159">vmmGetFreeVirtualPage</references> </memberdef> <memberdef kind="function" id="syscall_8c_1e96a621ca025dd8af6bc3c8288cc0cb7" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> <definition>void sysGetGid</definition> <argsstring>(int *gid)</argsstring> <name>sysGetGid</name> <param> <type>int *</type> <declname>gid</declname> </param> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/usr/home/reddawg/source/ubix2/src/sys/kernel/syscall.c" line="142" bodyfile="/usr/home/reddawg/source/ubix2/src/sys/kernel/syscall.c" bodystart="142" bodyend="146"/> <references refid="sched_8h_154397bfe18d5da4d50ff03b15f540858" compoundref="sched_8c" startline="51">_current</references> <references refid="structtaskStruct_13cf9920106f9b0d96dff475faf7aa0d6" compoundref="sched_8h" startline="63">taskStruct::gid</references> </memberdef> <memberdef kind="function" id="syscall_8c_1850d08e73e21c01850eea87fbe334fb6" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> <definition>void sysGetpid</definition> <argsstring>(int *pid)</argsstring> <name>sysGetpid</name> <param> <type>int *</type> <declname>pid</declname> </param> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/usr/home/reddawg/source/ubix2/src/sys/kernel/syscall.c" line="130" bodyfile="/usr/home/reddawg/source/ubix2/src/sys/kernel/syscall.c" bodystart="129" bodyend="134"/> <references refid="sched_8h_154397bfe18d5da4d50ff03b15f540858" compoundref="sched_8c" startline="51">_current</references> <references refid="structtaskStruct_130966587a60db6b40c8be6c387e11d81" compoundref="sched_8h" startline="55">taskStruct::id</references> </memberdef> <memberdef kind="function" id="syscall_8c_1c0997ac7ac4b4bdb6f8565f2b7f0c74a" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> <definition>void sysGetTime</definition> <argsstring>(uInt32 *ptr)</argsstring> <name>sysGetTime</name> <param> <type><ref refid="types_8h_15847ea0262a5aa61eee48cbe95544a78" kindref="member">uInt32</ref> *</type> <declname>ptr</declname> </param> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/usr/home/reddawg/source/ubix2/src/sys/kernel/syscall.c" line="221" bodyfile="/usr/home/reddawg/source/ubix2/src/sys/kernel/syscall.c" bodystart="220" bodyend="225"/> <references refid="vitals_8h_167aae71be472453526fc1a0bfbf80280" compoundref="timer_8S" startline="35">systemVitals</references> <references refid="structvitalsStruct_1d4f37dedcce6dcf9d87e1f01221c5b71" compoundref="vitals_8h" startline="41">vitalsStruct::sysUptime</references> <references refid="structvitalsStruct_1c407388b447996ea3bad97aebbb5e1a6" compoundref="vitals_8h" startline="47">vitalsStruct::timeStart</references> </memberdef> <memberdef kind="function" id="syscall_8c_120b15028f242e382e441fff69880b55b" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> <definition>void sysGetUid</definition> <argsstring>(int *uid)</argsstring> <name>sysGetUid</name> <param> <type>int *</type> <declname>uid</declname> </param> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/usr/home/reddawg/source/ubix2/src/sys/kernel/syscall.c" line="136" bodyfile="/usr/home/reddawg/source/ubix2/src/sys/kernel/syscall.c" bodystart="136" bodyend="140"/> <references refid="sched_8h_154397bfe18d5da4d50ff03b15f540858" compoundref="sched_8c" startline="51">_current</references> <references refid="structtaskStruct_11f9e02ebf24ff1cd76fab75e4c6b0fe1" compoundref="sched_8h" startline="64">taskStruct::uid</references> </memberdef> <memberdef kind="function" id="syscall_8c_17c8a6dad2e6968015b21357c795bccc0" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> <definition>void sysGetUptime</definition> <argsstring>(uInt32 *ptr)</argsstring> <name>sysGetUptime</name> <param> <type><ref refid="types_8h_15847ea0262a5aa61eee48cbe95544a78" kindref="member">uInt32</ref> *</type> <declname>ptr</declname> </param> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/usr/home/reddawg/source/ubix2/src/sys/kernel/syscall.c" line="214" bodyfile="/usr/home/reddawg/source/ubix2/src/sys/kernel/syscall.c" bodystart="213" bodyend="218"/> <references refid="vitals_8h_167aae71be472453526fc1a0bfbf80280" compoundref="timer_8S" startline="35">systemVitals</references> <references refid="structvitalsStruct_14f8bcc103c132edae3eb7ed47e6ee024" compoundref="vitals_8h" startline="40">vitalsStruct::sysTicks</references> </memberdef> <memberdef kind="function" id="syscall_8c_187ae7b6cdc0230fbdf65c167a776e9ad" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> <definition>void sysPasswd</definition> <argsstring>(char *passwd)</argsstring> <name>sysPasswd</name> <param> <type>char *</type> <declname>passwd</declname> </param> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/usr/home/reddawg/source/ubix2/src/sys/kernel/syscall.c" line="114" bodyfile="/usr/home/reddawg/source/ubix2/src/sys/kernel/syscall.c" bodystart="113" bodyend="117"/> <references refid="sched_8h_154397bfe18d5da4d50ff03b15f540858" compoundref="sched_8c" startline="51">_current</references> <references refid="kprint_8h_1b2761bdf0cca73ad0fb5880895210cd8" compoundref="kprintf_8c" startline="38" endline="49">kprintf</references> <references refid="structtaskStruct_11f9e02ebf24ff1cd76fab75e4c6b0fe1" compoundref="sched_8h" startline="64">taskStruct::uid</references> </memberdef> <memberdef kind="function" id="syscall_8c_115cbe3f603b53d632faf25bce7f0a7ce" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> <definition>void sysRmModule</definition> <argsstring>()</argsstring> <name>sysRmModule</name> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/usr/home/reddawg/source/ubix2/src/sys/kernel/syscall.c" line="125" bodyfile="/usr/home/reddawg/source/ubix2/src/sys/kernel/syscall.c" bodystart="124" bodyend="127"/> </memberdef> <memberdef kind="function" id="syscall_8c_14fe050b57d00373f9f9810f1934244e7" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> <definition>void sysSchedYield</definition> <argsstring>()</argsstring> <name>sysSchedYield</name> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/usr/home/reddawg/source/ubix2/src/sys/kernel/syscall.c" line="235" bodyfile="/usr/home/reddawg/source/ubix2/src/sys/kernel/syscall.c" bodystart="235" bodyend="237"/> <references refid="sched_8h_108933fe6d593a1c78b9080359f15a0b7" compoundref="sched_8c" startline="259" endline="261">sched_yield</references> </memberdef> <memberdef kind="function" id="syscall_8c_1c21d2c80c103093157c7929814b23265" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> <definition>void sysSetGid</definition> <argsstring>(int gid, int *status)</argsstring> <name>sysSetGid</name> <param> <type>int</type> <declname>gid</declname> </param> <param> <type>int *</type> <declname>status</declname> </param> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/usr/home/reddawg/source/ubix2/src/sys/kernel/syscall.c" line="161" bodyfile="/usr/home/reddawg/source/ubix2/src/sys/kernel/syscall.c" bodystart="161" bodyend="172"/> <references refid="sched_8h_154397bfe18d5da4d50ff03b15f540858" compoundref="sched_8c" startline="51">_current</references> <references refid="structtaskStruct_13cf9920106f9b0d96dff475faf7aa0d6" compoundref="sched_8h" startline="63">taskStruct::gid</references> </memberdef> <memberdef kind="function" id="syscall_8c_1201b5066c18eb41f32293f2f0338264b" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> <definition>void sysSetUid</definition> <argsstring>(int uid, int *status)</argsstring> <name>sysSetUid</name> <param> <type>int</type> <declname>uid</declname> </param> <param> <type>int *</type> <declname>status</declname> </param> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/usr/home/reddawg/source/ubix2/src/sys/kernel/syscall.c" line="148" bodyfile="/usr/home/reddawg/source/ubix2/src/sys/kernel/syscall.c" bodystart="148" bodyend="159"/> <references refid="sched_8h_154397bfe18d5da4d50ff03b15f540858" compoundref="sched_8c" startline="51">_current</references> <references refid="structtaskStruct_11f9e02ebf24ff1cd76fab75e4c6b0fe1" compoundref="sched_8h" startline="64">taskStruct::uid</references> </memberdef> <memberdef kind="function" id="syscall_8c_1fb14ed929bdc2c68714da3685e650c6c" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> <definition>void sysStartSDE</definition> <argsstring>()</argsstring> <name>sysStartSDE</name> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/usr/home/reddawg/source/ubix2/src/sys/kernel/syscall.c" line="239" bodyfile="/usr/home/reddawg/source/ubix2/src/sys/kernel/syscall.c" bodystart="239" bodyend="249"/> </memberdef> </sectiondef> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <programlisting> <codeline lineno="1"><highlight class="comment">/*****************************************************************************************</highlight></codeline> <codeline lineno="2"><highlight class="comment"><sp/>Copyright<sp/>(c)<sp/>2002-2004<sp/>The<sp/>UbixOS<sp/>Project</highlight></codeline> <codeline lineno="3"><highlight class="comment"><sp/>All<sp/>rights<sp/>reserved.</highlight></codeline> <codeline lineno="4"><highlight class="comment"></highlight></codeline> <codeline lineno="5"><highlight class="comment"><sp/>Redistribution<sp/>and<sp/>use<sp/>in<sp/>source<sp/>and<sp/>binary<sp/>forms,<sp/>with<sp/>or<sp/>without<sp/>modification,<sp/>are</highlight></codeline> <codeline lineno="6"><highlight class="comment"><sp/>permitted<sp/>provided<sp/>that<sp/>the<sp/>following<sp/>conditions<sp/>are<sp/>met:</highlight></codeline> <codeline lineno="7"><highlight class="comment"></highlight></codeline> <codeline lineno="8"><highlight class="comment"><sp/>Redistributions<sp/>of<sp/>source<sp/>code<sp/>must<sp/>retain<sp/>the<sp/>above<sp/>copyright<sp/>notice,<sp/>this<sp/>list<sp/>of</highlight></codeline> <codeline lineno="9"><highlight class="comment"><sp/>conditions,<sp/>the<sp/>following<sp/>disclaimer<sp/>and<sp/>the<sp/>list<sp/>of<sp/>authors.<sp/><sp/>Redistributions<sp/>in<sp/>binary</highlight></codeline> <codeline lineno="10"><highlight class="comment"><sp/>form<sp/>must<sp/>reproduce<sp/>the<sp/>above<sp/>copyright<sp/>notice,<sp/>this<sp/>list<sp/>of<sp/>conditions,<sp/>the<sp/>following</highlight></codeline> <codeline lineno="11"><highlight class="comment"><sp/>disclaimer<sp/>and<sp/>the<sp/>list<sp/>of<sp/>authors<sp/>in<sp/>the<sp/>documentation<sp/>and/or<sp/>other<sp/>materials<sp/>provided</highlight></codeline> <codeline lineno="12"><highlight class="comment"><sp/>with<sp/>the<sp/>distribution.<sp/>Neither<sp/>the<sp/>name<sp/>of<sp/>the<sp/>UbixOS<sp/>Project<sp/>nor<sp/>the<sp/>names<sp/>of<sp/>its</highlight></codeline> <codeline lineno="13"><highlight class="comment"><sp/>contributors<sp/>may<sp/>be<sp/>used<sp/>to<sp/>endorse<sp/>or<sp/>promote<sp/>products<sp/>derived<sp/>from<sp/>this<sp/>software</highlight></codeline> <codeline lineno="14"><highlight class="comment"><sp/>without<sp/>specific<sp/>prior<sp/>written<sp/>permission.</highlight></codeline> <codeline lineno="15"><highlight class="comment"></highlight></codeline> <codeline lineno="16"><highlight class="comment"><sp/>THIS<sp/>SOFTWARE<sp/>IS<sp/>PROVIDED<sp/>BY<sp/>THE<sp/>COPYRIGHT<sp/>HOLDERS<sp/>AND<sp/>CONTRIBUTORS<sp/>"AS<sp/>IS"<sp/>AND<sp/>ANY</highlight></codeline> <codeline lineno="17"><highlight class="comment"><sp/>EXPRESS<sp/>OR<sp/>IMPLIED<sp/>WARRANTIES,<sp/>INCLUDING,<sp/>BUT<sp/>NOT<sp/>LIMITED<sp/>TO,<sp/>THE<sp/>IMPLIED<sp/>WARRANTIES<sp/>OF</highlight></codeline> <codeline lineno="18"><highlight class="comment"><sp/>MERCHANTABILITY<sp/>AND<sp/>FITNESS<sp/>FOR<sp/>A<sp/>PARTICULAR<sp/>PURPOSE<sp/>ARE<sp/>DISCLAIMED.<sp/>IN<sp/>NO<sp/>EVENT<sp/>SHALL</highlight></codeline> <codeline lineno="19"><highlight class="comment"><sp/>THE<sp/>COPYRIGHT<sp/>OWNER<sp/>OR<sp/>CONTRIBUTORS<sp/>BE<sp/>LIABLE<sp/>FOR<sp/>ANY<sp/>DIRECT,<sp/>INDIRECT,<sp/>INCIDENTAL,</highlight></codeline> <codeline lineno="20"><highlight class="comment"><sp/>SPECIAL,<sp/>EXEMPLARY,<sp/>OR<sp/>CONSEQUENTIAL<sp/>DAMAGES<sp/>(INCLUDING,<sp/>BUT<sp/>NOT<sp/>LIMITED<sp/>TO,<sp/>PROCUREMENT</highlight></codeline> <codeline lineno="21"><highlight class="comment"><sp/>OF<sp/>SUBSTITUTE<sp/>GOODS<sp/>OR<sp/>SERVICES;<sp/>LOSS<sp/>OF<sp/>USE,<sp/>DATA,<sp/>OR<sp/>PROFITS;<sp/>OR<sp/>BUSINESS<sp/>INTERRUPTION)</highlight></codeline> <codeline lineno="22"><highlight class="comment"><sp/>HOWEVER<sp/>CAUSED<sp/>AND<sp/>ON<sp/>ANY<sp/>THEORY<sp/>OF<sp/>LIABILITY,<sp/>WHETHER<sp/>IN<sp/>CONTRACT,<sp/>STRICT<sp/>LIABILITY,<sp/>OR</highlight></codeline> <codeline lineno="23"><highlight class="comment"><sp/>TORT<sp/>(INCLUDING<sp/>NEGLIGENCE<sp/>OR<sp/>OTHERWISE)<sp/>ARISING<sp/>IN<sp/>ANY<sp/>WAY<sp/>OUT<sp/>OF<sp/>THE<sp/>USE<sp/>OF<sp/>THIS</highlight></codeline> <codeline lineno="24"><highlight class="comment"><sp/>SOFTWARE,<sp/>EVEN<sp/>IF<sp/>ADVISED<sp/>OF<sp/>THE<sp/>POSSIBILITY<sp/>OF<sp/>SUCH<sp/>DAMAGE.</highlight></codeline> <codeline lineno="25"><highlight class="comment"></highlight></codeline> <codeline lineno="26"><highlight class="comment"><sp/>$Id: syscall_8c.xml 88 2016-01-12 00:11:29Z reddawg $</highlight></codeline> <codeline lineno="27"><highlight class="comment"></highlight></codeline> <codeline lineno="28"><highlight class="comment">*****************************************************************************************/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="29"><highlight class="normal"></highlight></codeline> <codeline lineno="30"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/><<ref refid="syscall_8h" kindref="compound">ubixos/syscall.h</ref>></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="31"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/><<ref refid="syscalls_8h" kindref="compound">ubixos/syscalls.h</ref>></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="32"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/><<ref refid="sched_8h" kindref="compound">ubixos/sched.h</ref>></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="33"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/><<ref refid="types_8h" kindref="compound">ubixos/types.h</ref>></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="34"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/><<ref refid="exec_8h" kindref="compound">ubixos/exec.h</ref>></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="35"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/><<ref refid="elf_8h" kindref="compound">ubixos/elf.h</ref>></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="36"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/><<ref refid="endtask_8h" kindref="compound">ubixos/endtask.h</ref>></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="37"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/><<ref refid="time_8h" kindref="compound">ubixos/time.h</ref>></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="38"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/><<ref refid="video_8h" kindref="compound">sys/video.h</ref>></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="39"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/><<ref refid="trap_8h" kindref="compound">sys/trap.h</ref>></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="40"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/><<ref refid="file_8h" kindref="compound">vfs/file.h</ref>></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="41"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/><<ref refid="ubixfs_8h" kindref="compound">ubixfs/ubixfs.h</ref>></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="42"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/><<ref refid="lib_2string_8h" kindref="compound">lib/string.h</ref>></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="43"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/><<ref refid="kprintf_8h" kindref="compound">lib/kprintf.h</ref>></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="44"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/><<ref refid="kmalloc_8h" kindref="compound">lib/kmalloc.h</ref>></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="45"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/><<ref refid="vitals_8h" kindref="compound">ubixos/vitals.h</ref>></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="46"><highlight class="normal"></highlight><highlight class="comment">/*<sp/>#include<sp/><sde/sde.h><sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="47"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/><<ref refid="mpi_8h" kindref="compound">mpi/mpi.h</ref>></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="48"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/><<ref refid="vmm_8h" kindref="compound">vmm/vmm.h</ref>></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="49"><highlight class="normal"></highlight></codeline> <codeline lineno="50"><highlight class="normal"></highlight><highlight class="keywordtype">long</highlight><highlight class="normal"><sp/><sp/><sp/><ref refid="syscall_8c_1145582743a4b91df2d954dbde7a667f4" kindref="member">fuword</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>*base);</highlight></codeline> <codeline lineno="51"><highlight class="normal"></highlight></codeline> <codeline lineno="52"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="syscall_8c_14290727c1924758744edacd57ff00def" kindref="member">sdeTestThread</ref>();</highlight></codeline> <codeline lineno="53"><highlight class="normal"></highlight></codeline> <codeline lineno="54"><highlight class="normal"></highlight><highlight class="keyword">asm</highlight><highlight class="normal">(</highlight></codeline> <codeline lineno="55"><highlight class="normal"><sp/><sp/></highlight><highlight class="stringliteral">".globl<sp/>_sysCallNew<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>\n"</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="56"><highlight class="normal"><sp/><sp/></highlight><highlight class="stringliteral">"_sysCallNew:<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>\n"</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="57"><highlight class="normal"><sp/><sp/></highlight><highlight class="stringliteral">"<sp/><sp/>pusha<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>\n"</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="58"><highlight class="normal"><sp/><sp/></highlight><highlight class="stringliteral">"<sp/><sp/>push<sp/>%ss<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>\n"</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="59"><highlight class="normal"><sp/><sp/></highlight><highlight class="stringliteral">"<sp/><sp/>push<sp/>%ds<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>\n"</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="60"><highlight class="normal"><sp/><sp/></highlight><highlight class="stringliteral">"<sp/><sp/>push<sp/>%es<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>\n"</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="61"><highlight class="normal"><sp/><sp/></highlight><highlight class="stringliteral">"<sp/><sp/>push<sp/>%fs<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>\n"</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="62"><highlight class="normal"><sp/><sp/></highlight><highlight class="stringliteral">"<sp/><sp/>push<sp/>%gs<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>\n"</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="63"><highlight class="normal"><sp/><sp/></highlight><highlight class="stringliteral">"<sp/><sp/>cmpl<sp/>totalCalls,%eax<sp/><sp/><sp/><sp/><sp/><sp/><sp/>\n"</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="64"><highlight class="normal"><sp/><sp/></highlight><highlight class="stringliteral">"<sp/><sp/>jae<sp/><sp/>invalidSysCallNew<sp/><sp/><sp/><sp/><sp/>\n"</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="65"><highlight class="normal"><sp/><sp/></highlight><highlight class="stringliteral">"<sp/><sp/>mov<sp/><sp/>%esp,%ebx<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>\n"</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="66"><highlight class="normal"><sp/><sp/></highlight><highlight class="stringliteral">"<sp/><sp/>add<sp/><sp/>$12,%ebx<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>\n"</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="67"><highlight class="normal"><sp/><sp/></highlight><highlight class="stringliteral">"<sp/><sp/>push<sp/>(%ebx)<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>\n"</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="68"><highlight class="normal"><sp/><sp/></highlight><highlight class="stringliteral">"<sp/><sp/>call<sp/>*systemCalls(,%eax,4)<sp/>\n"</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="69"><highlight class="normal"><sp/><sp/></highlight><highlight class="stringliteral">"<sp/><sp/>add<sp/><sp/>$4,%esp<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>\n"</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="70"><highlight class="normal"><sp/><sp/></highlight><highlight class="stringliteral">"<sp/><sp/>jmp<sp/><sp/>doneNew<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>\n"</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="71"><highlight class="normal"><sp/><sp/></highlight><highlight class="stringliteral">"invalidSysCallNew:<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>\n"</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="72"><highlight class="normal"><sp/><sp/></highlight><highlight class="stringliteral">"<sp/><sp/>call<sp/>InvalidSystemCall<sp/><sp/><sp/><sp/><sp/>\n"</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="73"><highlight class="normal"><sp/><sp/></highlight><highlight class="stringliteral">"doneNew:<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>\n"</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="74"><highlight class="normal"><sp/><sp/></highlight><highlight class="stringliteral">"<sp/><sp/>pop<sp/>%gs<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>\n"</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="75"><highlight class="normal"><sp/><sp/></highlight><highlight class="stringliteral">"<sp/><sp/>pop<sp/>%fs<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>\n"</highlight><highlight class="normal"><sp/></highlight></codeline> <codeline lineno="76"><highlight class="normal"><sp/><sp/></highlight><highlight class="stringliteral">"<sp/><sp/>pop<sp/>%es<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>\n"</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="77"><highlight class="normal"><sp/><sp/></highlight><highlight class="stringliteral">"<sp/><sp/>pop<sp/>%ds<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>\n"</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="78"><highlight class="normal"><sp/><sp/></highlight><highlight class="stringliteral">"<sp/><sp/>pop<sp/>%ss<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>\n"</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="79"><highlight class="normal"><sp/><sp/></highlight><highlight class="stringliteral">"<sp/><sp/>popa<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>\n"</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="80"><highlight class="normal"><sp/><sp/></highlight><highlight class="stringliteral">"<sp/><sp/>iret<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>\n"</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="81"><highlight class="normal"><sp/><sp/>);</highlight></codeline> <codeline lineno="82"><highlight class="normal"></highlight></codeline> <codeline lineno="83" refid="syscall_8c_1f7052cfb833f292be2fd73436e4c96b6" refkind="member"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="syscall_8c_1f7052cfb833f292be2fd73436e4c96b6" kindref="member">InvalidSystemCall</ref>()</highlight></codeline> <codeline lineno="84"><highlight class="normal">{</highlight></codeline> <codeline lineno="85"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="kprint_8h_1b2761bdf0cca73ad0fb5880895210cd8" kindref="member">kprintf</ref>(</highlight><highlight class="stringliteral">"attempt<sp/>was<sp/>made<sp/>to<sp/>an<sp/>invalid<sp/>system<sp/>call\n"</highlight><highlight class="normal">);</highlight></codeline> <codeline lineno="86"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal">;</highlight></codeline> <codeline lineno="87"><highlight class="normal">}</highlight></codeline> <codeline lineno="88"><highlight class="normal"></highlight></codeline> <codeline lineno="89" refid="syscall_8c_12aebf5c0d98c1cc7bdaffd745e6b1ca2" refkind="member"><highlight class="normal"></highlight><highlight class="keyword">typedef</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="struct__UbixUser" kindref="compound">_UbixUser</ref><sp/><ref refid="syscall_8c_12aebf5c0d98c1cc7bdaffd745e6b1ca2" kindref="member">UbixUser</ref>;</highlight></codeline> <codeline lineno="90" refid="struct__UbixUser" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="struct__UbixUser" kindref="compound">_UbixUser</ref></highlight></codeline> <codeline lineno="91"><highlight class="normal">{</highlight></codeline> <codeline lineno="92" refid="struct__UbixUser_1759468c4ab67b1251e94c1d9ac1c4b9f" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*<ref refid="struct__UbixUser_1759468c4ab67b1251e94c1d9ac1c4b9f" kindref="member">username</ref>;</highlight></codeline> <codeline lineno="93" refid="struct__UbixUser_121648dbd731b4320943eff8de2084f5a" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*<ref refid="struct__UbixUser_121648dbd731b4320943eff8de2084f5a" kindref="member">password</ref>;</highlight></codeline> <codeline lineno="94" refid="struct__UbixUser_18d21d76e84a85aa49edf8109c138dfe9" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><ref refid="struct__UbixUser_18d21d76e84a85aa49edf8109c138dfe9" kindref="member">uid</ref>;</highlight></codeline> <codeline lineno="95" refid="struct__UbixUser_1a0779ab57c9c43976b09c01c2eaab5cb" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><ref refid="struct__UbixUser_1a0779ab57c9c43976b09c01c2eaab5cb" kindref="member">gid</ref>;</highlight></codeline> <codeline lineno="96" refid="struct__UbixUser_1a4f6a9076bbd4555c8f395d14d82eb7d" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*<ref refid="struct__UbixUser_1a4f6a9076bbd4555c8f395d14d82eb7d" kindref="member">home</ref>;</highlight></codeline> <codeline lineno="97" refid="struct__UbixUser_18311b0ea0ff08f86dc899128987f0274" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*<ref refid="struct__UbixUser_18311b0ea0ff08f86dc899128987f0274" kindref="member">shell</ref>;</highlight></codeline> <codeline lineno="98"><highlight class="normal">};</highlight></codeline> <codeline lineno="99"><highlight class="normal"></highlight></codeline> <codeline lineno="100" refid="syscall_8c_1f53171b36a238440fc8e757c0d00a91f" refkind="member"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="syscalls_8h_19680bfc8a1e734b484f941001ccb3623" kindref="member">sysAuth</ref>(<ref refid="syscall_8c_12aebf5c0d98c1cc7bdaffd745e6b1ca2" kindref="member">UbixUser</ref><sp/>*uu)</highlight></codeline> <codeline lineno="101"><highlight class="normal">{</highlight></codeline> <codeline lineno="102"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="kprint_8h_1b2761bdf0cca73ad0fb5880895210cd8" kindref="member">kprintf</ref>(</highlight><highlight class="stringliteral">"authenticating<sp/>user<sp/>%s\n"</highlight><highlight class="normal">,<sp/>uu-><ref refid="struct__UbixUser_1759468c4ab67b1251e94c1d9ac1c4b9f" kindref="member">username</ref>);</highlight></codeline> <codeline lineno="103"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal">(uu-><ref refid="struct__UbixUser_1759468c4ab67b1251e94c1d9ac1c4b9f" kindref="member">username</ref><sp/>==<sp/></highlight><highlight class="stringliteral">"root"</highlight><highlight class="normal"><sp/>&&<sp/>uu-><ref refid="struct__UbixUser_121648dbd731b4320943eff8de2084f5a" kindref="member">password</ref><sp/>==<sp/></highlight><highlight class="stringliteral">"user"</highlight><highlight class="normal">)</highlight></codeline> <codeline lineno="104"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>{</highlight></codeline> <codeline lineno="105"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>uu-><ref refid="struct__UbixUser_18d21d76e84a85aa49edf8109c138dfe9" kindref="member">uid</ref><sp/>=<sp/>0;</highlight></codeline> <codeline lineno="106"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>uu-><ref refid="struct__UbixUser_1a0779ab57c9c43976b09c01c2eaab5cb" kindref="member">gid</ref><sp/>=<sp/>0;</highlight></codeline> <codeline lineno="107"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline> <codeline lineno="108"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>uu-><ref refid="struct__UbixUser_18d21d76e84a85aa49edf8109c138dfe9" kindref="member">uid</ref><sp/>=<sp/>-1;</highlight></codeline> <codeline lineno="109"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>uu-><ref refid="struct__UbixUser_1a0779ab57c9c43976b09c01c2eaab5cb" kindref="member">gid</ref><sp/>=<sp/>-1;</highlight></codeline> <codeline lineno="110"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal">;</highlight></codeline> <codeline lineno="111"><highlight class="normal">}</highlight></codeline> <codeline lineno="112"><highlight class="normal"></highlight></codeline> <codeline lineno="113" refid="syscall_8c_187ae7b6cdc0230fbdf65c167a776e9ad" refkind="member"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="syscalls_8h_1cedb04f8af77c9c29305438d57099133" kindref="member">sysPasswd</ref>(</highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*passwd)</highlight></codeline> <codeline lineno="114"><highlight class="normal">{</highlight></codeline> <codeline lineno="115"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="kprint_8h_1b2761bdf0cca73ad0fb5880895210cd8" kindref="member">kprintf</ref>(</highlight><highlight class="stringliteral">"changing<sp/>user<sp/>password<sp/>for<sp/>user<sp/>%d\n"</highlight><highlight class="normal">,<sp/><ref refid="sched_8h_154397bfe18d5da4d50ff03b15f540858" kindref="member">_current</ref>-><ref refid="structtaskStruct_11f9e02ebf24ff1cd76fab75e4c6b0fe1" kindref="member">uid</ref>);</highlight></codeline> <codeline lineno="116"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal">;</highlight></codeline> <codeline lineno="117"><highlight class="normal">}</highlight></codeline> <codeline lineno="118"><highlight class="normal"></highlight></codeline> <codeline lineno="119" refid="syscall_8c_15242d291fc024663a9035376f70a9938" refkind="member"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="syscalls_8h_15242d291fc024663a9035376f70a9938" kindref="member">sysAddModule</ref>()</highlight></codeline> <codeline lineno="120"><highlight class="normal">{</highlight></codeline> <codeline lineno="121"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal">;</highlight></codeline> <codeline lineno="122"><highlight class="normal">}</highlight></codeline> <codeline lineno="123"><highlight class="normal"></highlight></codeline> <codeline lineno="124" refid="syscall_8c_115cbe3f603b53d632faf25bce7f0a7ce" refkind="member"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="syscalls_8h_115cbe3f603b53d632faf25bce7f0a7ce" kindref="member">sysRmModule</ref>()</highlight></codeline> <codeline lineno="125"><highlight class="normal">{</highlight></codeline> <codeline lineno="126"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal">;</highlight></codeline> <codeline lineno="127"><highlight class="normal">}</highlight></codeline> <codeline lineno="128"><highlight class="normal"></highlight></codeline> <codeline lineno="129" refid="syscall_8c_1850d08e73e21c01850eea87fbe334fb6" refkind="member"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="syscalls_8h_14fb278cb4dd09b77ba260d04f2a41456" kindref="member">sysGetpid</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>*pid)</highlight></codeline> <codeline lineno="130"><highlight class="normal">{</highlight></codeline> <codeline lineno="131"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(pid)</highlight></codeline> <codeline lineno="132"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*pid<sp/>=<sp/><ref refid="sched_8h_154397bfe18d5da4d50ff03b15f540858" kindref="member">_current</ref>-><ref refid="structtaskStruct_130966587a60db6b40c8be6c387e11d81" kindref="member">id</ref>;</highlight></codeline> <codeline lineno="133"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal">;</highlight></codeline> <codeline lineno="134"><highlight class="normal">}</highlight></codeline> <codeline lineno="135"><highlight class="normal"></highlight></codeline> <codeline lineno="136" refid="syscall_8c_120b15028f242e382e441fff69880b55b" refkind="member"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="syscalls_8h_180fc8211f2e3bc35fdde3224f764cd33" kindref="member">sysGetUid</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>*uid)<sp/>{</highlight></codeline> <codeline lineno="137"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(uid)</highlight></codeline> <codeline lineno="138"><highlight class="normal"><sp/><sp/><sp/><sp/>*uid<sp/>=<sp/><ref refid="sched_8h_154397bfe18d5da4d50ff03b15f540858" kindref="member">_current</ref>-><ref refid="structtaskStruct_11f9e02ebf24ff1cd76fab75e4c6b0fe1" kindref="member">uid</ref>;</highlight></codeline> <codeline lineno="139"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal">;</highlight></codeline> <codeline lineno="140"><highlight class="normal"><sp/><sp/>}</highlight></codeline> <codeline lineno="141"><highlight class="normal"></highlight></codeline> <codeline lineno="142" refid="syscall_8c_1e96a621ca025dd8af6bc3c8288cc0cb7" refkind="member"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="syscalls_8h_12de82ca63c0a95cc80cb77693a87d2dc" kindref="member">sysGetGid</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>*gid)<sp/>{</highlight></codeline> <codeline lineno="143"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(gid)</highlight></codeline> <codeline lineno="144"><highlight class="normal"><sp/><sp/><sp/><sp/>*gid<sp/>=<sp/><ref refid="sched_8h_154397bfe18d5da4d50ff03b15f540858" kindref="member">_current</ref>-><ref refid="structtaskStruct_13cf9920106f9b0d96dff475faf7aa0d6" kindref="member">gid</ref>;</highlight></codeline> <codeline lineno="145"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal">;</highlight></codeline> <codeline lineno="146"><highlight class="normal"><sp/><sp/>}</highlight></codeline> <codeline lineno="147"><highlight class="normal"></highlight></codeline> <codeline lineno="148" refid="syscall_8c_1201b5066c18eb41f32293f2f0338264b" refkind="member"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="syscalls_8h_1856c89e41713c0b568a4909c9f82c34c" kindref="member">sysSetUid</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>uid,</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>*<ref refid="fdc_8c_1e2746d1bf47d4f690105d083b966fa82" kindref="member">status</ref>)<sp/>{</highlight></codeline> <codeline lineno="149"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(<ref refid="sched_8h_154397bfe18d5da4d50ff03b15f540858" kindref="member">_current</ref>-><ref refid="structtaskStruct_11f9e02ebf24ff1cd76fab75e4c6b0fe1" kindref="member">uid</ref><sp/>==<sp/>0x0)<sp/>{</highlight></codeline> <codeline lineno="150"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="sched_8h_154397bfe18d5da4d50ff03b15f540858" kindref="member">_current</ref>-><ref refid="structtaskStruct_11f9e02ebf24ff1cd76fab75e4c6b0fe1" kindref="member">uid</ref><sp/>=<sp/>uid;</highlight></codeline> <codeline lineno="151"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(status)</highlight></codeline> <codeline lineno="152"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>*status<sp/>=<sp/>0x0;</highlight></codeline> <codeline lineno="153"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline> <codeline lineno="154"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/>{</highlight></codeline> <codeline lineno="155"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(status)</highlight></codeline> <codeline lineno="156"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>*status<sp/>=<sp/>1;</highlight></codeline> <codeline lineno="157"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline> <codeline lineno="158"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal">;</highlight></codeline> <codeline lineno="159"><highlight class="normal"><sp/><sp/>}</highlight></codeline> <codeline lineno="160"><highlight class="normal"></highlight></codeline> <codeline lineno="161" refid="syscall_8c_1c21d2c80c103093157c7929814b23265" refkind="member"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="syscalls_8h_16535c97d0fce8b2bb3dec26e7bfa4833" kindref="member">sysSetGid</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>gid,</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>*<ref refid="fdc_8c_1e2746d1bf47d4f690105d083b966fa82" kindref="member">status</ref>)<sp/>{</highlight></codeline> <codeline lineno="162"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(<ref refid="sched_8h_154397bfe18d5da4d50ff03b15f540858" kindref="member">_current</ref>-><ref refid="structtaskStruct_13cf9920106f9b0d96dff475faf7aa0d6" kindref="member">gid</ref><sp/>==<sp/>0x0)<sp/>{</highlight></codeline> <codeline lineno="163"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="sched_8h_154397bfe18d5da4d50ff03b15f540858" kindref="member">_current</ref>-><ref refid="structtaskStruct_13cf9920106f9b0d96dff475faf7aa0d6" kindref="member">gid</ref><sp/>=<sp/>gid;</highlight></codeline> <codeline lineno="164"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(status)</highlight></codeline> <codeline lineno="165"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>*status<sp/>=<sp/>0x0;</highlight></codeline> <codeline lineno="166"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline> <codeline lineno="167"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/>{</highlight></codeline> <codeline lineno="168"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(status)</highlight></codeline> <codeline lineno="169"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>*status<sp/>=<sp/>1;</highlight></codeline> <codeline lineno="170"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline> <codeline lineno="171"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal">;</highlight></codeline> <codeline lineno="172"><highlight class="normal"><sp/><sp/>}<sp/><sp/></highlight></codeline> <codeline lineno="173"><highlight class="normal"></highlight></codeline> <codeline lineno="174" refid="syscall_8c_1fe946867553f08182c48bb1dac56f1ca" refkind="member"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="syscalls_8h_1eebd2b785b9e3499937a27b83d54adb3" kindref="member">sysExit</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><ref refid="fdc_8c_1e2746d1bf47d4f690105d083b966fa82" kindref="member">status</ref>)</highlight></codeline> <codeline lineno="175"><highlight class="normal">{</highlight></codeline> <codeline lineno="176"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="endtask_8h_1152c1859ada097cc21071f471bfa2e67" kindref="member">endTask</ref>(<ref refid="sched_8h_154397bfe18d5da4d50ff03b15f540858" kindref="member">_current</ref>-><ref refid="structtaskStruct_130966587a60db6b40c8be6c387e11d81" kindref="member">id</ref>);</highlight></codeline> <codeline lineno="177"><highlight class="normal">}</highlight></codeline> <codeline lineno="178"><highlight class="normal"></highlight></codeline> <codeline lineno="179" refid="syscall_8c_1618ade9098959166434c56fedf05f71a" refkind="member"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="syscalls_8h_1174e0378ada12f961fadf4e4bce0e985" kindref="member">sysCheckPid</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>pid,</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>*ptr)</highlight></codeline> <codeline lineno="180"><highlight class="normal">{</highlight></codeline> <codeline lineno="181"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structtaskStruct" kindref="compound">kTask_t</ref><sp/>*tmpTask<sp/>=<sp/><ref refid="sched_8h_19cf37ade4c1f6184b33014ac2015e8ed" kindref="member">schedFindTask</ref>(pid);</highlight></codeline> <codeline lineno="182"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>((tmpTask<sp/>!=<sp/>0x0)<sp/>&&<sp/>(ptr<sp/>!=<sp/>0x0))</highlight></codeline> <codeline lineno="183"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*ptr<sp/>=<sp/>tmpTask-><ref refid="structtaskStruct_1b085a40e09975d9ebf55b393f9549710" kindref="member">state</ref>;</highlight></codeline> <codeline lineno="184"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="185"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*ptr<sp/>=<sp/>0x0;</highlight></codeline> <codeline lineno="186"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal">;</highlight></codeline> <codeline lineno="187"><highlight class="normal">}</highlight></codeline> <codeline lineno="188"><highlight class="normal"></highlight></codeline> <codeline lineno="189"><highlight class="normal"></highlight><highlight class="comment">/************************************************************************</highlight></codeline> <codeline lineno="190"><highlight class="comment"></highlight></codeline> <codeline lineno="191"><highlight class="comment">Function:<sp/>void<sp/>sysGetFreePage();</highlight></codeline> <codeline lineno="192"><highlight class="comment">Description:<sp/>Allocs<sp/>A<sp/>Page<sp/>To<sp/>The<sp/>Users<sp/>VM<sp/>Space</highlight></codeline> <codeline lineno="193"><highlight class="comment">Notes:</highlight></codeline> <codeline lineno="194"><highlight class="comment"></highlight></codeline> <codeline lineno="195"><highlight class="comment">************************************************************************/</highlight><highlight class="normal"><sp/><sp/></highlight></codeline> <codeline lineno="196" refid="syscall_8c_11db3bfbad534c2fa75c02646fcf80a90" refkind="member"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="syscalls_8h_133eb6110c8584f43637d317a979d3d48" kindref="member">sysGetFreePage</ref>(</highlight><highlight class="keywordtype">long</highlight><highlight class="normal"><sp/>*ptr,</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>count,</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>type)<sp/>{</highlight></codeline> <codeline lineno="197"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(ptr)<sp/>{</highlight></codeline> <codeline lineno="198"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(type<sp/>==<sp/>2)</highlight></codeline> <codeline lineno="199"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>*ptr<sp/>=<sp/>(long)<sp/><ref refid="paging_8h_14b324672c4b25064eb8db1e3419337b1" kindref="member">vmmGetFreeVirtualPage</ref>(<ref refid="sched_8h_154397bfe18d5da4d50ff03b15f540858" kindref="member">_current</ref>-><ref refid="structtaskStruct_130966587a60db6b40c8be6c387e11d81" kindref="member">id</ref>,count,<ref refid="paging_8h_14ede4e8b3e149ef94678acdae7de0e18" kindref="member">VM_THRD</ref>);</highlight></codeline> <codeline lineno="200"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="201"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>*ptr<sp/>=<sp/>(long)<sp/><ref refid="paging_8h_14b324672c4b25064eb8db1e3419337b1" kindref="member">vmmGetFreeVirtualPage</ref>(<ref refid="sched_8h_154397bfe18d5da4d50ff03b15f540858" kindref="member">_current</ref>-><ref refid="structtaskStruct_130966587a60db6b40c8be6c387e11d81" kindref="member">id</ref>,count,<ref refid="paging_8h_159a518704bf2f0b56603476bcb1eebbf" kindref="member">VM_TASK</ref>);</highlight></codeline> <codeline lineno="202"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline> <codeline lineno="203"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal">;</highlight></codeline> <codeline lineno="204"><highlight class="normal"><sp/><sp/>}</highlight></codeline> <codeline lineno="205"><highlight class="normal"></highlight></codeline> <codeline lineno="206" refid="syscall_8c_18bdd527e2c5a0fe7ea30685196ce3323" refkind="member"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="syscalls_8h_1d3fba35894d9b2e491af366070a98856" kindref="member">sysGetDrives</ref>(<ref refid="types_8h_15847ea0262a5aa61eee48cbe95544a78" kindref="member">uInt32</ref><sp/>*ptr)</highlight></codeline> <codeline lineno="207"><highlight class="normal">{</highlight></codeline> <codeline lineno="208"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(ptr)</highlight></codeline> <codeline lineno="209"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*ptr<sp/>=<sp/>0x0;</highlight><highlight class="comment">//(uInt32)devices;</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="210"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal">;</highlight></codeline> <codeline lineno="211"><highlight class="normal">}</highlight></codeline> <codeline lineno="212"><highlight class="normal"></highlight></codeline> <codeline lineno="213" refid="syscall_8c_17c8a6dad2e6968015b21357c795bccc0" refkind="member"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="syscalls_8h_16eb6cfba94f3cd7edc2d20fb97f63aca" kindref="member">sysGetUptime</ref>(<ref refid="types_8h_15847ea0262a5aa61eee48cbe95544a78" kindref="member">uInt32</ref><sp/>*ptr)</highlight></codeline> <codeline lineno="214"><highlight class="normal">{</highlight></codeline> <codeline lineno="215"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(ptr)</highlight></codeline> <codeline lineno="216"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*ptr<sp/>=<sp/><ref refid="vitals_8h_167aae71be472453526fc1a0bfbf80280" kindref="member">systemVitals</ref>-><ref refid="structvitalsStruct_14f8bcc103c132edae3eb7ed47e6ee024" kindref="member">sysTicks</ref>;</highlight></codeline> <codeline lineno="217"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal">;</highlight></codeline> <codeline lineno="218"><highlight class="normal">}</highlight></codeline> <codeline lineno="219"><highlight class="normal"></highlight></codeline> <codeline lineno="220" refid="syscall_8c_1c0997ac7ac4b4bdb6f8565f2b7f0c74a" refkind="member"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="syscalls_8h_155aa396fbf042df1eedcf30f368b243a" kindref="member">sysGetTime</ref>(<ref refid="types_8h_15847ea0262a5aa61eee48cbe95544a78" kindref="member">uInt32</ref><sp/>*ptr)</highlight></codeline> <codeline lineno="221"><highlight class="normal">{</highlight></codeline> <codeline lineno="222"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(ptr)</highlight></codeline> <codeline lineno="223"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*ptr<sp/>=<sp/><ref refid="vitals_8h_167aae71be472453526fc1a0bfbf80280" kindref="member">systemVitals</ref>-><ref refid="structvitalsStruct_1d4f37dedcce6dcf9d87e1f01221c5b71" kindref="member">sysUptime</ref><sp/>+<sp/><ref refid="vitals_8h_167aae71be472453526fc1a0bfbf80280" kindref="member">systemVitals</ref>-><ref refid="structvitalsStruct_1c407388b447996ea3bad97aebbb5e1a6" kindref="member">timeStart</ref>;</highlight></codeline> <codeline lineno="224"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal">;</highlight></codeline> <codeline lineno="225"><highlight class="normal">}</highlight></codeline> <codeline lineno="226"><highlight class="normal"></highlight></codeline> <codeline lineno="227"><highlight class="normal"></highlight></codeline> <codeline lineno="228" refid="syscall_8c_1a1858601da45332a2cd7d43bb3bcb80d" refkind="member"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="syscalls_8h_1346de7f91280ba7856d11e1ae095cbe2" kindref="member">sysGetCwd</ref>(</highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*data,</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>len)</highlight></codeline> <codeline lineno="229"><highlight class="normal">{</highlight></codeline> <codeline lineno="230"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(data)</highlight></codeline> <codeline lineno="231"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="lib_2string_8h_1c38cd16373d98782e1465bd3d5aba470" kindref="member">sprintf</ref>(data,</highlight><highlight class="stringliteral">"%s"</highlight><highlight class="normal">,<sp/><ref refid="sched_8h_154397bfe18d5da4d50ff03b15f540858" kindref="member">_current</ref>-><ref refid="structtaskStruct_10933c70230d4ac8bc9953640c979f8d7" kindref="member">oInfo</ref>.<ref refid="structosInfo_1e9411eaa7df66cd0148237248848bbdf" kindref="member">cwd</ref>);</highlight></codeline> <codeline lineno="232"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal">;</highlight></codeline> <codeline lineno="233"><highlight class="normal">}</highlight></codeline> <codeline lineno="234"><highlight class="normal"></highlight></codeline> <codeline lineno="235" refid="syscall_8c_14fe050b57d00373f9f9810f1934244e7" refkind="member"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="syscalls_8h_14fe050b57d00373f9f9810f1934244e7" kindref="member">sysSchedYield</ref>()<sp/>{</highlight></codeline> <codeline lineno="236"><highlight class="normal"><sp/><sp/><ref refid="sched_8h_108933fe6d593a1c78b9080359f15a0b7" kindref="member">sched_yield</ref>();</highlight></codeline> <codeline lineno="237"><highlight class="normal"><sp/><sp/>}</highlight></codeline> <codeline lineno="238"><highlight class="normal"></highlight></codeline> <codeline lineno="239" refid="syscall_8c_1fb14ed929bdc2c68714da3685e650c6c" refkind="member"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="syscalls_8h_1fb14ed929bdc2c68714da3685e650c6c" kindref="member">sysStartSDE</ref>()<sp/>{</highlight></codeline> <codeline lineno="240"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>i<sp/>=<sp/>0x0;</highlight></codeline> <codeline lineno="241"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(i=0;i<1400;i++)<sp/>{</highlight></codeline> <codeline lineno="242"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">asm</highlight><highlight class="normal">(</highlight><highlight class="stringliteral">"hlt"</highlight><highlight class="normal">);</highlight></codeline> <codeline lineno="243"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline> <codeline lineno="244"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//execThread(sdeThread,(uInt32)(kmalloc(0x2000)+0x2000),0x0);</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="245"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(i=0;i<1400;i++)<sp/>{</highlight></codeline> <codeline lineno="246"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">asm</highlight><highlight class="normal">(</highlight><highlight class="stringliteral">"hlt"</highlight><highlight class="normal">);</highlight></codeline> <codeline lineno="247"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline> <codeline lineno="248"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal">;</highlight></codeline> <codeline lineno="249"><highlight class="normal"><sp/><sp/>}</highlight></codeline> <codeline lineno="250"><highlight class="normal"></highlight></codeline> <codeline lineno="251" refid="syscall_8c_198fb463aa3c38a140b47e594bf9603d6" refkind="member"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="syscall_8h_19e2ae445f23217d134a21e636a16b101" kindref="member">invalidCall</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>sys_call)<sp/>{</highlight></codeline> <codeline lineno="252"><highlight class="normal"><sp/><sp/><ref refid="kprint_8h_1b2761bdf0cca73ad0fb5880895210cd8" kindref="member">kprintf</ref>(</highlight><highlight class="stringliteral">"Invalid<sp/>System<sp/>Call<sp/>#[%i]\n"</highlight><highlight class="normal">,sys_call);</highlight></codeline> <codeline lineno="253"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal">;</highlight></codeline> <codeline lineno="254"><highlight class="normal"><sp/><sp/>}</highlight></codeline> <codeline lineno="255"><highlight class="normal"></highlight></codeline> <codeline lineno="256"><highlight class="normal"></highlight><highlight class="comment">/***</highlight></codeline> <codeline lineno="257"><highlight class="comment"><sp/>END</highlight></codeline> <codeline lineno="258"><highlight class="comment"><sp/>***/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="259"><highlight class="normal"></highlight></codeline> </programlisting> <location file="/usr/home/reddawg/source/ubix2/src/sys/kernel/syscall.c"/> </compounddef> </doxygen>