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

📄 syscall.hhf

📁 High Level assembly language(HLA)软件
💻 HHF
📖 第 1 页 / 共 2 页
字号:
#if( !@defined( syscall_hhf ))?syscall_hhf := true;#includeonce( "os/dirent.hhf" )#includeonce( "os/sysctl.hhf" )#includeonce( "os/sched.hhf" )#includeonce( "os/utsname.hhf" )#includeonce( "os/kernel.hhf" )#includeonce( "os/poll.hhf" )#includeonce( "os/msg.hhf" )#includeonce( "os/shm.hhf" )#includeonce( "os/socket.hhf" )namespace linux; @fast;const	// Constants for the nfsctl calls:		nfsctl_svc			:= 0;	nfsctl_addclient	:= 1;	nfsctl_delclient	:= 2;	nfsctl_export		:= 3;	nfsctl_unexport		:= 4;	nfsctl_ugidupdate	:= 5;	nfsctl_getfh		:= 6;	  // Linux system call opcodes:			sys_exit		:= 1;	sys_fork		:= 2;	sys_read		:= 3;	sys_write		:= 4;	sys_open		:= 5;	sys_close		:= 6;	sys_waitpid		:= 7;	sys_creat		:= 8;	sys_link		:= 9;	sys_unlink		:= 10;	sys_execve		:= 11;	sys_chdir		:= 12;	sys_time		:= 13;	sys_mknod		:= 14;	sys_chmod		:= 15;	sys_lchown		:= 16;	old_stat		:= 18;	sys_lseek		:= 19;	sys_getpid		:= 20;	sys_mount		:= 21;	sys_oldmount	:= 22;	sys_setuid		:= 23;	sys_getuid		:= 24;	sys_stime		:= 25;	sys_ptrace		:= 26;	sys_alarm		:= 27;	old_fstat		:= 28;	sys_pause		:= 29;	sys_utime		:= 30;	sys_access		:= 33;	sys_nice		:= 34;	sys_sync		:= 36;	sys_kill		:= 37;	sys_rename		:= 38;	sys_mkdir		:= 39;	sys_rmdir		:= 40;	sys_dup			:= 41;	sys_pipe		:= 42;	sys_times		:= 43;	sys_brk			:= 45;	sys_setgid		:= 46;	sys_getgid		:= 47;	sys_signal		:= 48;	sys_geteuid		:= 49;	sys_getegid		:= 50;	sys_acct		:= 51;	sys_umount		:= 52;	sys_ioctl		:= 54;	sys_fcntl		:= 55;	sys_setpgid		:= 57;	sys_olduname	:= 59;	sys_umask		:= 60;	sys_chroot		:= 61;	sys_ustat		:= 62;	sys_dup2		:= 63;	sys_getppid		:= 64;	sys_getpgrp		:= 65;	sys_setsid		:= 66;	sys_sigaction	:= 67;	sys_sgetmask	:= 68;	sys_ssetmask	:= 69;	sys_setreuid	:= 70;	sys_setregid	:= 71;	sys_sigsuspend	:= 72;	sys_sigpending	:= 73;	sys_sethostname	:= 74;	sys_setrlimit	:= 75;	sys_getrlimit	:= 76;	sys_getrusage	:= 77;	sys_gettimeofday:= 78;	sys_settimeofday:= 79;	sys_getgroups	:= 80;	sys_setgroups	:= 81;	sys_old_select	:= 82;	sys_symlink		:= 83;	old_lstat		:= 84;	sys_readlink	:= 85;	sys_uselib		:= 86;	sys_swapon		:= 87;	sys_reboot		:= 88;	old_readdir		:= 89;	sys_mmap		:= 90;	sys_munmap		:= 91;	sys_truncate	:= 92;	sys_ftruncate	:= 93;	sys_fchmod		:= 94;	sys_fchown		:= 95;	sys_getpriority	:= 96;	sys_setpriority	:= 97;	sys_statfs		:= 98;	sys_fstatfs		:= 100;	sys_ioperm		:= 101;	sys_socketcall	:= 102;	sys_syslog		:= 103;	sys_setitimer	:= 104;	sys_getitimer	:= 105;	sys_stat		:= 106;	sys_lstat		:= 107;	sys_fstat		:= 108;	old_uname		:= 109;	sys_iopl		:= 110;	sys_vhangup		:= 111;	sys_idle		:= 112;	sys_vm86old		:= 113;	sys_wait4		:= 114;	sys_swapoff		:= 115;	sys_sysinfo		:= 116;	sys_ipc			:= 117;	sys_fsync		:= 118;	sys_sigreturn	:= 119;	sys_clone		:= 120;	sys_setdomainname := 121;	sys_uname		:= 122;	sys_modify_ldt	:= 123;	sys_adjtimex	:= 124;	sys_mprotect	:= 125;	sys_sigprocmask	:= 126;	sys_create_module := 127;	sys_init_module	:= 128;	sys_delete_module := 129;	sys_get_kernel_syms := 130;	sys_quotactl	:= 131;	sys_getpgid		:= 132;	sys_fchdir		:= 133;	sys_bdflush		:= 134;	sys_sysfs		:= 135;	sys_personality	:= 136;	sys_setfsuid	:= 138;	sys_setfsgid	:= 139;	sys_llseek		:= 140;	sys_getdents	:= 141;	sys_select		:= 142;	sys_flock		:= 143;	sys_msync		:= 144;	sys_readv		:= 145;	sys_writev		:= 146;	sys_getsid		:= 147;	sys_fdatasync	:= 148;	sys_sysctl		:= 149;	sys_mlock		:= 150;	sys_munlock		:= 151;	sys_mlockall	:= 152;	sys_munlockall	:= 153;	sys_sched_setparam := 154;	sys_sched_getparam := 155;	sys_sched_setscheduler := 156;	sys_sched_getscheduler := 157;	sys_sched_yield	:= 158;	sys_sched_get_priority_max := 159;	sys_sched_get_priority_min := 160;	sys_sched_rr_get_interval := 161;	sys_nanosleep	:= 162;	sys_mremap		:= 163;	sys_setresuid	:= 164;	sys_getresuid	:= 165;	sys_vm86		:= 166;	sys_query_module:= 167;	sys_poll		:= 168;	sys_nfsservctl	:= 169;	sys_setresgid	:= 170;	sys_getresgid	:= 171;	sys_prctl		:= 172;	sys_rt_sigreturn:= 173;	sys_rt_sigaction:= 174;	sys_rt_sigprocmask := 175;	sys_rt_sigpending  := 176;	sys_rt_sigtimedwait:= 177;	sys_rt_sigqueueinfo:= 178;	sys_rt_sigsuspend  := 179;	sys_pread		:= 180;	sys_pwrite		:= 181;	sys_chown		:= 182;	sys_getcwd		:= 183;	sys_capget		:= 184;	sys_capset		:= 185;	sys_sigaltstack	:= 186;	sys_sendfile	:= 187;	sys_vfork		:= 190;	// Prototypes for various Linux calls.	// Note that we don't allow kernel modules (those	// that have defined "__kernel__" access to these symbols.		procedure _exit( status:int32 ); 		@external( "linux_status" );			procedure fork; 			@returns( "eax" ); 		@external( "linux_fork" );			procedure read( fd:dword; var buf:var; count:size_t );		@use eax;		@returns( "eax" );		@external( "linux_read" );		 	procedure write( fd:dword; var buf:var; count:size_t );		@use eax;		@returns( "eax" );		@external( "linux_write" );			procedure open( filename:string; flags:dword; mode:mode_t );		@returns( "eax" );		@external( "linux_open" );			procedure close( fd:dword );		@returns( "eax" );		@external( "linux_close" );			procedure waitpid( pid:pid_t; var stat_addr:dword; options:dword );		@use eax;		@returns( "eax" );		@external( "linux_waitpid" );			procedure creat( pathname:string; mode:mode_t );		@returns( "eax" );		@external( "linux_creat" );			procedure link( oldname:string; newname:string );		@returns( "eax" );		@external( "linux_link" );			procedure unlink( pathname:string );		@returns( "eax" );		@external( "linux_unlink" );			procedure execve( filename:string; var argv:var; var envp:var );		@use eax;		@returns( "eax" );		@external( "linux_execve" );			procedure chdir( filename:string );		@returns( "eax" );		@external( "linux_chdir" );			procedure time( var tloc:dword );		@use eax;		@returns( "eax" );		@external( "linux_time" );			procedure mknod( filename:string; mode:dword; dev:dev_t );		@returns( "eax" );		@external( "linux_mknod" );			procedure chmod( filename:string; mode:mode_t );		@returns( "eax" );		@external( "linux_chmod" );			procedure lchown( filename:string; user:uid_t; group:gid_t );		@returns( "eax" );		@external( "linux_lchown" );			procedure _break;		@returns( "eax" );		@external( "linux_break" );			procedure lseek( fd:dword; offset:off_t; origin:dword );		@returns( "eax" );		@external( "linux_lseek" );					procedure getpid;		@returns( "eax" );		@external( "linux_getpid" );			procedure mount	( 			dev_name	:string; 			dir_name	:string; 			theType		:string; 			new_flags	:dword; 		var data		:var 	);		@use eax;		@returns( "eax" );		@external( "linux_mount" );							procedure setuid( uid:uid_t );		@returns( "eax" );		@external( "linux_setuid" );			procedure getuid;		@returns( "eax" );		@external( "linux_getuid" );			procedure stime( var tptr:int32 );		@use eax;		@returns( "eax" );		@external( "linux_stime" );					procedure ptrace( request:dword; pid:dword; addr:dword; data:dword );		@returns( "eax" );		@external( "linux_ptrace" );			procedure alarm( seconds:uns32 );		@returns( "eax" );		@external( "linux_alarm" );			procedure pause;		@returns( "eax" );		@external( "linux_pause" );			procedure utime( filename:string; var times: utimbuf );		@use eax;		@returns( "eax" );		@external( "linux_utime" );			procedure access( pathname:string; mode:int32 );		@returns( "eax" );		@external( "linux_access" );			procedure nice( increment: int32 );		@returns( "eax" );		@external( "linux_nice" );			procedure sync;		@returns( "eax" );		@external( "linux_sync" );			procedure kill( pid:pid_t; sig:int32 );		@returns( "eax" );		@external( "linux_kill" );			procedure rename( oldpath:string; newpath:string );		@returns( "eax" );		@external( "linux_rename" );			procedure mkdir( pathname:string; mode:int32 );		@returns( "eax" );		@external( "linux_mkdir" );			procedure rmdir( pathname:string );		@returns( "eax" );		@external( "linux_rmdir" );		procedure dupfd( oldfd:dword );		@returns( "eax" );		@external( "linux_dup" );			procedure pipe( fd:dword );		@returns( "eax" );		@external( "linux_pipe" );			procedure times( var buf:tms );		@use eax;		@returns( "eax" );		@external( "linux_times" );			procedure brk( end_data_segment:dword );		@returns( "eax" );		@external( "linux_brk" );			procedure setgid( gid:gid_t );		@returns( "eax" );		@external( "linux_setgid" );			procedure getgid;		@returns( "eax" );		@external( "linux_getgid" );			procedure signal( signum:int32; sighandler:procedure( signum:int32) );		@returns( "eax" );		@external( "linux_signal" );			procedure geteuid;		@returns( "eax" );		@external( "linux_geteuid" );			procedure getegid;		@returns( "eax" );		@external( "linux_getegid" );			procedure acct( filename: string );		@returns( "eax" );		@external( "linux_acct" );			procedure umount	( 			specialfile		:string; 			dir				:string; 			filesystemtype	:string; 			mountflags		:dword; 		var data			:var	);		@use eax;		@returns( "eax" );		@external( "linux_umount" );			procedure ioctl2( d:int32;  request:int32 );		@returns( "eax" );		@external( "linux_ioctl2" );			procedure ioctl3( d:int32;  request:int32; argp:string );		@returns( "eax" );		@external( "linux_ioctl3" );			#macro ioctl( d, request, argp[] );			#if( @elements( argp ) = 0 )					linux.ioctl2( d, request )					#else					linux.ioctl3( d, request, @text( argp[0] ))					#endif			#endmacro;		procedure fcntl2( fd:dword; cmd:dword );		@returns( "eax" );		@external( "linux_fcntl2" );			procedure fcntl3( fd:dword; cmd:dword; arg:dword );		@returns( "eax" );		@external( "linux_fcntl3" );			#macro fcntl( fd, cmd, arg[] );			#if( @elements( arg ) = 0 )					fcntl2( fd, cmd )					#else					fcntl3( fd, cmd, @text( arg[0] ))					#endif			#endmacro;				procedure setpgid( pid:pid_t; pgid:pid_t );		@returns( "eax" );		@external( "linux_setpgid" );			procedure umask( mask:mode_t );		@returns( "eax" );		@external( "linux_umask" );			procedure chroot( path:string );		@returns( "eax" );		@external( "linux_chroot" );	procedure dup2( oldfd:dword; newfd:dword );		@returns( "eax" );		@external( "linux_dup2" );		procedure getppid;		@returns( "eax" );		@external( "linux_getppid" );			procedure getpgrp;		@returns( "eax" );		@external( "linux_getpgrp" );		procedure setsid;		@returns( "eax" );		@external( "linux_setsid" );		procedure sigaction	( 			signum		:int32; 		var	act			:sigaction_t; 		var oldaction	:sigaction_t 	);		@use eax;		@returns( "eax" );		@external( "linux_" );			procedure sgetmask;		@returns( "eax" );		@external( "linux_sgetmask" );			procedure ssetmask( mask:dword );		@returns( "eax" );		@external( "linux_ssetmask" );		procedure setreuid( ruid:uid_t; euid:uid_t );		@returns( "eax" );		@external( "linux_setreuid" );			procedure setregid( rgid:gid_t; egid:gid_t );		@returns( "eax" );		@external( "linux_setregid" );		procedure sigsuspend( var mask:sigset_t );		@use eax;		@returns( "eax" );		@external( "linux_sigsuspend" );		procedure sigpending( var set:sigset_t );		@use eax;		@returns( "eax" );		@external( "linux_sigpending" );		procedure sethostname( theName:string; len:size_t );		@returns( "eax" );		@external( "linux_sethostname" );		procedure setrlimit( resource:dword; var rlim:rlimit );		@use eax;		@returns( "eax" );		@external( "linux_setrlimit" );		procedure getrlimit( resource:dword; var rlim:rlimit );		@use eax;		@returns( "eax" );		@external( "linux_getrlimit" );		procedure getrusage( who:dword; var usage:rusage_t );		@use eax;		@returns( "eax" );		@external( "linux_getrusage" );		procedure gettimeofday( var tv:timeval; var tz:timezone );		@use eax;		@returns( "eax" );		@external( "linux_gettimeofday" );		procedure settimeofday( var tv:timeval; var tz:timezone );		@use eax;		@returns( "eax" );		@external( "linux_settimeofday" );		procedure getgroups( size:dword; var list:var );		@use eax;		@returns( "eax" );		@external( "linux_getgroups" );			procedure setgroups( size:size_t; var list:var );		@use eax;		@returns( "eax" );		@external( "linux_setgroups" );		procedure symlink( oldpath:string; newpath:string );		@returns( "eax" );		@external( "linux_symlink" );		procedure readlink( path:string; var buf:var; bufsize:size_t );		@use eax;		@returns( "eax" );		@external( "linux_readlink" );		procedure uselib( library:string );		@returns( "eax" );		@external( "linux_uselib" );		procedure swapon( path:string; swapflags:dword );		@returns( "eax" );		@external( "linux_swapon" );		procedure reboot( magic:dword; magic2:dword; flag:dword; var arg:var );		@use eax;		@returns( "eax" );		@external( "linux_reboot" );			procedure mmap	( 		start:dword; 		length:size_t; 		prot:int32; 		flags:dword; 		fd:dword; 		offset:off_t	);		@stdcall;			// Must be stdcall (6 parameters)!		@returns( "eax" );		@external( "linux_mmap" );			procedure munmap( start:dword; length:size_t );		@returns( "eax" );		@external( "linux_munmap" );			procedure truncate( path:string; length:off_t );		@returns( "eax" );		@external( "linux_truncate" );		procedure ftruncate( fd:dword; length:off_t );		@returns( "eax" );		@external( "linux_ftruncate" );		procedure fchmod( fd:dword; mode:mode_t );		@returns( "eax" );		@external( "linux_fchmod" );		procedure fchown( fd:dword; owner:uid_t; group:gid_t );		@returns( "eax" );		@external( "linux_fchown" );			procedure getpriority( which:dword; who:dword );		@returns( "eax" );		@external( "linux_getpriority" );		procedure setpriority( which:dword; who:dword );		@returns( "eax" );		@external( "linux_setpriority" );			procedure ioperm( from:dword; num:dword; turn_on:int32 );		@returns( "eax" );		@external( "linux_ioperm" );			procedure socketcall( callop:dword; var args:var );		@use eax;		@returns( "eax" );		@external( "linux_socketcall" );			procedure syslog( theType:dword; var bufp:var; len:dword );		@use eax;		@returns( "eax" );		@external( "linux_syslog" );			procedure setitimer	( 			which:dword;		var	ivalue:itimerval; 		var ovalue:itimerval 	);		@use eax;		@returns( "eax" );		@external( "linux_setitimer" );		procedure getitimer( which:dword; var theValue:itimerval );		@use eax;		@returns( "eax" );		@external( "linux_getitimer" );		procedure stat( filename:string; var buf:stat_t );		@use eax;		@returns( "eax" );		@external( "linux_stat" );		procedure fstat( fd:dword; var buf:stat_t );		@use eax;		@returns( "eax" );		@external( "linux_fstat" );		procedure lstat( filename:string; var buf:stat_t );		@use eax;		@returns( "eax" );		@external( "linux_lstat" );		procedure uname( var buf:utsname );		@use eax;		@returns( "eax" );		@external( "linux_uname" );		procedure iopl( level:dword );		@returns( "eax" );		@external( "linux_iopl" );		procedure vhangup;		@returns( "eax" );		@external( "linux_vhangup" );			procedure idle;		@returns( "eax" );		@external( "linux_idle" );		procedure wait4	( 			pid		:pid_t; 			status	:dword; 			options	:dword; 		var rusage	:rusage_t 	);		@use eax;		@returns( "eax" );		@external( "linux_wait4" );			procedure swapoff( path:string );		@returns( "eax" );		@external( "linux_swapoff" );		procedure sysinfo( var info:sysinfo_t );		@use eax;		@returns( "eax" );		@external( "linux_sysinfo" );		procedure ipc	( 			theCall	:dword;			first	:dword;			second	:dword;			third	:dword;		var	ptr		:var;			fifth	:dword 	);		@use eax;		@returns( "eax" );		@external( "linux_ipc" );			procedure fsync( fd:dword );		@returns( "eax" );		@external( "linux_fsync" );		procedure sigreturn( unused:dword );		@returns( "eax" );		@external( "linux_sigreturn" );			type clonefn_t:procedure(var p:var );	procedure clone	( 			fn			:clonefn_t; 

⌨️ 快捷键说明

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