Ejemplo n.º 1
0
void directoryBlock(unsigned char *p) {
  EOS32_ino_t ino;
  int i, j;
  unsigned char c;

  checkBatch(0);
  for (i = 0; i < DIRPB; i++) {
    printf("%02d:  ", i);
    ino = get4Bytes(p);
    p += 4;
    printf("inode = %lu (0x%lX)\n", ino, ino);
    if (checkBatch(1)) return;
    printf("     name  = ");
    if (*p == '\0') {
      printf("<empty>");
    } else {
      for (j = 0; j < DIRSIZ; j++) {
        c = *(p + j);
        if (c == '\0') {
          break;
        }
        if (c < 0x20 || c >= 0x7F) {
          printf(".");
        } else {
          printf("%c", c);
        }
      }
    }
    printf("\n");
    if (checkBatch(1)) return;
    p += DIRSIZ;
  }
}
Ejemplo n.º 2
0
void indirectBlock(unsigned char *p) {
  EOS32_daddr_t addr;
  int i;

  checkBatch(0);
  for (i = 0; i < BLOCK_SIZE / sizeof(EOS32_daddr_t); i++) {
    addr = get4Bytes(p);
    p += 4;
    printf("block[%4d] = %lu (0x%lX)\n", i, addr, addr);
    if (checkBatch(1)) return;
  }
}
Ejemplo n.º 3
0
int register_graphics::endBatch(lua_State* L)
{
        batch2d* batch = checkBatch(L, 1);
        batch->end();

        return 1;
}
Ejemplo n.º 4
0
void freeBlock(unsigned char *p) {
  unsigned int nfree;
  EOS32_daddr_t addr;
  int i;

  checkBatch(0);
  nfree = get4Bytes(p);
  p += 4;
  printf("nfree = %u (0x%X)\n", nfree, nfree);
  if (checkBatch(1)) return;
  for (i = 0; i < NICFREE; i++) {
    addr = get4Bytes(p);
    p += 4;
    if (i < nfree) {
      printf("  %s block[%3d] = %lu (0x%lX)\n",
             i == 0 ? "link" : "free", i, addr, addr);
      if (checkBatch(1)) return;
    }
  }
}
Ejemplo n.º 5
0
int register_graphics::createBatch(lua_State *L)
{
        batch2d* batch = checkBatch(L, 1);
        shader* s = checkShader(L, 2);
        int limit = 9000;
        if(lua_isinteger(L, 3))
                limit = lua_tointeger(L, 3);

        batch->create(s, limit);
        return 1;
}
Ejemplo n.º 6
0
int register_graphics::deleteBatch(lua_State *L)
{
        batch2d* f = checkBatch(L, 1);
        if (f != NULL){
                SAFE_DELETE(f);
        }else{
                LOG("can not delete batch because it is null!");
                return 0;
        }
        return 1;
}
Ejemplo n.º 7
0
int register_graphics::drawBatch(lua_State *L)
{
        batch2d* batch = checkBatch(L, 1);
        luaL_checknumber(L, 2);
        luaL_checknumber(L, 3);
        luaL_checknumber(L, 4);
        luaL_checknumber(L, 5);
        float x = lua_tonumber(L, 2);
        float y = lua_tonumber(L, 3);
        float w = lua_tonumber(L, 4);
        float h = lua_tonumber(L, 5);

        float rotation = 0;
        if(lua_isnumber(L, 6))
                rotation = lua_tonumber(L, 6);
        float originX = w * 0.5f;
        if(lua_isnumber(L, 7))
                originX = lua_tonumber(L, 7);
        float originY = h * 0.5f;
        if(lua_isnumber(L, 8))
                originY = lua_tonumber(L, 8);
        float srcX = 0;
        if(lua_tonumber(L, 9))
                srcX = lua_tonumber(L, 9);
        float srcY = 0;
        if(lua_tonumber(L, 10))
                srcY = lua_tonumber(L, 10);
        float srcWidth = w;
        if(lua_tonumber(L,11))
                srcWidth = lua_tonumber(L, 11);
        float srcHeight = h;
        if(lua_tonumber(L,12))
                srcHeight = lua_tonumber(L, 12);
        bool flipX = false;
        if(lua_toboolean(L, 13))
                flipX = lua_toboolean(L, 13);
        bool flipY = true;
        if(lua_toboolean(L, 14))
                flipY = lua_toboolean(L, 14);
        float scaleX = 1;
        if(lua_tonumber(L,15))
                scaleX = lua_tonumber(L, 15);
        float scaleY = 1;
        if(lua_tonumber(L, 16))
                scaleY = lua_tonumber(L, 16);

        batch->draw(x, y, w, h, rotation, originX, originY, srcX, srcY, srcWidth, srcHeight, flipX, flipY, scaleX, scaleY);
        return 1;
}
Ejemplo n.º 8
0
void rawBlock(unsigned char *p) {
  int i, j;
  unsigned char c;

  checkBatch(0);
  for (i = 0; i < BLOCK_SIZE / 16; i++) {
    printf("%04X   ", i * 16);
    for (j = 0; j < 16; j++) {
      c = p[i * 16 + j];
      printf("%02X ", c);
    }
    printf("   ");
    for (j = 0; j < 16; j++) {
      c = p[i * 16 + j];
      if (c < 0x20 || c >= 0x7F) {
        printf(".");
      } else {
        printf("%c", c);
      }
    }
    printf("\n");
    if (checkBatch(1)) return;
  }
}
Ejemplo n.º 9
0
void inodeBlock(unsigned char *p) {
  unsigned int mode;
  unsigned int nlink;
  unsigned int uid;
  unsigned int gid;
  EOS32_time_t tim;
  char *dat;
  EOS32_off_t size;
  EOS32_daddr_t addr;
  int i, j;

  checkBatch(0);
  for (i = 0; i < INOPB; i++) {
    printf("inode %d:", i);
    mode = get4Bytes(p);
    p += 4;
    if (mode != 0) {
      printf("  type/mode = 0x%08X = ", mode);
      if ((mode & IFMT) == IFREG) {
        printf("-");
      } else
      if ((mode & IFMT) == IFDIR) {
        printf("d");
      } else
      if ((mode & IFMT) == IFCHR) {
        printf("c");
      } else
      if ((mode & IFMT) == IFBLK) {
        printf("b");
      } else {
        printf("?");
      }
      printf("%c", mode & IUREAD  ? 'r' : '-');
      printf("%c", mode & IUWRITE ? 'w' : '-');
      printf("%c", mode & IUEXEC  ? 'x' : '-');
      printf("%c", mode & IGREAD  ? 'r' : '-');
      printf("%c", mode & IGWRITE ? 'w' : '-');
      printf("%c", mode & IGEXEC  ? 'x' : '-');
      printf("%c", mode & IOREAD  ? 'r' : '-');
      printf("%c", mode & IOWRITE ? 'w' : '-');
      printf("%c", mode & IOEXEC  ? 'x' : '-');
      if (mode & ISUID) {
        printf(", set uid");
      }
      if (mode & ISGID) {
        printf(", set gid");
      }
      if (mode & ISVTX) {
        printf(", save text");
      }
    } else {
      printf("  <free>");
    }
    printf("\n");
    if (checkBatch(1)) return;
    nlink = get4Bytes(p);
    p += 4;
    if (mode != 0) {
      printf("  nlnk = %u (0x%08X)\n", nlink, nlink);
      if (checkBatch(1)) return;
    }
    uid = get4Bytes(p);
    p += 4;
    if (mode != 0) {
      printf("  uid  = %u (0x%08X)\n", uid, uid);
      if (checkBatch(1)) return;
    }
    gid = get4Bytes(p);
    p += 4;
    if (mode != 0) {
      printf("  gid  = %u (0x%08X)\n", gid, gid);
      if (checkBatch(1)) return;
    }
    tim = get4Bytes(p);
    p += 4;
    dat = ctime(&tim);
    dat[strlen(dat) - 1] = '\0';
    if (mode != 0) {
      printf("  time inode created = %ld (%s)\n", tim, dat);
      if (checkBatch(1)) return;
    }
    tim = get4Bytes(p);
    p += 4;
    dat = ctime(&tim);
    dat[strlen(dat) - 1] = '\0';
    if (mode != 0) {
      printf("  time last modified = %ld (%s)\n", tim, dat);
      if (checkBatch(1)) return;
    }
    tim = get4Bytes(p);
    p += 4;
    dat = ctime(&tim);
    dat[strlen(dat) - 1] = '\0';
    if (mode != 0) {
      printf("  time last accessed = %ld (%s)\n", tim, dat);
      if (checkBatch(1)) return;
    }
    size = get4Bytes(p);
    p += 4;
    if (mode != 0) {
      printf("  size = %lu (0x%lX)\n", size, size);
      if (checkBatch(1)) return;
    }
    for (j = 0; j < 6; j++) {
      addr = get4Bytes(p);
      p += 4;
      if (mode != 0) {
        printf("  direct block[%1d] = %lu (0x%lX)\n", j, addr, addr);
        if (checkBatch(1)) return;
      }
    }
    addr = get4Bytes(p);
    p += 4;
    if (mode != 0) {
      printf("  single indirect = %lu (0x%lX)\n", addr, addr);
      if (checkBatch(1)) return;
    }
    addr = get4Bytes(p);
    p += 4;
    if (mode != 0) {
      printf("  double indirect = %lu (0x%lX)\n", addr, addr);
      if (checkBatch(1)) return;
    }
  }
}
Ejemplo n.º 10
0
void superBlock(unsigned char *p) {
  unsigned int magic;
  EOS32_daddr_t fsize;
  EOS32_daddr_t isize;
  EOS32_daddr_t freeblks;
  EOS32_ino_t freeinos;
  unsigned int ninode;
  EOS32_ino_t ino;
  unsigned int nfree;
  EOS32_daddr_t free;
  EOS32_time_t tim;
  char *dat;
  unsigned char flag;
  int i;

  checkBatch(0);
  magic = get4Bytes(p);
  p += 4;
  printf("magic number = %u (0x%08X)\n", magic, magic);
  if (checkBatch(1)) return;
  fsize = get4Bytes(p);
  p += 4;
  printf("file system size = %lu (0x%lX) blocks\n", fsize, fsize);
  if (checkBatch(1)) return;
  isize = get4Bytes(p);
  p += 4;
  printf("inode list size  = %lu (0x%lX) blocks\n", isize, isize);
  if (checkBatch(1)) return;
  freeblks = get4Bytes(p);
  p += 4;
  printf("free blocks = %lu (0x%lX)\n", freeblks, freeblks);
  if (checkBatch(1)) return;
  freeinos = get4Bytes(p);
  p += 4;
  printf("free inodes = %lu (0x%lX)\n", freeinos, freeinos);
  if (checkBatch(1)) return;
  ninode = get4Bytes(p);
  p += 4;
  printf("number of entries in free inode list = %u (0x%X)\n", ninode, ninode);
  if (checkBatch(1)) return;
  for (i = 0; i < NICINOD; i++) {
    ino = get4Bytes(p);
    p += 4;
    if (i < ninode) {
      printf("  free inode[%3d] = %lu (0x%lX)\n", i, ino, ino);
      if (checkBatch(1)) return;
    }
  }
  nfree = get4Bytes(p);
  p += 4;
  printf("number of entries in free block list = %u (0x%X)\n", nfree, nfree);
  if (checkBatch(1)) return;
  for (i = 0; i < NICFREE; i++) {
    free = get4Bytes(p);
    p += 4;
    if (i < nfree) {
      printf("  %s block[%3d] = %lu (0x%lX)\n",
             i == 0 ? "link" : "free", i, free, free);
      if (checkBatch(1)) return;
    }
  }
  tim = get4Bytes(p);
  p += 4;
  dat = ctime(&tim);
  dat[strlen(dat) - 1] = '\0';
  printf("last super block update = %ld (%s)\n", tim, dat);
  if (checkBatch(1)) return;
  flag = *p++;
  printf("free list locked flag = %d\n", (int) flag);
  if (checkBatch(1)) return;
  flag = *p++;
  printf("inode list locked flag = %d\n", (int) flag);
  if (checkBatch(1)) return;
  flag = *p++;
  printf("super block modified flag = %d\n", (int) flag);
  if (checkBatch(1)) return;
  flag = *p++;
  printf("fs mounted read-only flag = %d\n", (int) flag);
  if (checkBatch(1)) return;
}
Ejemplo n.º 11
0
int register_graphics::beginBatch(lua_State *L)
{
        batch2d* batch = checkBatch(L, 1);
        batch->begin();
        return 1;
}
Ejemplo n.º 12
0
int register_graphics::renderMesh(lua_State *L)
{
        batch2d* b = checkBatch(L, 1);
        b->renderMesh();
        return 1;
}