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); }
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, ®n); 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), ®n); 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; }