Exemple #1
0
int main (int argc, char *argv[])
{
    int fd, nb, offset, bufsize;
    char *buf;
    struct inotify_event *ev;

    bufsize = getpagesize ();
    buf = malloc (bufsize);
    printf ("sizeof inotify_event = %ld\n", sizeof (struct inotify_event));
    fd = inotify_init ();
    printf ("fd from inotify_init=%d\n", fd);
    printf ("inotify_add_watch=%d\n",
            inotify_add_watch (fd, "/tmp", IN_ALL_EVENTS));

    for (;;) {
        offset = 0;
        memset (buf, 0, bufsize);
        nb = read (fd, buf, bufsize);
        printf ("\nnb from read=%d\n\n", nb);
        while (offset < nb) {
            ev = (struct inotify_event *)(buf + offset);

            printf ("Event: wd=%d, mask=%0x, cookie=%d, len=%4d, name=%s\n",
                    ev->wd, ev->mask, ev->cookie, ev->len, ev->name);
            checkfor (ev->mask, IN_ACCESS, "IN_ACCESS");
            checkfor (ev->mask, IN_ATTRIB, "IN_ATTRIB");
            checkfor (ev->mask, IN_CLOSE_WRITE, "IN_CLOSE_WRITE");
            checkfor (ev->mask, IN_CLOSE_NOWRITE, "IN_CLOSE_NOWRITE");
            checkfor (ev->mask, IN_CREATE, "IN_CREATE");
            checkfor (ev->mask, IN_DELETE, "IN_DELETE");
            checkfor (ev->mask, IN_DELETE_SELF, "IN_DELETE_SELF");
            checkfor (ev->mask, IN_MODIFY, "IN_MODIFY");
            checkfor (ev->mask, IN_MOVE_SELF, "IN_MOVE_SELF");
            checkfor (ev->mask, IN_MOVED_FROM, "IN_MOVED_FROM");
            checkfor (ev->mask, IN_MOVED_TO, "IN_MOVED_TO");
            checkfor (ev->mask, IN_OPEN, "IN_OPEN");
            offset += sizeof (struct inotify_event) + ev->len;
        }
    }
    exit (0);
}
Exemple #2
0
static void
get_operand (char **ptr, struct z8k_op *mode, unsigned int dst ATTRIBUTE_UNUSED)
{
  char *src = *ptr;
  char *end;

  mode->mode = 0;

  while (*src == ' ')
    src++;
  if (*src == '#')
    {
      mode->mode = CLASS_IMM;
      imm_operand = &(mode->exp);
      src = parse_exp (src + 1, &(mode->exp));
    }
  else if (*src == '@')
    {
      mode->mode = CLASS_IR;
      src = parse_reg (src + 1, &mode->regsize, &mode->reg);
    }
  else
    {
      unsigned int regn;

      end = parse_reg (src, &mode->mode, &regn);

      if (end)
	{
	  int nw;
	  unsigned int nr;

	  src = end;
	  if (*src == '(')
	    {
	      src++;
	      end = parse_reg (src, &nw, &nr);
	      if (end)
		{
		  /* Got Ra(Rb).  */
		  src = end;

		  if (*src != ')')
		    as_bad (_("Missing ) in ra(rb)"));
		  else
		    src++;

		  regaddr (mode->mode, "ra(rb) ra");
		  mode->mode = CLASS_BX;
		  mode->reg = regn;
		  mode->x_reg = nr;
		  reg[ARG_RX] = nr;
		}
	      else
		{
		  /* Got Ra(disp).  */
		  if (*src == '#')
		    src++;
		  src = parse_exp (src, &(mode->exp));
		  src = checkfor (src, ')');
		  mode->mode = CLASS_BA;
		  mode->reg = regn;
		  mode->x_reg = 0;
		  imm_operand = &(mode->exp);
		}
	    }
	  else
	    {
	      mode->reg = regn;
	      mode->x_reg = 0;
	    }
	}
      else
	{
	  /* No initial reg.  */
	  src = parse_exp (src, &(mode->exp));
	  if (*src == '(')
	    {
	      src++;
	      end = parse_reg (src, &(mode->mode), &regn);
	      regword (mode->mode, "addr(Ra) ra");
	      mode->mode = CLASS_X;
	      mode->reg = regn;
	      mode->x_reg = 0;
	      da_operand = &(mode->exp);
	      src = checkfor (end, ')');
	    }
	  else
	    {
	      /* Just an address.  */
	      mode->mode = CLASS_DA;
	      mode->reg = 0;
	      mode->x_reg = 0;
	      da_operand = &(mode->exp);
	    }
	}
    }
  *ptr = src;
}