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

📄 error.c

📁 Intel x86处理器的汇编器
💻 C
字号:
#include "a64-2.h"#include "error.h"#include <stdio.h>/* global error struct link */static struct err_struct *err_link = 0;/* the error link struct pool */static struct err_struct err_pool[32];static unsigned int err_struct_present = 0;static char err_msg[ERR_MSG_SIZE];static struct err_struct *get_err_struct(){	int i = 0; 	int j = 0;	/* test err_struct_present's bit is used ? */	while ((i < 32) && ((j = (1<<i)) & err_struct_present)) 		i++;		if (i == 31) return 0;			err_struct_present |= j;		return &err_pool[i];}#if 0static int del_err_struct(struct err_struct *err_s){	if (!err_s) return 0;	mem_zero(err_s, sizeof(struct err_struct));		int i = ((unsigned long)&err_s->errno -  (unsigned long)&err_pool[0]) 		/ sizeof(struct err_struct);		return 0;}#endif#if 0main(){	char msg[128];	sprintf(msg, "at %d lines: %s\n", 1, "parse error");	mount_err_link(0,0,msg);	print_err();}#endifint mount_err_link(errno_t errno, char *err_msg[], char *err_info){	struct err_struct *err_lk = err_link;	struct err_struct *tmp_lk = get_err_struct();	if (!tmp_lk)		return 1;	if ((!errno && err_msg) || (errno && !err_msg))		return -1;	tmp_lk->errno = errno;	tmp_lk->err_msg = err_msg;	tmp_lk->err_info = err_info;	if (!err_link) {		err_link = tmp_lk;	} else {		while (err_lk->next)			err_lk = err_lk->next;		err_lk->next = tmp_lk;	}	return 0;}__inline__ char *get_err_msg_addr(){	return err_msg;}static void print_err_msg(struct err_struct *err){	if (err) 		PRINT_ERRMSG(err->errno, err->err_msg);}void print_err(){	for ( ; err_link; err_link = err_link->next) {		fprintf(stderr, 			err_link->err_info ? err_link->err_info: "");		print_err_msg(err_link);	}}void release_err_link(){}

⌨️ 快捷键说明

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