/* returns a LLVM representation corresponding to the C translation of the * given IDL type. */ LLVMTypeRef llvm_value_type(struct llvm_ctx *ctx, IDL_tree type) { if(type == NULL) return LLVMVoidTypeInContext(ctx->ctx); switch(IDL_NODE_TYPE(type)) { case IDLN_TYPE_INTEGER: { static short bitlens[] = { [IDL_INTEGER_TYPE_SHORT] = 16, [IDL_INTEGER_TYPE_LONG] = 32, [IDL_INTEGER_TYPE_LONGLONG] = 64, }; int t = IDL_TYPE_INTEGER(type).f_type; assert(t < G_N_ELEMENTS(bitlens)); return LLVMIntTypeInContext(ctx->ctx, bitlens[t]); } case IDLN_NATIVE: { /* each of these is the size of a single word, which is all LLVM * wants to know. */ if(IS_WORD_TYPE(type) || IS_FPAGE_TYPE(type) || IS_TIME_TYPE(type)) { return ctx->wordt; } else { fprintf(stderr, "%s: native type `%s' not supported\n", __FUNCTION__, NATIVE_NAME(type)); abort(); } break; } case IDLN_TYPE_FLOAT: switch(IDL_TYPE_FLOAT(type).f_type) { case IDL_FLOAT_TYPE_FLOAT: return LLVMFloatTypeInContext(ctx->ctx); case IDL_FLOAT_TYPE_DOUBLE: return LLVMDoubleTypeInContext(ctx->ctx); case IDL_FLOAT_TYPE_LONGDOUBLE: return LLVMFP128TypeInContext(ctx->ctx); } g_assert_not_reached(); case IDLN_TYPE_BOOLEAN: case IDLN_TYPE_OCTET: case IDLN_TYPE_CHAR: return LLVMInt8TypeInContext(ctx->ctx); case IDLN_TYPE_WIDE_CHAR: return ctx->i32t; case IDLN_TYPE_ENUM: return LLVMInt16TypeInContext(ctx->ctx); default: NOTDEFINED(type); } }
int attribute_align_arg ALIAS_NAME(mpg123_replace_reader_handle)(mpg123_handle *mh, ssize_t (*r_read) (void *, void *, size_t), lfs_alias_t (*r_lseek)(void *, lfs_alias_t, int), void (*cleanup)(void*)) { return NATIVE_NAME(mpg123_replace_reader_handle)(mh, r_read, r_lseek, cleanup); }
int attribute_align_arg ALIAS_NAME(mpg123_replace_reader)(mpg123_handle *mh, ssize_t (*r_read) (int, void *, size_t), lfs_alias_t (*r_lseek)(int, lfs_alias_t, int)) { return NATIVE_NAME(mpg123_replace_reader)(mh, r_read, r_lseek); }
int attribute_align_arg ALIAS_NAME(mpg123_set_filesize)(mpg123_handle *mh, lfs_alias_t size) { return NATIVE_NAME(mpg123_set_filesize)(mh, size); }
lfs_alias_t attribute_align_arg ALIAS_NAME(mpg123_length)(mpg123_handle *mh) { return NATIVE_NAME(mpg123_length)(mh); }
int attribute_align_arg ALIAS_NAME(mpg123_position)( mpg123_handle *mh, lfs_alias_t frame_offset, lfs_alias_t buffered_bytes, lfs_alias_t *current_frame, lfs_alias_t *frames_left, double *current_seconds, double *seconds_left) { return NATIVE_NAME(mpg123_position)(mh, frame_offset, buffered_bytes, current_frame, frames_left, current_seconds, seconds_left); }
int attribute_align_arg ALIAS_NAME(mpg123_set_index)(mpg123_handle *mh, lfs_alias_t *offsets, lfs_alias_t step, size_t fill) { return NATIVE_NAME(mpg123_set_index)(mh, offsets, step, fill); }
lfs_alias_t attribute_align_arg ALIAS_NAME(mpg123_timeframe)(mpg123_handle *mh, double sec) { return NATIVE_NAME(mpg123_timeframe)(mh, sec); }
lfs_alias_t attribute_align_arg ALIAS_NAME(mpg123_seek_frame)(mpg123_handle *mh, lfs_alias_t frameoff, int whence) { return NATIVE_NAME(mpg123_seek_frame)(mh, frameoff, whence); }
lfs_alias_t attribute_align_arg ALIAS_NAME(mpg123_feedseek)(mpg123_handle *mh, lfs_alias_t sampleoff, int whence, lfs_alias_t *input_offset) { return NATIVE_NAME(mpg123_feedseek)(mh, sampleoff, whence, input_offset); }
lfs_alias_t attribute_align_arg ALIAS_NAME(mpg123_seek)(mpg123_handle *mh, lfs_alias_t sampleoff, int whence) { return NATIVE_NAME(mpg123_seek)(mh, sampleoff, whence); }
lfs_alias_t attribute_align_arg ALIAS_NAME(mpg123_tell_stream)(mpg123_handle *mh) { return NATIVE_NAME(mpg123_tell_stream)(mh); }
int attribute_align_arg ALIAS_NAME(mpg123_framebyframe_decode)(mpg123_handle *mh, lfs_alias_t *num, unsigned char **audio, size_t *bytes) { return NATIVE_NAME(mpg123_framebyframe_decode)(mh, num, audio, bytes); }
int attribute_align_arg ALIAS_NAME(mpg123_open_handle)(mpg123_handle *mh, void *iohandle) { return NATIVE_NAME(mpg123_open_handle)(mh, iohandle); }
int attribute_align_arg ALIAS_NAME(mpg123_open_fd)(mpg123_handle *mh, int fd) { return NATIVE_NAME(mpg123_open_fd)(mh, fd); }
int attribute_align_arg ALIAS_NAME(mpg123_open)(mpg123_handle *mh, const char *path) { return NATIVE_NAME(mpg123_open)(mh, path); }