本文整理汇总了C++中osd_malloc函数的典型用法代码示例。如果您正苦于以下问题:C++ osd_malloc函数的具体用法?C++ osd_malloc怎么用?C++ osd_malloc使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了osd_malloc函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: decryptcode
MACHINE_DRIVER_END
/***************************************************************************
ROMs Loading
***************************************************************************/
/* Address lines scrambling */
static void decryptcode( int a23, int a22, int a21, int a20, int a19, int a18, int a17, int a16, int a15, int a14, int a13, int a12,
int a11, int a10, int a9, int a8, int a7, int a6, int a5, int a4, int a3, int a2, int a1, int a0 )
{
int i;
data8_t *RAM = memory_region( REGION_CPU1 );
size_t size = memory_region_length( REGION_CPU1 );
data8_t *buffer = osd_malloc( size );
if( buffer )
{
memcpy( buffer, RAM, size );
for( i = 0; i < size; i++ )
{
RAM[ i ] = buffer[ BITSWAP24( i, a23, a22, a21, a20, a19, a18, a17, a16, a15, a14, a13, a12,
a11, a10, a9, a8, a7, a6, a5, a4, a3, a2, a1, a0 ) ];
}
free( buffer );
}
}
开发者ID:joolswills,项目名称:mameox,代码行数:31,代码来源:afega.c
示例2: osd_malloc
void *malloc_file_line(size_t size, const char *file, int line)
{
// allocate the memory and fail if we can't
void *ret = osd_malloc(size);
memset(ret, 0, size);
return ret;
}
开发者ID:ef1105,项目名称:mameplus,代码行数:7,代码来源:nltool.c
示例3: fatalerror
void *malloc_or_die_file_line(size_t size, const char *file, int line)
{
void *result;
/* fail on attempted allocations of 0 */
if (size == 0)
fatalerror("Attempted to malloc zero bytes (%s:%d)", file, line);
/* allocate and return if we succeeded */
#ifdef MALLOC_DEBUG
result = malloc_file_line(size, file, line);
#elif _PS3_
result = osd_malloc(size);
#else
result = malloc(size);
#endif
if (result != NULL)
{
#ifdef MAME_DEBUG
rand_memory(result, size);
#endif
return result;
}
/* otherwise, die horribly */
fatalerror("Failed to allocate %d bytes (%s:%d)", (int)size, file, line);
}
开发者ID:cdenix,项目名称:ps3-mame-0125,代码行数:27,代码来源:restrack.c
示例4: wav_add_data_32
void wav_add_data_32(wav_file *wav, INT32 *data, int samples, int shift)
{
INT16 *temp;
int i;
if (!wav) return;
/* allocate temp memory */
temp = (INT16 *)osd_malloc(samples * sizeof(temp[0]));
if (!temp)
return;
/* clamp */
for (i = 0; i < samples; i++)
{
int val = data[i] >> shift;
temp[i] = (val < -32768) ? -32768 : (val > 32767) ? 32767 : val;
}
/* write and flush */
fwrite(temp, 2, samples, wav->file);
fflush(wav->file);
/* free memory */
osd_free(temp);
}
开发者ID:AltimorTASDK,项目名称:shmupmametgm,代码行数:26,代码来源:wavwrite.c
示例5: osd_malloc_array
void *malloc_file_line(size_t size, const char *file, int line, bool array, bool throw_on_fail, bool clear)
{
// allocate the memory and fail if we can't
void *result = array ? osd_malloc_array(size) : osd_malloc(size);
if (result == nullptr)
{
fprintf(stderr, "Failed to allocate %d bytes (%s:%d)\n", UINT32(size), file, line);
osd_break_into_debugger("Failed to allocate RAM");
if (throw_on_fail)
throw std::bad_alloc();
return nullptr;
}
// zap the memory if requested
if (clear)
memset(result, 0, size);
else
{
#if !__has_feature(memory_sanitizer) && defined(INITIALIZE_ALLOCATED_MEMORY) && !defined(MAME_DEBUG_FAST)
memset(result, 0xdd, size);
#endif
}
// add a new entry
memory_entry::allocate(size, result, file, line, array);
return result;
}
开发者ID:toughkidcst,项目名称:mame,代码行数:28,代码来源:corealloc.cpp
示例6: osd_free
text_buffer *text_buffer_alloc(UINT32 bytes, UINT32 lines)
{
text_buffer *text;
/* allocate memory for the text buffer object */
text = (text_buffer *)osd_malloc(sizeof(*text));
if (!text)
return NULL;
/* allocate memory for the buffer itself */
text->buffer = (char *)osd_malloc_array(bytes);
if (!text->buffer)
{
osd_free(text);
return NULL;
}
/* allocate memory for the lines array */
text->lineoffs = (INT32 *)osd_malloc_array(lines * sizeof(text->lineoffs[0]));
if (!text->lineoffs)
{
osd_free(text->buffer);
osd_free(text);
return NULL;
}
/* initialize the buffer description */
text->bufsize = bytes;
text->linesize = lines;
text_buffer_clear(text);
return text;
}
开发者ID:Ilgrim,项目名称:MAMEHub,代码行数:33,代码来源:textbuf.c
示例7: osd_malloc
static osd_shared_mem *osd_sharedmem_alloc(const char *path, int create, size_t size)
{
int fd;
osd_shared_mem *os_shmem = (osd_shared_mem *) osd_malloc(sizeof(osd_shared_mem));
if (create)
{
char *buf = (char *) osd_malloc_array(size);
memset(buf,0, size);
fd = open(path, O_RDWR | O_CREAT, S_IRWXU);
write(fd, buf, size);
os_shmem->creator = 1;
}
else
{
fd = open(path, O_RDWR);
if (fd == -1)
{
osd_free(os_shmem);
return NULL;
}
os_shmem->creator = 0;
}
os_shmem->fn = (char *) osd_malloc_array(strlen(path)+1);
strcpy(os_shmem->fn, path);
assert(fd != -1);
os_shmem->ptr = mmap(NULL, size, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
os_shmem->size = size;
close(fd);
return os_shmem;
}
开发者ID:Archlogic,项目名称:libretro-mame,代码行数:34,代码来源:gaelco3d.c
示例8: execute_sync
static inline void execute_sync(osd_work_callback callback, const worker_param &wp)
{
worker_param *wp_temp = (worker_param *) osd_malloc(sizeof(worker_param));
*wp_temp = wp;
callback((void *) wp_temp, 0);
}
开发者ID:gregdickhudl,项目名称:mame,代码行数:7,代码来源:window.cpp
示例9: osd_get_full_path
file_error osd_get_full_path(char **dst, const char *path)
{
file_error err;
char path_buffer[512];
err = FILERR_NONE;
if (getcwd(path_buffer, 511) == NULL)
{
printf("osd_get_full_path: failed!\n");
err = FILERR_FAILURE;
}
else
{
*dst = (char *)osd_malloc(strlen(path_buffer)+strlen(path)+3);
// if it's already a full path, just pass it through
if (path[0] == '/')
{
strcpy(*dst, path);
}
else
{
sprintf(*dst, "%s%s%s", path_buffer, PATH_SEPARATOR, path);
}
}
return err;
}
开发者ID:DarrenBranford,项目名称:MAME4iOS,代码行数:29,代码来源:sdlos_unix.c
示例10: defined
osd_directory_entry *osd_stat(const char *path)
{
int err;
osd_directory_entry *result = NULL;
#if defined(SDLMAME_DARWIN) || defined(SDLMAME_NO64BITIO)
struct stat st;
#else
struct stat64 st;
#endif
#if defined(SDLMAME_DARWIN) || defined(SDLMAME_NO64BITIO)
err = stat(path, &st);
#else
err = stat64(path, &st);
#endif
if( err == -1) return NULL;
// create an osd_directory_entry; be sure to make sure that the caller can
// free all resources by just freeing the resulting osd_directory_entry
result = (osd_directory_entry *) osd_malloc(sizeof(*result) + strlen(path) + 1);
strcpy(((char *) result) + sizeof(*result), path);
result->name = ((char *) result) + sizeof(*result);
result->type = S_ISDIR(st.st_mode) ? ENTTYPE_DIR : ENTTYPE_FILE;
result->size = (UINT64)st.st_size;
return result;
}
开发者ID:AltimorTASDK,项目名称:shmupmametgm,代码行数:28,代码来源:sdlos_macosx.c
示例11: wav_add_data_32lr
void wav_add_data_32lr(wav_file *wav, INT32 *left, INT32 *right, int samples, int shift)
{
INT16 *temp;
int i;
if (!wav) return;
/* allocate temp memory */
temp = (INT16 *)osd_malloc(samples * 2 * sizeof(temp[0]));
if (!temp)
return;
/* interleave */
for (i = 0; i < samples * 2; i++)
{
int val = (i & 1) ? right[i / 2] : left[i / 2];
val >>= shift;
temp[i] = (val < -32768) ? -32768 : (val > 32767) ? 32767 : val;
}
/* write and flush */
fwrite(temp, 4, samples, wav->file);
fflush(wav->file);
/* free memory */
osd_free(temp);
}
开发者ID:AltimorTASDK,项目名称:shmupmametgm,代码行数:27,代码来源:wavwrite.c
示例12: osd_malloc
int sdl_window_info::window_init()
{
worker_param *wp = (worker_param *) osd_malloc(sizeof(worker_param));
int result;
ASSERT_MAIN_THREAD();
// set the initial maximized state
// FIXME: Does not belong here
sdl_options &options = downcast<sdl_options &>(m_machine.options());
m_startmaximized = options.maximize();
// add us to the list
*last_window_ptr = this;
last_window_ptr = &this->m_next;
set_renderer(draw.create(this));
// create an event that we can use to skip blitting
m_rendered_event = osd_event_alloc(FALSE, TRUE);
// load the layout
m_target = m_machine.render().target_alloc();
// set the specific view
set_starting_view(m_index, options.view(), options.view(m_index));
// make the window title
if (video_config.numscreens == 1)
sprintf(m_title, "%s: %s [%s]", emulator_info::get_appname(), m_machine.system().description, m_machine.system().name);
else
sprintf(m_title, "%s: %s [%s] - Screen %d", emulator_info::get_appname(), m_machine.system().description, m_machine.system().name, m_index);
wp->set_window(this);
// FIXME: pass error back in a different way
if (multithreading_enabled)
{
osd_work_item *wi;
wi = osd_work_item_queue(work_queue, &sdl_window_info::complete_create_wt, (void *) wp, 0);
sdlwindow_sync();
result = *((int *) (osd_work_item_result)(wi));
osd_work_item_release(wi);
}
else
result = *((int *) sdl_window_info::complete_create_wt((void *) wp, 0));
// handle error conditions
if (result == 1)
goto error;
return 0;
error:
destroy();
return 1;
}
开发者ID:mbcoguno,项目名称:mame,代码行数:58,代码来源:window.c
示例13: add_list
static void add_list(copy_info **head, copy_info *element, Uint32 bm)
{
copy_info *newci = (copy_info *) osd_malloc(sizeof(copy_info));
*newci = *element;
newci->bm_mask = bm;
newci->next = *head;
*head = newci;
}
开发者ID:kleopatra999,项目名称:mess-svn,代码行数:9,代码来源:draw13.c
示例14: win_tstring_strdup
TCHAR* win_tstring_strdup(LPCTSTR str)
{
TCHAR *cpy = NULL;
if (str != NULL)
{
cpy = (TCHAR*)osd_malloc((_tcslen(str) + 1) * sizeof(TCHAR));
if (cpy != NULL)
_tcscpy(cpy, str);
}
return cpy;
}
开发者ID:cdrr,项目名称:mameui,代码行数:11,代码来源:mui_util.cpp
示例15: execute_async
static inline void execute_async(osd_work_callback callback, const worker_param &wp)
{
worker_param *wp_temp = (worker_param *) osd_malloc(sizeof(worker_param));
*wp_temp = wp;
if (multithreading_enabled)
{
osd_work_item_queue(work_queue, callback, (void *) wp_temp, WORK_ITEM_FLAG_AUTO_RELEASE);
} else
callback((void *) wp_temp, 0);
}
开发者ID:gregdickhudl,项目名称:mame,代码行数:11,代码来源:window.cpp
示例16: osd_malloc
static char *build_full_path(const char *path, const char *file)
{
char *ret = (char *) osd_malloc(strlen(path)+strlen(file)+2);
char *p = ret;
strcpy(p, path);
p += strlen(path);
*p++ = PATHSEPCH;
strcpy(p, file);
return ret;
}
开发者ID:AltimorTASDK,项目名称:shmupmametgm,代码行数:11,代码来源:sdldir.c
示例17: osd_malloc
static win_i *add_win_i(running_machine &machine, int win_type)
{
win_i *win = (win_i *) osd_malloc(sizeof(*win));
memset(win, 0, sizeof(*win));
win->cpu = NULL;
win->machine = &machine;
win->type = win_type;
win->next = win_list;
win_list = win;
return win;
}
开发者ID:Ilgrim,项目名称:MAMEHub,代码行数:12,代码来源:debugwin.c
示例18: WideCharToMultiByte
char *utf8_from_wstring(const WCHAR *wstring)
{
int char_count;
char *result;
// convert UTF-16 to MAME string (UTF-8)
char_count = WideCharToMultiByte(CP_UTF8, 0, wstring, -1, NULL, 0, NULL, NULL);
result = (char *)osd_malloc(char_count * sizeof(*result));
if (result != NULL)
WideCharToMultiByte(CP_UTF8, 0, wstring, -1, result, char_count, NULL, NULL);
return result;
}
开发者ID:DarrenBranford,项目名称:MAME4iOS,代码行数:13,代码来源:strconv.c
示例19: MultiByteToWideChar
WCHAR *wstring_from_utf8(const char *utf8string)
{
int char_count;
WCHAR *result;
// convert MAME string (UTF-8) to UTF-16
char_count = MultiByteToWideChar(CP_UTF8, 0, utf8string, -1, NULL, 0);
result = (WCHAR *)osd_malloc(char_count * sizeof(*result));
if (result != NULL)
MultiByteToWideChar(CP_UTF8, 0, utf8string, -1, result, char_count);
return result;
}
开发者ID:DarrenBranford,项目名称:MAME4iOS,代码行数:13,代码来源:strconv.c
示例20: Pm_CountDevices
osd_midi_device *osd_open_midi_output(const char *devname)
{
int num_devs = Pm_CountDevices();
int found_dev = -1;
const PmDeviceInfo *pmInfo;
PortMidiStream *stm;
osd_midi_device *ret;
if (!strcmp("default", devname))
{
found_dev = Pm_GetDefaultOutputDeviceID();
}
else
{
for (int i = 0; i < num_devs; i++)
{
pmInfo = Pm_GetDeviceInfo(i);
if (pmInfo->output)
{
if (!strcmp(devname, pmInfo->name))
{
found_dev = i;
break;
}
}
}
}
if (found_dev >= 0)
{
if (Pm_OpenOutput(&stm, found_dev, NULL, 100, NULL, NULL, 0) == pmNoError)
{
ret = (osd_midi_device *)osd_malloc(sizeof(osd_midi_device));
memset(ret, 0, sizeof(osd_midi_device));
ret->pmStream = stm;
return ret;
}
else
{
printf("Couldn't open PM device\n");
return NULL;
}
}
else
{
return NULL;
}
return NULL;
}
开发者ID:crazii,项目名称:mameplus,代码行数:50,代码来源:portmidi.c
注:本文中的osd_malloc函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论