Exemplo n.º 1
0
static int
put_ipv4addr (ID cepid, ULONGEST *addr, int width)
{
	int len = 3;	/* 3 は '.' の文字数 */

#if SIL_ENDIAN == SIL_ENDIAN_BIG

	len += put_num(cepid, (*addr >> 24) & 0xff, 10, radhex, 0, FALSE, ' '); 
	put_char(cepid, '.');
	len += put_num(cepid, (*addr >> 16) & 0xff, 10, radhex, 0, FALSE, ' '); 
	put_char(cepid, '.');
	len += put_num(cepid, (*addr >>  8) & 0xff, 10, radhex, 0, FALSE, ' '); 
	put_char(cepid, '.');
	len += put_num(cepid,  *addr        & 0xff, 10, radhex, 0, FALSE, ' '); 

#else	/* of #if SIL_ENDIAN == SIL_ENDIAN_BIG */

	len += put_num(cepid,  *addr        & 0xff, 10, radhex, 0, FALSE, ' '); 
	put_char(cepid, '.');
	len += put_num(cepid, (*addr >>  8) & 0xff, 10, radhex, 0, FALSE, ' '); 
	put_char(cepid, '.');
	len += put_num(cepid, (*addr >> 16) & 0xff, 10, radhex, 0, FALSE, ' '); 
	put_char(cepid, '.');
	len += put_num(cepid, (*addr >> 24) & 0xff, 10, radhex, 0, FALSE, ' '); 

#endif	/* of #if SIL_ENDIAN == SIL_ENDIAN_BIG */

	for ( ; len < width; len ++)
		put_char(cepid, ' ');

	return len;
	}
Exemplo n.º 2
0
static void proc_printr(proc_entry *t, int level){

  int i;

  if (t->count == 0){
      return;
  }
  
  if (t->count > 1){
    put_num(t->count);
    put_str("*[");
  }
  put(t->name.s, t->name.len);

  for(i=0;i<t->childs.len; ++i){

    if (t->childs.s[i]->count == 0) continue;
    put_sep(t,t->childs.s[i],level);
    proc_printr(t->childs.s[i], level);

  }

  if (t->count > 1){
    put_str("]");
  }

}
Exemplo n.º 3
0
static int
put_macaddr (ID cepid, char *mac, int width)
{
	int oct, len;

	for (oct = 5; oct -- > 0; ) {
		put_num(cepid, *mac ++, 16, radhex, 2, FALSE, '0'); 
		put_char(cepid, ':');
		}
	put_num(cepid, *mac, 16, radhex, 2, FALSE, '0'); 

	for (len = 17; len < width; len ++)
		put_char(cepid, ' ');

	return len;
	}
Exemplo n.º 4
0
static int
put_ipv6addr (ID cepid, const T_IN6_ADDR *addr, int width)
{
	int	len = 0, ix;
	BOOL	omit = FALSE, zero = FALSE;

	if (addr == NULL) {
		put_char(cepid, '0');
		put_char(cepid, ':');
		put_char(cepid, ':');
		put_char(cepid, '0');
		len = 4;
		}
	else {
		for (ix = 0; ix < sizeof(T_IN6_ADDR) / 2; ix ++) {
			if (omit) {
				len += put_num(cepid, addr->s6_addr16[ix], 16, radhex, 0, FALSE, ' '); 
				if (ix < 7) {
					put_char(cepid, ':');
					len ++;
					}
				}
			else if (ix > 0 && ix < 7 && addr->s6_addr16[ix] == 0)
				zero = TRUE;
			else {
				if (zero) {
					omit = TRUE;
					put_char(cepid, ':');
					len ++;
					}
				len += put_num(cepid, addr->s6_addr16[ix], 16, radhex, 0, FALSE, ' '); 
				if (ix < 7) {
					put_char(cepid, ':');
					len ++;
					}
				}
			}

		for ( ; len < width; len ++)
			put_char(cepid, ' ');
		}
	return len;
	}
Exemplo n.º 5
0
static int_t
put_ipv6addr (ID cepid, const T_IN6_ADDR *addr, int_t width)
{
	int_t	len = 0, ix;
	bool_t	omit = false, zero = false;

	if (addr == NULL) {
		put_char(cepid, '0');
		put_char(cepid, ':');
		put_char(cepid, ':');
		put_char(cepid, '0');
		len = 4;
		}
	else {
		for (ix = 0; ix < sizeof(T_IN6_ADDR) / 2; ix ++) {
			if (omit) {
				len += put_num(cepid, addr->s6_addr16[ix], 16, radhex, 0, false, ' '); 
				if (ix < 7) {
					put_char(cepid, ':');
					len ++;
					}
				}
			else if (ix > 0 && ix < 7 && addr->s6_addr16[ix] == 0)
				zero = true;
			else {
				if (zero) {
					omit = true;
					put_char(cepid, ':');
					len ++;
					}
				len += put_num(cepid, addr->s6_addr16[ix], 16, radhex, 0, false, ' '); 
				if (ix < 7) {
					put_char(cepid, ':');
					len ++;
					}
				}
			}

		for ( ; len < width; len ++)
			put_char(cepid, ' ');
		}
	return len;
	}
Exemplo n.º 6
0
static void add(int i)
{
	int tmp;

	mylock(&lock);

	get_num(&tmp);

	add_num(&tmp, i);

	put_num(&tmp);

	myunlock(&lock);
}
Exemplo n.º 7
0
ER
net_syslog (UINT prio, const char *format, ...)
{
	LONGEST	val;
	SYSLOG	log;
	va_list	ap;
	char	padchar, *str;
	int	ch, width, longflag, left, i, c;

	if (connected) {
		syscall(wai_sem(SEM_TCP_SYSLOG));
		va_start(ap, format);
		while ((ch = *format ++) != '\0') {
			if (ch != '%') {		/* 書式指定以外 */
				put_char(TCP_CEPID, (char)ch);
				continue;
				}

			width = longflag = 0;
			padchar = ' ';

			if (ch == '-') {		/* 左詰め */
				format ++;
				left = -1;
				}
			else
				left = 1;

			if ((ch = *format ++) == '0') {	/* 上位桁の 0 */
				padchar = '0';
				ch = *format ++;
				}

			while ('0' <= ch && ch <= '9') {	/* 出力幅 */
				width = width * 10 + ch - '0';
				ch = *format ++;
				}

			while (ch == 'l') {		/* long (long) の指定 */
				longflag ++;
				ch = *format ++;
				}

			switch (ch) {
			case 'd':
				val = GET_ARG(ap, longflag);
				if (val >= 0)
					put_num(TCP_CEPID,  val, 10, radhex, width * left, FALSE, padchar);
				else
					put_num(TCP_CEPID, -val, 10, radhex, width * left, TRUE, padchar);
				break;

			case 'u':
				val = GET_ARG(ap, longflag);
				put_num(TCP_CEPID, val, 10, radhex, width * left, FALSE, padchar);
				break;

			case 'x':
				val = GET_ARG(ap, longflag);
				put_num(TCP_CEPID, val, 16, radhex, width * left, FALSE, padchar);
				break;

			case 'X':
				val = GET_ARG(ap, longflag);
				put_num(TCP_CEPID, val, 16, radHEX, width * left, FALSE, padchar);
				break;

			case 'c':
				ch = va_arg(ap, int);
				put_char(TCP_CEPID, (char)ch);
				break;

			case 's':
				str = va_arg(ap, char*);
				while ((ch = *str ++) != '\0') {
					put_char(TCP_CEPID, (char)ch);
					width --;
					}
				while (width -- > 0)
					put_char(TCP_CEPID, ' ');
				break;

			case 'I':

#ifdef SUPPORT_INET4

				val = GET_ARG(ap, longflag);
				put_ipv4addr(TCP_CEPID, (ULONGEST *)val, width);

#endif	/* of #ifdef SUPPORT_INET4 */

#ifdef SUPPORT_INET6

				str = va_arg(ap, char*);
				put_ipv6addr(TCP_CEPID, (T_IN6_ADDR *)str, width);

#endif	/* of #ifdef SUPPORT_INET6 */

				break;

			case 'M':
				str = va_arg(ap, char*);
				put_macaddr(TCP_CEPID, str, width);
				break;

			case '%':
				put_char(TCP_CEPID, '%');
				break;

			case '0':
				format --;
				break;

			default:
				break;
				}

			}
		va_end(ap);
		put_char(TCP_CEPID, '\n');
		flush_snd_buff(TCP_CEPID);
		syscall(sig_sem(SEM_TCP_SYSLOG));
		return E_OK;
		}
	else {