The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/openzfs/module/lua/lzio.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*
    2 ** $Id: lzio.h,v 1.26.1.1 2013/04/12 18:48:47 roberto Exp $
    3 ** Buffered streams
    4 ** See Copyright Notice in lua.h
    5 */
    6 
    7 
    8 #ifndef lzio_h
    9 #define lzio_h
   10 
   11 #include <sys/lua/lua.h>
   12 
   13 #include "lmem.h"
   14 
   15 
   16 #define EOZ     (-1)                    /* end of stream */
   17 
   18 typedef struct Zio ZIO;
   19 
   20 #define zgetc(z)  (((z)->n--)>0 ?  cast_uchar(*(z)->p++) : luaZ_fill(z))
   21 
   22 
   23 typedef struct Mbuffer {
   24   char *buffer;
   25   size_t n;
   26   size_t buffsize;
   27 } Mbuffer;
   28 
   29 #define luaZ_initbuffer(L, buff) ((buff)->buffer = NULL, (buff)->buffsize = 0)
   30 
   31 #define luaZ_buffer(buff)       ((buff)->buffer)
   32 #define luaZ_sizebuffer(buff)   ((buff)->buffsize)
   33 #define luaZ_bufflen(buff)      ((buff)->n)
   34 
   35 #define luaZ_resetbuffer(buff) ((buff)->n = 0)
   36 
   37 
   38 #define luaZ_resizebuffer(L, buff, size) \
   39         (luaM_reallocvector(L, (buff)->buffer, (buff)->buffsize, size, char), \
   40         (buff)->buffsize = size)
   41 
   42 #define luaZ_freebuffer(L, buff)        luaZ_resizebuffer(L, buff, 0)
   43 
   44 
   45 LUAI_FUNC char *luaZ_openspace (lua_State *L, Mbuffer *buff, size_t n);
   46 LUAI_FUNC void luaZ_init (lua_State *L, ZIO *z, lua_Reader reader,
   47                                         void *data);
   48 LUAI_FUNC size_t luaZ_read (ZIO* z, void* b, size_t n); /* read next n bytes */
   49 
   50 
   51 
   52 /* --------- Private Part ------------------ */
   53 
   54 struct Zio {
   55   size_t n;                     /* bytes still unread */
   56   const char *p;                /* current position in buffer */
   57   lua_Reader reader;            /* reader function */
   58   void* data;                   /* additional data */
   59   lua_State *L;                 /* Lua state (for reader) */
   60 };
   61 
   62 
   63 LUAI_FUNC int luaZ_fill (ZIO *z);
   64 
   65 #endif

Cache object: b5bbfada970253da8b25143b447e1064


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.