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

📄 os_linux.inc

📁 A simple C compiler source code.
💻 INC
📖 第 1 页 / 共 3 页
字号:
; Copyright (C) 1999-2002 Konstantin Boldyshev <konst@linuxassembly.org>;; $Id: os_linux.inc,v 1.26 2002/08/14 16:53:29 konst Exp $;; file          : os_linux.inc; created       : 08-Feb-2000; modified      : 14-Aug-2002; version       : 0.17; assembler     : nasm 0.98; description   : Linux kernel (2.0+) constants and structures; author        : Konstantin Boldyshev <konst@linuxassembly.org>; comment       : included from system.inc%ifndef __SYSTEM_INC%error "this file must be included from system.inc !"%endif%ifndef __LINUX_INC%define __LINUX_INC%macro	DO_SYSCALL 0	int	0x80%endmacro%macro	SYSCALL_GATE 0%endmacro;;linux/posix_types.h;%assign	FD_SETSIZE	1024struc fd_set	U32	FD_SETSIZE / 32endstruc;;;%assign MAP_GROWSDOWN	0x0100%assign MAP_DENYWRITE	0x0800%assign MAP_EXECUTABLE	0x1000%assign MAP_LOCKED	0x2000%assign MAP_NORESERVE	0x4000;;linux/reboot.h;%assign	LINUX_REBOOT_MAGIC1	0xfee1dead%assign	LINUX_REBOOT_MAGIC2	0x28121969%assign	LINUX_REBOOT_MAGIC2A	85072278%assign	LINUX_REBOOT_MAGIC2B	369367448%assign	LINUX_REBOOT_CMD_RESTART	0x01234567	;Restart system using default command and mode.%assign	LINUX_REBOOT_CMD_HALT		0xCDEF0123	;Stop OS and give system control to ROM monitor, if any.%assign	LINUX_REBOOT_CMD_CAD_ON		0x89ABCDEF	;Ctrl-Alt-Del sequence causes RESTART command.%assign	LINUX_REBOOT_CMD_CAD_OFF	0x00000000	;Ctrl-Alt-Del sequence sends SIGINT to init task.%assign	LINUX_REBOOT_CMD_POWER_OFF	0x4321FEDC	;Stop OS and remove all power from system, if possible.%assign	LINUX_REBOOT_CMD_RESTART2	0xA1B2C3D4	;Restart system using given command string.%assign RB_AUTOBOOT	LINUX_REBOOT_CMD_RESTART%assign RB_HALT		LINUX_REBOOT_CMD_HALT%assign RB_ENABLE_CAD	LINUX_REBOOT_CMD_CAD_ON%assign RB_DISABLE_CAD	LINUX_REBOOT_CMD_CAD_OFF%assign RB_POWEROFF	LINUX_REBOOT_CMD_POWER_OFF;;linux/kd.h;%assign KDGKBTYPE	0x4B33	;get keyboard type%assign KB_84		0x01%assign KB_101		0x02	;this is what we always answer%assign KB_OTHER	0x03%assign	KIOCSOUND	0x4B2F	;start sound generation (0 for off)%assign	KDMKTONE	0x4B30	;generate tone%assign KDFONTOP	0x4B72	;font operations ioctl %assign KD_FONT_OP_SET		0	;Set font %assign KD_FONT_OP_GET		1	;Get font %assign KD_FONT_OP_SET_DEFAULT	2	;Set font to default, data points to name %assign KD_FONT_OP_COPY		3	;Copy from another console struc console_font_op.op		UINT	1.flags		UINT	1	;should always be 0?.width		UINT	1.height		UINT	1.charcount	UINT	1.data		DWORD	1	;pointer to unsigned charendstrucstruc	raw_font_type.fontdata	UCHAR	16384endstruc;;linux/cdrom.h;%assign CDROMPAUSE		0x5301	;Pause Audio Operation%assign CDROMRESUME		0x5302	;Resume paused Audio Operation%assign CDROMPLAYMSF		0x5303	;Play Audio MSF (struct cdrom_msf)%assign CDROMPLAYTRKIND		0x5304	;Play Audio Track/index (struct cdrom_ti)%assign CDROMREADTOCHDR		0x5305	;Read TOC header (struct cdrom_tochdr)%assign CDROMREADTOCENTRY	0x5306	;Read TOC entry (struct cdrom_tocentry)%assign CDROMSTOP		0x5307	;Stop the cdrom drive%assign CDROMSTART		0x5308	;Start the cdrom drive%assign CDROMEJECT		0x5309	;Ejects the cdrom media%assign CDROMVOLCTRL		0x530a	;Control output volume (struct cdrom_volctrl)%assign CDROMSUBCHNL		0x530b	;Read subchannel data (struct cdrom_subchnl)%assign CDROMREADMODE2		0x530c	;Read CDROM mode 2 data (2336 Bytes) (struct cdrom_read)%assign CDROMREADMODE1		0x530d	;Read CDROM mode 1 data (2048 Bytes) (struct cdrom_read)%assign CDROMREADAUDIO		0x530e	;(struct cdrom_read_audio)%assign CDROMEJECT_SW		0x530f	;enable(1)/disable(0) auto-ejecting%assign CDROMMULTISESSION	0x5310	;Obtain the start-of-last-session address of multi session disks (struct cdrom_multisession)%assign CDROM_GET_MCN		0x5311	;Obtain the "Universal Product Code" if available (struct cdrom_mcn)%assign CDROM_GET_UPC		CDROM_GET_MCN	;This one is depricated, but here anyway for compatability%assign CDROMRESET		0x5312	;hard-reset the drive%assign CDROMVOLREAD		0x5313	;Get the drive's volume setting (struct cdrom_volctrl)%assign CDROMREADRAW		0x5314	;read data in raw mode (2352 Bytes)%assign CDROMCLOSETRAY	0x5319;;linux/vt.h;%assign VT_ACTIVATE	0x5606	;make vt active%assign VT_WAITACTIVE	0x5607	;wait for vt active%assign VT_DISALLOCATE	0x5608	;free memory associated to vt%define VT_GETMODE	0x5601	;get mode of active vt%define VT_SETMODE	0x5602	;set mode of active vtstruc vt_mode.mode		CHAR	1	;vt mode.waitv		SHORT	1	;if set, hang on writes if not active.relsig		SHORT	1	;signal to raise on release req.acqsig		SHORT	1	;signal to raise on acquisition.frsig		SHORT	1	;unused (set to 0)endstruc;;asm/termbits.h;; c_cc characters%assign VINTR	0%assign VQUIT	1%assign VERASE	2%assign VKILL	3%assign VEOF	4%assign VTIME	5%assign VMIN	6%assign VSWTC	7%assign VSTART	8%assign VSTOP	9%assign VSUSP	10%assign VEOL	11%assign VREPRINT 12%assign VDISCARD 13%assign VWERASE	14%assign VLNEXT	15%assign VEOL2	16; c_iflag bits%assign IGNBRK	0000001q%assign BRKINT	0000002q%assign IGNPAR	0000004q%assign PARMRK	0000010q%assign INPCK	0000020q%assign ISTRIP	0000040q%assign INLCR	0000100q%assign IGNCR	0000200q%assign ICRNL	0000400q%assign IUCLC	0001000q%assign IXON	0002000q%assign IXANY	0004000q%assign IXOFF	0010000q%assign IMAXBEL	0020000q; c_oflag bits%assign OPOST	0000001q%assign OLCUC	0000002q%assign ONLCR	0000004q%assign OCRNL	0000010q%assign ONOCR	0000020q%assign ONLRET	0000040q%assign OFILL	0000100q%assign OFDEL	0000200q%assign NLDLY	0000400q%assign   NL0	0000000q%assign   NL1	0000400q%assign CRDLY	0003000q%assign   CR0	0000000q%assign   CR1	0001000q%assign   CR2	0002000q%assign   CR3	0003000q%assign TABDLY	0014000q%assign   TAB0	0000000q%assign   TAB1	0004000q%assign   TAB2	0010000q%assign   TAB3	0014000q%assign   XTABS	0014000q%assign BSDLY	0020000q%assign   BS0	0000000q%assign   BS1	0020000q%assign VTDLY	0040000q%assign   VT0	0000000q%assign   VT1	0040000q%assign FFDLY	0100000q%assign   FF0	0000000q%assign   FF1	0100000q; c_cflag bit meaning%assign CBAUD	0010017q%assign  B0	0000000q	;hang up%assign  B50	0000001q%assign  B75	0000002q%assign  B110	0000003q%assign  B134	0000004q%assign  B150	0000005q%assign  B200	0000006q%assign  B300	0000007q%assign  B600	0000010q%assign  B1200	0000011q%assign  B1800	0000012q%assign  B2400	0000013q%assign  B4800	0000014q%assign  B9600	0000015q%assign  B19200	0000016q%assign  B38400	0000017q%assign EXTA	B19200%assign EXTB	B38400%assign CSIZE	0000060q%assign   CS5	0000000q%assign   CS6	0000020q%assign   CS7	0000040q%assign   CS8	0000060q%assign CSTOPB	0000100q%assign CREAD	0000200q%assign PARENB	0000400q%assign PARODD	0001000q%assign HUPCL	0002000q%assign CLOCAL	0004000q%assign CBAUDEX 0010000q%assign    B57600 0010001q%assign   B115200 0010002q%assign   B230400 0010003q%assign   B460800 0010004q%assign   B500000 0010005q%assign   B576000 0010006q%assign   B921600 0010007q%assign  B1000000 0010010q%assign  B1152000 0010011q%assign  B1500000 0010012q%assign  B2000000 0010013q%assign  B2500000 0010014q%assign  B3000000 0010015q%assign  B3500000 0010016q%assign  B4000000 0010017q%assign CIBAUD	  002003600000q	;input baud rate (not used)%assign CMSPAR	  010000000000q	;mark or space (stick) parity%assign CRTSCTS	  020000000000q	;flow control; c_lflag bits%assign ISIG	0000001q%assign ICANON	0000002q%assign XCASE	0000004q%assign ECHO	0000010q%assign ECHOE	0000020q%assign ECHOK	0000040q%assign ECHONL	0000100q%assign NOFLSH	0000200q%assign TOSTOP	0000400q%assign ECHOCTL	0001000q%assign ECHOPRT	0002000q%assign ECHOKE	0004000q%assign FLUSHO	0010000q%assign PENDIN	0040000q%assign IEXTEN	0100000q; tcflow() and TCXONC use these%assign	TCOOFF		0%assign	TCOON		1%assign	TCIOFF		2%assign	TCION		3; tcflush() and TCFLSH use these%assign	TCIFLUSH	0%assign	TCOFLUSH	1%assign	TCIOFLUSH	2; tcsetattr uses these%assign	TCSANOW		0%assign	TCSADRAIN	1%assign	TCSAFLUSH	2%assign NCCS 19struc termios.c_iflag	UINT	1	;input mode flags.c_oflag	UINT	1	;output mode flags.c_cflag	UINT	1	;control mode flags.c_lflag	UINT	1	;local mode flags.c_line		UCHAR	1	;line discipline.c_cc		UCHAR	NCCS	;control charactersendstruc;;asm/ioctls.h;;0x54 is just a magic number to make these relatively unique ('T')%assign TCGETS		0x5401%assign TCSETS		0x5402%assign TCSETSW		0x5403%assign TCSETSF		0x5404%assign TCGETA		0x5405%assign TCSETA		0x5406%assign TCSETAW		0x5407%assign TCSETAF		0x5408%assign TCSBRK		0x5409%assign TCXONC		0x540A%assign TCFLSH		0x540B%assign TIOCEXCL	0x540C%assign TIOCNXCL	0x540D%assign TIOCSCTTY	0x540E%assign TIOCGPGRP	0x540F%assign TIOCSPGRP	0x5410%assign TIOCOUTQ	0x5411%assign TIOCSTI		0x5412%assign TIOCGWINSZ	0x5413%assign TIOCSWINSZ	0x5414%assign TIOCMGET	0x5415%assign TIOCMBIS	0x5416%assign TIOCMBIC	0x5417%assign TIOCMSET	0x5418%assign TIOCGSOFTCAR	0x5419%assign TIOCSSOFTCAR	0x541A%assign FIONREAD	0x541B%assign TIOCINQ		FIONREAD%assign TIOCLINUX	0x541C%assign TIOCCONS	0x541D%assign TIOCGSERIAL	0x541E%assign TIOCSSERIAL	0x541F%assign TIOCPKT		0x5420%assign FIONBIO		0x5421%assign TIOCNOTTY	0x5422%assign TIOCSETD	0x5423%assign TIOCGETD	0x5424%assign TCSBRKP		0x5425	;Needed for POSIX tcsendbreak()%assign TIOCTTYGSTRUCT	0x5426  ;For debugging only%assign TIOCSBRK	0x5427  ;BSD compatibility%assign TIOCCBRK	0x5428  ;BSD compatibility%assign TIOCGSID	0x5429  ;Return the session ID of FD;;asm/stat.h;struc Stat			;guess why uppercase S?%if __SYSCALL__=__S_KERNEL__.st_dev		USHORT	1.__pad1		USHORT	1.st_ino		ULONG	1.st_mode	USHORT	1.st_nlink	USHORT	1.st_uid		USHORT	1.st_gid		USHORT	1.st_rdev	USHORT	1.__pad2		USHORT	1.st_size	ULONG	1.st_blksize	ULONG	1.st_blocks	ULONG	1.st_atime	ULONG	1.__unused1	ULONG	1.st_mtime	ULONG	1.__unused2	ULONG	1.st_ctime	ULONG	1.__unused3	ULONG	1.__unused4	ULONG	1.__unused5	ULONG	1%elif __SYSCALL__=__S_LIBC__.st_dev		ULONG	2.__pad1		USHORT	1.st_ino		ULONG	1.st_mode	UINT	1.st_nlink	UINT	1.st_uid		UINT	1.st_gid		UINT	1.st_rdev	ULONG	2.__pad2		USHORT	1.st_size	ULONG	1.st_blksize	ULONG	1.st_blocks	ULONG	1.st_atime	ULONG	1.__unused1	ULONG	1.st_mtime	ULONG	1.__unused2	ULONG	1.st_ctime	ULONG	1.__unused3	ULONG	1%endifendstrucstruc __old_kernel_stat.st_dev		USHORT	1.st_ino		USHORT	1.st_mode	USHORT	1.st_nlink	USHORT	1.st_uid		USHORT	1.st_gid		USHORT	1.st_rdev	USHORT	1.st_size	ULONG	1.st_atime	ULONG	1.st_mtime	ULONG	1.st_ctime	ULONG	1endstruc;;asm/signal.h;%assign SA_NOCLDSTOP	0x00000001%assign SA_NOCLDWAIT	0x00000002%assign SA_SIGINFO	0x00000004%assign SA_ONSTACK	0x08000000%assign SA_RESTART	0x10000000%assign SA_NODEFER	0x40000000%assign SA_RESETHAND	0x80000000%assign SA_RESTORER	0x04000000%assign SA_NOMASK	SA_NODEFER%assign SA_ONESHOT	SA_RESETHANDstruc sigset_t		U32	_NSIG / 32endstrucstruc Sigaction.sa_handler	ULONG	1%if __SYSCALL__=__S_KERNEL__.sa_flags	ULONG	1.sa_restorer	ULONG	1.sa_mask	resb	sigset_t_size%elif __SYSCALL__=__S_LIBC__.sa_sigaction	ULONG	1.sa_mask	resb	sigset_t_size.sa_flags	ULONG	1.sa_restorer	ULONG	1%endifendstruc;;sys/dirent.h;struc dirent%if __SYSCALL__=__S_KERNEL__.d_ino		ULONG	1.d_off		ULONG	1.d_reclen	USHORT	1.d_name		CHAR	256%elif __SYSCALL__=__S_LIBC__.d_ino		ULONG	2.d_off		ULONG	2.d_reclen	USHORT	1.d_type		UCHAR	1.d_name		CHAR	256%endifendstruc;;linux/fb.h;; ioctl defs for fb%assign FBIOGET_VSCREENINFO	0x4600	%assign FBIOPUT_VSCREENINFO	0x4601	%assign	FBIOGET_FSCREENINFO	0x4602%assign	FBIOGETCMAP		0x4604%assign	FBIOPUTCMAP		0x4605%assign FBIOPAN_DISPLAY		0X4606; activate flags for ioctl on var->activate%assign	FB_ACTIVATE_NOW		0%assign	FB_ACTIVATE_NXTOPEN	1%assign	FB_ACTIVATE_TEST	2%assign	FB_ACTIVATE_MASK	15%assign	FB_ACTIVATE_VBL		16	;activate changes on next VBL - coool%assign	FB_CHANGE_CMAP_VBL	32%assign	FB_ACTIVATE_ALL		64struc fb_fix.id		CHAR	16.smem_start	ULONG	1.smem_len	U32	1.type		U32	1

⌨️ 快捷键说明

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