diff options
author | Alexis211 <alexis211@gmail.com> | 2009-12-09 15:48:39 +0100 |
---|---|---|
committer | Alexis211 <alexis211@gmail.com> | 2009-12-09 15:48:39 +0100 |
commit | 7471d467fed21671f2f4549446249de7e3a7d578 (patch) | |
tree | fd643abf459e2d8dae9957c18a812ef6c423f587 /Source/Library/Interface | |
parent | 7c6d20a31acfa2c7ff8c6cec42257af0058f1b7f (diff) | |
download | Melon-7471d467fed21671f2f4549446249de7e3a7d578.tar.gz Melon-7471d467fed21671f2f4549446249de7e3a7d578.zip |
Change on memory handling, and .iface.h files documented.
Diffstat (limited to 'Source/Library/Interface')
-rw-r--r-- | Source/Library/Interface/FSNode.iface.h | 37 | ||||
-rw-r--r-- | Source/Library/Interface/File.iface.h | 18 | ||||
-rw-r--r-- | Source/Library/Interface/Process.iface.h | 34 | ||||
-rw-r--r-- | Source/Library/Interface/ReadME.txt | 19 | ||||
-rw-r--r-- | Source/Library/Interface/Sys.iface.h | 10 | ||||
-rw-r--r-- | Source/Library/Interface/Thread.iface.h | 6 | ||||
-rw-r--r-- | Source/Library/Interface/VirtualTerminal.iface.h | 31 |
7 files changed, 88 insertions, 67 deletions
diff --git a/Source/Library/Interface/FSNode.iface.h b/Source/Library/Interface/FSNode.iface.h index e6c45d3..533b780 100644 --- a/Source/Library/Interface/FSNode.iface.h +++ b/Source/Library/Interface/FSNode.iface.h @@ -19,23 +19,24 @@ enum { #define FNIF_OBJTYPE 0x14 //S : static, GET : get, R : root, FN : fsnode -#define FNIF_SGETRFN 0 -#define FNIF_SGETCWD 1 //Get current working directory -#define FNIF_SFIND 2 //Find a node following a path from a node -#define FNIF_SMKDIR 3 //Makes a directory - -#define FNIF_GETNAME 0x10 -#define FNIF_TYPE 0x11 -#define FNIF_GETPARENT 0x12 -#define FNIF_GETLENGTH 0x13 -#define FNIF_GETUID 0x14 -#define FNIF_GETGID 0x15 -#define FNIF_GETPERM 0x16 -#define FNIF_GETPATH 0x17 -#define FNIF_SETCWD 0x18 //Sets node as current working directory -#define FNIF_REMOVE 0x19 - -#define FNIF_GETIDXCHILD 0x20 //Get child node from index -#define FNIF_GETNAMECHILD 0x21 //Get child node from name + +#define FNIF_SGETRFN 0 //Get root filesystem node (R) | no arguments +#define FNIF_SGETCWD 1 //Get current working directory (R) | no arguments +#define FNIF_SFIND 2 //Find a node following a path from a node (R) | S:filename, R:start_node +#define FNIF_SMKDIR 3 //Makes a directory (R) | S:filename, R:start_node + +#define FNIF_GETNAME 0x10 //Get name of a node (S) | no arguments +#define FNIF_TYPE 0x11 //Get type of a node (I: NT_*) | no arguments +#define FNIF_GETPARENT 0x12 //Get parent of a node (R) | no arguments +#define FNIF_GETLENGTH 0x13 //Get length of contents of a node (I) | no arguments +#define FNIF_GETUID 0x14 //Get UID for a node (i) | no arguments +#define FNIF_GETGID 0x15 //Get GID for a node (i) | no arguments +#define FNIF_GETPERM 0x16 //Get permissions for a node (i) | no arguments +#define FNIF_GETPATH 0x17 //Get absolute path to node (S) | no arguments +#define FNIF_SETCWD 0x18 //Sets node as current working directory (v) | no arguments +#define FNIF_REMOVE 0x19 //Remove node (b) | no arguments + +#define FNIF_GETIDXCHILD 0x20 //Get child node from index (R) | i:index +#define FNIF_GETNAMECHILD 0x21 //Get child node from name (R) | S:name #endif diff --git a/Source/Library/Interface/File.iface.h b/Source/Library/Interface/File.iface.h index e1030b8..bb0fd4b 100644 --- a/Source/Library/Interface/File.iface.h +++ b/Source/Library/Interface/File.iface.h @@ -17,17 +17,17 @@ enum { #define FLIF_OBJTYPE 0x13 -#define FLIF_SOPEN 0x01 +#define FLIF_SOPEN 0x01 //Open a file (R:ressource id of opened file) | S:filename, i:mode (FM_*), r:start_node -#define FLIF_CLOSE 0x05 -#define FLIF_VALID 0x06 +#define FLIF_CLOSE 0x05 //Close a file (v) | no arguments +#define FLIF_VALID 0x06 //True if a file is valid (b) | no arguments -#define FLIF_READ 0x0A -#define FLIF_WRITE 0x0B +#define FLIF_READ 0x0A //Read from a file (i:number of bytes read) | i:length, *:data +#define FLIF_WRITE 0x0B //Write to a file (b) | i:length, *:data -#define FLIF_SEEK 0x10 -#define FLIF_POSITION 0x11 -#define FLIF_LENGTH 0x12 -#define FLIF_EOF 0x13 +#define FLIF_SEEK 0x10 //Seek to a position in a file (b) | j:position, J:position, i:mode (SM_*) +#define FLIF_POSITION 0x11 //Get position in a file (I) | no arguments +#define FLIF_LENGTH 0x12 //Get length of a file (I) | no arguments +#define FLIF_EOF 0x13 //Are we at end of file (b) | no arguments #endif diff --git a/Source/Library/Interface/Process.iface.h b/Source/Library/Interface/Process.iface.h index cdd6e47..4d3217f 100644 --- a/Source/Library/Interface/Process.iface.h +++ b/Source/Library/Interface/Process.iface.h @@ -6,27 +6,27 @@ #define PRIF_OBJTYPE 0x20 //S = static, GET = get, C = current, PR = process -#define PRIF_SGETCPR 0 -#define PRIF_SRUN 1 -#define PRIF_SWAIT 2 +#define PRIF_SGETCPR 0 //Get current process (R) | no arguments +#define PRIF_SRUN 1 //Run a new process (R) | S:executable_name +#define PRIF_SWAIT 2 //Wait for a process to end (i:return value) | R:process to wait for -#define PRIF_EXIT 0x01 -#define PRIF_ALLOCPAGE 0x02 -#define PRIF_FREEPAGE 0x03 -#define PRIF_GETPID 0x04 -#define PRIF_GETPPID 0x05 +#define PRIF_EXIT 0x01 //Exit from current process (v) | no arguments +#define PRIF_ALLOCPAGES 0x02 //Allocate frames for pages (v) | i:position, i:count +#define PRIF_FREEPAGES 0x03 //Free frames for pages (v) | i:position, i:count +#define PRIF_GETPID 0x04 //Get PID of a process (i) | no arguments +#define PRIF_GETPPID 0x05 //Get PPID of a process (i) | no arguments -#define PRIF_ARGC 0x10 -#define PRIF_ARGV 0x11 +#define PRIF_ARGC 0x10 //Get argument count for a process (i) | no arguments +#define PRIF_ARGV 0x11 //Get argument value for a process (S) | i:argument_index -#define PRIF_START 0x20 -#define PRIF_AUTODELETE 0x21 -#define PRIF_PUSHARG 0x28 -#define PRIF_SETOUTVT 0x29 -#define PRIF_SETINVT 0x30 +#define PRIF_START 0x20 //Start execution of a child process (v) | no arguments +#define PRIF_AUTODELETE 0x21 //Set a child to auto-delete itself when it ends (v) | b:does it autodelete? +#define PRIF_PUSHARG 0x28 //Push an argument to a child process (v) | S:argument +#define PRIF_SETOUTVT 0x29 //Set output VirtualTerminal for a child process (v) | r:virtual terminal +#define PRIF_SETINVT 0x30 //Set input VirtualTerminal for a child process (v) | r:virtual terminal //Authenticate with password/without password (being in group root) -#define PRIF_AUTHPW 0x40 -#define PRIF_AUTHNOPW 0x41 +#define PRIF_AUTHPW 0x40 //Authenticate current process to a user (b:succeeded?) | S:username, S:password +#define PRIF_AUTHNOPW 0x41 //Authenticate to a user without password, root only (b:succeeded?) | S:username #endif diff --git a/Source/Library/Interface/ReadME.txt b/Source/Library/Interface/ReadME.txt new file mode 100644 index 0000000..356dd4a --- /dev/null +++ b/Source/Library/Interface/ReadME.txt @@ -0,0 +1,19 @@ +Descriptions of functions are defined in the .iface.h files. + +The ????_OBJTYPE defines represent the class identifier for that class. +The ????_S* defines are IDs for function syscalls : they do not apply to an object +All the other defines are IDs for method syscalls, that apply to one objec of that type + +The description of a function/method is formatted as follows : +//<role of function/method> (<return type>[:<what is returned>]) | [<arg type>:<arg name> [, ...] ] +The return type and the arguments type can be one of : +- v : void (for return type) +- b : bool (0 = false, anything = true) +- c : a character +- S : a pointer to a String object +- i : an integer +- I : a pointer to a u64int +- j/J : lower/higher half of a u64int +- r : an identifier for any ressource object +- R : an identifier for a ressource object, but of same class +- * : a pointer to some space (u8int*) diff --git a/Source/Library/Interface/Sys.iface.h b/Source/Library/Interface/Sys.iface.h index bebab41..072fe7b 100644 --- a/Source/Library/Interface/Sys.iface.h +++ b/Source/Library/Interface/Sys.iface.h @@ -3,10 +3,10 @@ #define SYIF_IFID 0xFF -#define SYIF_HALT 0x1 -#define SYIF_REBOOT 0x2 -#define SYIF_UPTIME 0x3 -#define SYIF_TOTALRAM 0x4 -#define SYIF_FREERAM 0x5 +#define SYIF_HALT 0x1 //Halt system, root only (v) | no arguments +#define SYIF_REBOOT 0x2 //Reboot system, root only (v) | no arguments +#define SYIF_UPTIME 0x3 //Get uptime (i) | no arguments +#define SYIF_TOTALRAM 0x4 //Get toal amount of RAM in Ko (i) | no argmuents +#define SYIF_FREERAM 0x5 //Get free amount of RAM in Ko (i) | no arguments #endif diff --git a/Source/Library/Interface/Thread.iface.h b/Source/Library/Interface/Thread.iface.h index 0dac2e1..68b0c58 100644 --- a/Source/Library/Interface/Thread.iface.h +++ b/Source/Library/Interface/Thread.iface.h @@ -4,9 +4,9 @@ #define THIF_OBJTYPE 0x21 //S = static, GET = get, C = current, TH = thread -#define THIF_SGETCTH 0 +#define THIF_SGETCTH 0 //Get current thread (R) | no arguments -#define THIF_SLEEP 0x01 -#define THIF_FINISH 0x02 +#define THIF_SLEEP 0x01 //Make thread sleep (v) | i:time in msecs +#define THIF_FINISH 0x02 //Make thread finish (v) | i:return_value #endif diff --git a/Source/Library/Interface/VirtualTerminal.iface.h b/Source/Library/Interface/VirtualTerminal.iface.h index c7e75e8..e0f59d5 100644 --- a/Source/Library/Interface/VirtualTerminal.iface.h +++ b/Source/Library/Interface/VirtualTerminal.iface.h @@ -4,24 +4,25 @@ #define VTIF_OBJTYPE 0x10 //S = static, GET = get, PR = process, IN/OUT : in/out, VT = virtualterminal -#define VTIF_SGETPRINVT 6 -#define VTIF_SGETPROUTVT 7 +#define VTIF_SGETPRINVT 6 //Get process input virtual terminal (R) | no arguments +#define VTIF_SGETPROUTVT 7 //Get process output virtual terminal (R) | no arguments -#define VTIF_PUT 0x01 -#define VTIF_WRITEHEX 0x02 -#define VTIF_WRITEDEC 0x03 -#define VTIF_WRITE 0x04 +#define VTIF_PUT 0x01 //Put one character to virtual terminal (v) | c:character +#define VTIF_WRITEHEX 0x02 //Write a number in hexadecimal (v) | i:number +#define VTIF_WRITEDEC 0x03 //Write a number in decimal (v) | j:number, J:number +#define VTIF_WRITE 0x04 //Write a string (v) | S:string -#define VTIF_READLINE 0x05 -#define VTIF_GETKEYPRESS 0x06 //Takes two flags : 1<<0 = show, 1<<1 = block +#define VTIF_READLINE 0x05 //Reads a line from virtual terminal (S) : b:show? +#define VTIF_GETKEYPRESS 0x06 //Get a keypress from virtual terminal (*) : i:flags + //Takes two flags : 1<<0 = show, 1<<1 = block -#define VTIF_SETCOLOR 0x10 -#define VTIF_SETCSRLINE 0x11 -#define VTIF_SETCSRCOL 0x12 -#define VTIF_ISBOXED 0x13 +#define VTIF_SETCOLOR 0x10 //Set text color (v) | i:foreground_color, i:backgrond_color +#define VTIF_SETCSRLINE 0x11 //Set cursor line (v) | i:line +#define VTIF_SETCSRCOL 0x12 //Set cursor column (v) | i:column +#define VTIF_ISBOXED 0x13 //Is VT boxed ? (b) | no arguments -#define VTIF_GETHEIGHT 0x1A -#define VTIF_GETWIDTH 0x1B -#define VTIF_LOCATE 0x1C //Takes line, col and sets cursor position +#define VTIF_GETHEIGHT 0x1A //Get VT width (i) | no arguments +#define VTIF_GETWIDTH 0x1B //Get VT height (i) | no arguments +#define VTIF_LOCATE 0x1C //Sets cursor position (v) | i:line, i:column #endif |