void __init setup_kdump_trampoline(void) { unsigned long i; DBG(" -> setup_kdump_trampoline()\n"); for (i = KDUMP_TRAMPOLINE_START; i < KDUMP_TRAMPOLINE_END; i += 8) { create_trampoline(i); } create_trampoline(__pa(system_reset_fwnmi) - PHYSICAL_START); create_trampoline(__pa(machine_check_fwnmi) - PHYSICAL_START); DBG(" <- setup_kdump_trampoline()\n"); }
/** * Returns the trampoline entity for the given method. */ static ir_entity *get_trampoline(be_main_env_t *env, ir_entity *method) { ir_entity *result = pmap_get(ir_entity, env->ent_trampoline_map, method); if (result == NULL) { result = create_trampoline(env, method); pmap_insert(env->ent_trampoline_map, method, result); } return result; }
static PyObject * Session_search(PyObject *self, PyObject *args, PyObject *kwds) { PyObject *callback, *userdata = NULL; Callback *trampoline; char *query; sp_search *search; sp_search_type search_type = SP_SEARCH_STANDARD; int track_offset = 0, track_count = 32, album_offset = 0, album_count = 32, artist_offset = 0, artist_count = 32, playlist_offset = 0, playlist_count = 32; static char *kwlist[] = { "query", "callback", "track_offset", "track_count", "album_offset", "album_count", "artist_offset", "artist_count", "playlist_offset", "playlist_count", "search_type", "userdata", NULL }; if (!PyArg_ParseTupleAndKeywords(args, kwds, "esO|iiiiiiiiO&O", kwlist, ENCODING, &query, &callback, &track_offset, &track_count, &album_offset, &album_count, &artist_offset, &artist_count, &playlist_offset, &playlist_count, &sp_search_type_converter, (void *)&search_type, &userdata)) return NULL; trampoline = create_trampoline(callback, userdata); Py_BEGIN_ALLOW_THREADS; search = sp_search_create(Session_SP_SESSION(self), query, track_offset, track_count, album_offset, album_count, artist_offset, artist_count, playlist_offset, playlist_count, search_type, Session_search_complete, (void *)trampoline); Py_END_ALLOW_THREADS; PyMem_Free(query); return Results_FromSpotify(search, 0 /* add_ref */); }
static PyObject * Session_search(Session * self, PyObject *args, PyObject *kwds) { char *query; sp_search *search; PyObject *callback, *userdata = NULL; int track_offset = 0, track_count = 32, album_offset = 0, album_count = 32, artist_offset = 0, artist_count = 32; Callback *st; PyObject *results; static char *kwlist[] = { "query", "callback", "track_offset", "track_count", "album_offset", "album_count", "artist_offset", "artist_count", "userdata", NULL }; if (!PyArg_ParseTupleAndKeywords(args, kwds, "esO|iiiiiiO", kwlist, ENCODING, &query, &callback, &track_offset, &track_count, &album_offset, &album_count, &artist_offset, &artist_count, &userdata)) return NULL; if (!userdata) userdata = Py_None; st = create_trampoline(callback, NULL, userdata); Py_BEGIN_ALLOW_THREADS; search = sp_search_create(self->_session, query, track_offset, track_count, album_offset, album_count, artist_offset, artist_count, (search_complete_cb *) search_complete, (void *)st); Py_END_ALLOW_THREADS; results = Results_FromSpotify(search); return results; }