| 1 | /*␊ |
| 2 | * ext2fs.c␊ |
| 3 | * ␊ |
| 4 | *␊ |
| 5 | * Created by mackerintel on 1/26/09.␊ |
| 6 | * Copyright 2009 __MyCompanyName__. All rights reserved.␊ |
| 7 | *␊ |
| 8 | */␊ |
| 9 | ␊ |
| 10 | //#include "libsaio.h"␊ |
| 11 | #include "sl.h"␊ |
| 12 | #include "ext2fs.h"␊ |
| 13 | ␊ |
| 14 | #define EX2ProbeSize␉2048␊ |
| 15 | ␊ |
| 16 | bool EX2Probe (const void *buf)␊ |
| 17 | {␊ |
| 18 | ␉return (OSReadLittleInt16(buf+0x438,0)==0xEF53);␊ |
| 19 | }␊ |
| 20 | ␊ |
| 21 | void EX2GetDescription(CICell ih, char *str, long strMaxLen)␊ |
| 22 | {␊ |
| 23 | ␉char * buf=malloc (EX2ProbeSize);␊ |
| 24 | ␉str[0]=0;␊ |
| 25 | ␉if (!buf)␊ |
| 26 | ␉␉return;␊ |
| 27 | ␉Seek(ih, 0);␊ |
| 28 | ␉Read(ih, (long)buf, EX2ProbeSize);␊ |
| 29 | ␉if (!EX2Probe (buf))␊ |
| 30 | ␉{␊ |
| 31 | ␉␉free (buf);␊ |
| 32 | ␉␉return;␊ |
| 33 | ␉}␊ |
| 34 | ␉if (OSReadLittleInt32 (buf+0x44c,0)<1)␊ |
| 35 | ␉{␊ |
| 36 | ␉␉free (buf);␊ |
| 37 | ␉␉return;␊ |
| 38 | ␉}␊ |
| 39 | ␉str[strMaxLen]=0;␊ |
| 40 | ␉strncpy (str, buf+0x478, min (strMaxLen, 16));␊ |
| 41 | ␉free (buf);␊ |
| 42 | }␊ |
| 43 | |