Lines Matching refs:ep

84 log_init(sp, ep)
86 EXF *ep;
90 * ep MAY NOT BE THE SAME AS sp->ep, DON'T USE THE LATTER.
96 ep->l_lp = NULL;
97 ep->l_len = 0;
98 ep->l_cursor.lno = 1; /* XXX Any valid recno. */
99 ep->l_cursor.cno = 0;
100 ep->l_high = ep->l_cur = 1;
102 ep->log = dbopen(NULL, O_CREAT | O_NONBLOCK | O_RDWR,
104 if (ep->log == NULL) {
106 F_SET(ep, F_NOLOG);
120 log_end(sp, ep)
122 EXF *ep;
126 * ep MAY NOT BE THE SAME AS sp->ep, DON'T USE THE LATTER.
128 if (ep->log != NULL) {
129 (void)(ep->log->close)(ep->log);
130 ep->log = NULL;
132 if (ep->l_lp != NULL) {
133 free(ep->l_lp);
134 ep->l_lp = NULL;
136 ep->l_len = 0;
137 ep->l_cursor.lno = 1; /* XXX Any valid recno. */
138 ep->l_cursor.cno = 0;
139 ep->l_high = ep->l_cur = 1;
153 EXF *ep;
155 ep = sp->ep;
156 if (F_ISSET(ep, F_NOLOG))
163 if (ep->l_cursor.lno == OOBLNO) {
164 ep->l_cursor.lno = sp->lno;
165 ep->l_cursor.cno = sp->cno;
168 ep->l_cursor.lno = sp->lno;
169 ep->l_cursor.cno = sp->cno;
183 EXF *ep;
185 ep = sp->ep;
186 BINC_RET(sp, ep->l_lp, ep->l_len, sizeof(u_char) + sizeof(MARK));
187 ep->l_lp[0] = type;
188 memmove(ep->l_lp + sizeof(u_char), &ep->l_cursor, sizeof(MARK));
190 key.data = &ep->l_cur;
192 data.data = ep->l_lp;
194 if (ep->log->put(ep->log, &key, &data, 0) == -1)
198 TRACE(sp, "%lu: %s: %u/%u\n", ep->l_cur,
203 ep->l_high = ++ep->l_cur;
221 EXF *ep;
225 ep = sp->ep;
226 if (F_ISSET(ep, F_NOLOG))
235 F_CLR(ep, F_UNDO);
238 if (ep->l_cursor.lno != OOBLNO) {
241 ep->l_cursor.lno = OOBLNO;
263 ep->l_lp, ep->l_len, len + sizeof(u_char) + sizeof(recno_t));
264 ep->l_lp[0] = action;
265 memmove(ep->l_lp + sizeof(u_char), &lno, sizeof(recno_t));
266 memmove(ep->l_lp + sizeof(u_char) + sizeof(recno_t), lp, len);
268 key.data = &ep->l_cur;
270 data.data = ep->l_lp;
272 if (ep->log->put(ep->log, &key, &data, 0) == -1)
279 ep->l_cur, lno, len);
283 ep->l_cur, lno, len);
287 ep->l_cur, lno, len);
291 ep->l_cur, lno, len);
295 ep->l_cur, lno, len);
300 ep->l_high = ++ep->l_cur;
320 EXF *ep;
322 ep = sp->ep;
323 if (F_ISSET(ep, F_NOLOG))
327 if (ep->l_cursor.lno != OOBLNO) {
330 ep->l_cursor.lno = OOBLNO;
333 BINC_RET(sp, ep->l_lp,
334 ep->l_len, sizeof(u_char) + sizeof(LMARK));
335 ep->l_lp[0] = LOG_MARK;
336 memmove(ep->l_lp + sizeof(u_char), lmp, sizeof(LMARK));
338 key.data = &ep->l_cur;
340 data.data = ep->l_lp;
342 if (ep->log->put(ep->log, &key, &data, 0) == -1)
347 ep->l_cur, lmp->name, lmp->lno, lmp->cno);
350 ep->l_high = ++ep->l_cur;
366 EXF *ep;
373 ep = sp->ep;
374 if (F_ISSET(ep, F_NOLOG)) {
380 if (ep->l_cur == 1) {
385 F_SET(ep, F_NOLOG); /* Turn off logging. */
387 key.data = &ep->l_cur; /* Initialize db request. */
390 --ep->l_cur;
391 if (ep->log->get(ep->log, &key, &data, 0))
394 log_trace(sp, "log_backward", ep->l_cur, data.data);
400 F_CLR(ep, F_NOLOG);
450 err: F_CLR(ep, F_NOLOG);
471 EXF *ep;
477 ep = sp->ep;
478 if (F_ISSET(ep, F_NOLOG)) {
484 if (ep->l_cur == 1)
487 F_SET(ep, F_NOLOG); /* Turn off logging. */
489 key.data = &ep->l_cur; /* Initialize db request. */
493 --ep->l_cur;
494 if (ep->log->get(ep->log, &key, &data, 0))
497 log_trace(sp, "log_setline", ep->l_cur, data.data);
502 if (m.lno != sp->lno || ep->l_cur == 1) {
503 F_CLR(ep, F_NOLOG);
510 ++ep->l_cur;
511 F_CLR(ep, F_NOLOG);
543 err: F_CLR(ep, F_NOLOG);
559 EXF *ep;
566 ep = sp->ep;
567 if (F_ISSET(ep, F_NOLOG)) {
573 if (ep->l_cur == ep->l_high) {
578 F_SET(ep, F_NOLOG); /* Turn off logging. */
580 key.data = &ep->l_cur; /* Initialize db request. */
583 ++ep->l_cur;
584 if (ep->log->get(ep->log, &key, &data, 0))
587 log_trace(sp, "log_forward", ep->l_cur, data.data);
592 ++ep->l_cur;
594 F_CLR(ep, F_NOLOG);
644 err: F_CLR(ep, F_NOLOG);
658 EXF *ep;
661 ep = sp->ep;
662 (void)ep->log->close(ep->log);
663 if (!log_init(sp, ep))