📄 mbx-outbyte.c
字号:
/* * mbx-outbyte.c -- outbyte function for targets using the eppcbug monitor * * Copyright (c) 1998 Cygnus Support * * The authors hereby grant permission to use, copy, modify, distribute, * and license this software and its documentation for any purpose, provided * that existing copyright notices are retained in all copies and that this * notice is included verbatim in any distributions. No written agreement, * license, or royalty fee is required for any of the authorized uses. * Modifications to this software may be copyrighted by their authors * and need not follow the licensing terms described here, provided that * the new terms are clearly indicated on the first page of each file where * they apply. */#include "ppc-asm.h"static int sendbyte(char c){ struct { unsigned clun; unsigned dlun; char *data; unsigned len; unsigned rsrvd; char buf[4]; } ipb, *inpb; struct { int status; int cnt; } opb, *outpb; inpb = &ipb; outpb = &opb; inpb->clun = 0; inpb->dlun = 0; inpb->data = ipb.buf; inpb->len = 1; inpb->rsrvd = 0; inpb->buf[0] = c; asm volatile ( "mr 3,%0\n" "mr 4,%1\n" "li 10,0x201\n" "sc" : /* no outputs */ : "r" (inpb), "r" (outpb) : "3", "4", "10" ); return (outpb->status == 0 && outpb->cnt == 1);}#define GDB_QUOTE_OUTBYTES 1void outbyte(char c){#ifdef GDB_QUOTE_OUTBYTES /* * GDB monitor.c will echo characters quoted with ^O */ while (!sendbyte('\017')) ;#endif while (!sendbyte(c)) ;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -