本文整理汇总了C++中cdio_assert函数的典型用法代码示例。如果您正苦于以下问题:C++ cdio_assert函数的具体用法?C++ cdio_assert怎么用?C++ cdio_assert使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了cdio_assert函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: iso9660_pathtable_m_add_entry
uint16_t
iso9660_pathtable_m_add_entry (void *pt,
const char name[],
uint32_t extent,
uint16_t parent)
{
iso_path_table_t *ipt =
(iso_path_table_t *)((char *)pt + iso9660_pathtable_get_size (pt));
size_t name_len = strlen (name) ? strlen (name) : 1;
unsigned int entrynum = 0;
cdio_assert (iso9660_pathtable_get_size(pt) < ISO_BLOCKSIZE); /* fixme */
memset(ipt, 0, sizeof (iso_path_table_t) + name_len); /* paranoia */
ipt->name_len = to_711 (name_len);
ipt->extent = to_732 (extent);
ipt->parent = to_722 (parent);
memcpy (ipt->name, name, name_len);
pathtable_get_size_and_entries (pt, NULL, &entrynum);
if (entrynum > 1)
{
const iso_path_table_t *ipt2
= pathtable_get_entry (pt, entrynum - 2);
cdio_assert (ipt2 != NULL);
cdio_assert (from_722 (ipt2->parent) <= parent);
}
return entrynum;
}
开发者ID:10se1ucgo,项目名称:rufus,代码行数:34,代码来源:iso9660.c
示例2: cdio_read_mode1_sector
/*!
Reads a single mode1 form1 or form2 sector from cd device
into data starting from lsn. Returns 0 if no error.
*/
int
cdio_read_mode1_sector (const CdIo *cdio, void *data, lsn_t lsn, bool is_form2)
{
uint32_t size = is_form2 ? M2RAW_SECTOR_SIZE : CDIO_CD_FRAMESIZE ;
char buf[M2RAW_SECTOR_SIZE] = { 0, };
int ret;
cdio_assert (cdio != NULL);
cdio_assert (data != NULL);
if (cdio->op.lseek && cdio->op.read) {
if (0 > cdio_lseek(cdio, CDIO_CD_FRAMESIZE*lsn, SEEK_SET))
return -1;
if (0 > cdio_read(cdio, buf, CDIO_CD_FRAMESIZE))
return -1;
memcpy (data, buf, size);
return 0;
} else {
ret = cdio_read_mode2_sector(cdio, data, lsn, is_form2);
if (ret == 0)
memcpy (data, buf+CDIO_CD_SUBHEADER_SIZE, size);
}
return ret;
}
开发者ID:OS2World,项目名称:MM-SOUND-xine,代码行数:29,代码来源:cdio.c
示例3: pathtable_get_entry
static const iso_path_table_t *
pathtable_get_entry (const void *pt, unsigned int entrynum)
{
const uint8_t *tmp = pt;
unsigned int offset = 0;
unsigned int count = 0;
cdio_assert (pt != NULL);
while (from_711 (*tmp))
{
if (count == entrynum)
break;
cdio_assert (count < entrynum);
offset += sizeof (iso_path_table_t);
offset += from_711 (*tmp);
if (offset % 2)
offset++;
tmp = (uint8_t *)pt + offset;
count++;
}
if (!from_711 (*tmp))
return NULL;
return (const void *) tmp;
}
开发者ID:10se1ucgo,项目名称:rufus,代码行数:29,代码来源:iso9660.c
示例4: iso9660_dir_init_new_su
void
iso9660_dir_init_new_su (void *dir,
uint32_t self,
uint32_t ssize,
const void *ssu_data,
unsigned int ssu_size,
uint32_t parent,
uint32_t psize,
const void *psu_data,
unsigned int psu_size,
const time_t *dir_time)
{
cdio_assert (ssize > 0 && !(ssize % ISO_BLOCKSIZE));
cdio_assert (psize > 0 && !(psize % ISO_BLOCKSIZE));
cdio_assert (dir != NULL);
memset (dir, 0, ssize);
/* "\0" -- working hack due to padding */
iso9660_dir_add_entry_su (dir, "\0", self, ssize, ISO_DIRECTORY, ssu_data,
ssu_size, dir_time);
iso9660_dir_add_entry_su (dir, "\1", parent, psize, ISO_DIRECTORY, psu_data,
psu_size, dir_time);
}
开发者ID:10se1ucgo,项目名称:rufus,代码行数:25,代码来源:iso9660.c
示例5: iso9660_fs_readdir
void * /* list of char* -- caller must free it */
iso9660_fs_readdir (const CdIo *cdio, const char pathname[], bool is_mode2)
{
iso9660_stat_t stat;
cdio_assert (cdio != NULL);
cdio_assert (pathname != NULL);
if (iso9660_fs_stat (cdio, pathname, &stat, is_mode2))
return NULL;
if (stat.type != _STAT_DIR)
return NULL;
{
unsigned offset = 0;
uint8_t *_dirbuf = NULL;
CdioList *retval = _cdio_list_new ();
if (stat.size != ISO_BLOCKSIZE * stat.secsize)
{
cdio_warn ("bad size for ISO9660 directory (%ud) should be (%lu)!",
(unsigned) stat.size,
(unsigned long int) ISO_BLOCKSIZE * stat.secsize);
}
_dirbuf = _cdio_malloc (stat.secsize * ISO_BLOCKSIZE);
if (is_mode2) {
if (cdio_read_mode2_sectors (cdio, _dirbuf, stat.lsn, false,
stat.secsize))
cdio_assert_not_reached ();
} else {
if (cdio_read_mode1_sectors (cdio, _dirbuf, stat.lsn, false,
stat.secsize))
cdio_assert_not_reached ();
}
while (offset < (stat.secsize * ISO_BLOCKSIZE))
{
const iso9660_dir_t *idr = (void *) &_dirbuf[offset];
if (!iso9660_get_dir_len(idr))
{
offset++;
continue;
}
_cdio_list_append (retval, _idr2name (idr));
offset += iso9660_get_dir_len(idr);
}
cdio_assert (offset == (stat.secsize * ISO_BLOCKSIZE));
free (_dirbuf);
return retval;
}
}
开发者ID:OS2World,项目名称:MM-SOUND-xine,代码行数:59,代码来源:iso9660_fs.c
示例6: iso9660_pathtable_init
/* Zero's out pathable. Do this first. */
void
iso9660_pathtable_init (void *pt)
{
cdio_assert (sizeof (iso_path_table_t) == 8);
cdio_assert (pt != NULL);
memset (pt, 0, ISO_BLOCKSIZE); /* fixme */
}
开发者ID:10se1ucgo,项目名称:rufus,代码行数:10,代码来源:iso9660.c
示例7: cdio_set_arg
/*!
Set the arg "key" with "value" in the source device.
*/
int
cdio_set_arg (CdIo *cdio, const char key[], const char value[])
{
cdio_assert (cdio != NULL);
cdio_assert (cdio->op.set_arg != NULL);
cdio_assert (key != NULL);
return cdio->op.set_arg (cdio->env, key, value);
}
开发者ID:OS2World,项目名称:MM-SOUND-xine,代码行数:12,代码来源:cdio.c
示例8: cdio_read_audio_sector
int
cdio_read_audio_sector (const CdIo *cdio, void *buf, lsn_t lsn)
{
cdio_assert (cdio != NULL);
cdio_assert (buf != NULL);
if (cdio->op.read_audio_sectors != NULL)
return cdio->op.read_audio_sectors (cdio->env, buf, lsn, 1);
return -1;
}
开发者ID:OS2World,项目名称:MM-SOUND-xine,代码行数:10,代码来源:cdio.c
示例9: cdio_read_audio_sectors
int
cdio_read_audio_sectors (const CdIo *cdio, void *buf, lsn_t lsn,
unsigned int nblocks)
{
cdio_assert (cdio != NULL);
cdio_assert (buf != NULL);
if (cdio->op.read_audio_sectors != NULL)
return cdio->op.read_audio_sectors (cdio->env, buf, lsn, nblocks);
return -1;
}
开发者ID:OS2World,项目名称:MM-SOUND-xine,代码行数:11,代码来源:cdio.c
示例10: cdio_read_mode2_sectors
int
cdio_read_mode2_sectors (const CdIo *cdio, void *buf, lsn_t lsn, bool mode2raw,
unsigned num_sectors)
{
cdio_assert (cdio != NULL);
cdio_assert (buf != NULL);
cdio_assert (cdio->op.read_mode2_sectors != NULL);
return cdio->op.read_mode2_sectors (cdio->env, buf, lsn,
mode2raw, num_sectors);
}
开发者ID:OS2World,项目名称:MM-SOUND-xine,代码行数:11,代码来源:cdio.c
示例11: _cdio_list_foreach
void
_cdio_list_foreach (CdioList *list, _cdio_list_iterfunc func, void *user_data)
{
CdioListNode *node;
cdio_assert (list != NULL);
cdio_assert (func != 0);
for (node = _cdio_list_begin (list);
node != NULL;
node = _cdio_list_node_next (node))
func (_cdio_list_node_data (node), user_data);
}
开发者ID:OS2World,项目名称:MM-SOUND-xine,代码行数:13,代码来源:ds.c
示例12: _cdio_list_foreach
void
_cdio_list_foreach (CdioList_t *p_list, _cdio_list_iterfunc_t func,
void *p_user_data)
{
CdioListNode_t *node;
cdio_assert (p_list != NULL);
cdio_assert (func != 0);
for (node = _cdio_list_begin (p_list);
node != NULL;
node = _cdio_list_node_next (node))
func (_cdio_list_node_data (node), p_user_data);
}
开发者ID:CaoCaoBeard,项目名称:pcejin,代码行数:14,代码来源:ds.c
示例13: _cdio_list_node_free
void
_cdio_list_node_free (CdioListNode *node, int free_data)
{
CdioList *list;
CdioListNode *prev_node;
cdio_assert (node != NULL);
list = node->list;
cdio_assert (_cdio_list_length (list) > 0);
if (free_data)
free (_cdio_list_node_data (node));
if (_cdio_list_length (list) == 1)
{
cdio_assert (list->begin == list->end);
list->end = list->begin = NULL;
list->length = 0;
free (node);
return;
}
cdio_assert (list->begin != list->end);
if (list->begin == node)
{
list->begin = node->next;
free (node);
list->length--;
return;
}
for (prev_node = list->begin; prev_node->next; prev_node = prev_node->next)
if (prev_node->next == node)
break;
cdio_assert (prev_node->next != NULL);
if (list->end == node)
list->end = prev_node;
prev_node->next = node->next;
list->length--;
free (node);
}
开发者ID:OS2World,项目名称:MM-SOUND-xine,代码行数:50,代码来源:ds.c
示例14: _cdio_list_node_free
void
_cdio_list_node_free (CdioListNode_t *p_node, int free_data)
{
CdioList_t *p_list;
CdioListNode_t *prev_node;
cdio_assert (p_node != NULL);
p_list = p_node->list;
cdio_assert (_cdio_list_length (p_list) > 0);
if (free_data)
free (_cdio_list_node_data (p_node));
if (_cdio_list_length (p_list) == 1)
{
cdio_assert (p_list->begin == p_list->end);
p_list->end = p_list->begin = NULL;
p_list->length = 0;
free (p_node);
return;
}
cdio_assert (p_list->begin != p_list->end);
if (p_list->begin == p_node)
{
p_list->begin = p_node->next;
free (p_node);
p_list->length--;
return;
}
for (prev_node = p_list->begin; prev_node->next; prev_node = prev_node->next)
if (prev_node->next == p_node)
break;
cdio_assert (prev_node->next != NULL);
if (p_list->end == p_node)
p_list->end = prev_node;
prev_node->next = p_node->next;
p_list->length--;
free (p_node);
}
开发者ID:CaoCaoBeard,项目名称:pcejin,代码行数:50,代码来源:ds.c
示例15: _cdio_list_end
CdioListNode *
_cdio_list_end (CdioList *list)
{
cdio_assert (list != NULL);
return list->end;
}
开发者ID:OS2World,项目名称:MM-SOUND-xine,代码行数:7,代码来源:ds.c
示例16: _cdio_list_begin
CdioListNode *
_cdio_list_begin (const CdioList *list)
{
cdio_assert (list != NULL);
return list->begin;
}
开发者ID:OS2World,项目名称:MM-SOUND-xine,代码行数:7,代码来源:ds.c
示例17: _cdio_list_find
CdioListNode *
_cdio_list_find (CdioList *list, _cdio_list_iterfunc cmp_func, void *user_data)
{
CdioListNode *node;
cdio_assert (list != NULL);
cdio_assert (cmp_func != 0);
for (node = _cdio_list_begin (list);
node != NULL;
node = _cdio_list_node_next (node))
if (cmp_func (_cdio_list_node_data (node), user_data))
break;
return node;
}
开发者ID:OS2World,项目名称:MM-SOUND-xine,代码行数:16,代码来源:ds.c
示例18: cdio_stat_size
uint32_t
cdio_stat_size (const CdIo *cdio)
{
cdio_assert (cdio != NULL);
return cdio->op.stat_size (cdio->env);
}
开发者ID:OS2World,项目名称:MM-SOUND-xine,代码行数:7,代码来源:cdio.c
示例19: _cdio_list_length
unsigned
_cdio_list_length (const CdioList_t *p_list)
{
cdio_assert (p_list != NULL);
return p_list->length;
}
开发者ID:CaoCaoBeard,项目名称:pcejin,代码行数:7,代码来源:ds.c
示例20: _cdio_list_begin
CdioListNode_t *
_cdio_list_begin (const CdioList_t *p_list)
{
cdio_assert (p_list != NULL);
return p_list->begin;
}
开发者ID:CaoCaoBeard,项目名称:pcejin,代码行数:7,代码来源:ds.c
注:本文中的cdio_assert函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论