SDL_PushEvent man page
SDL_PushEvent — Pushes an event onto the event queue
int SDL_PushEvent(SDL_Event *event);
The event queue can actually be used as a two way communication channel. Not only can events be read from the queue, but the user can also push their own events onto it. event is a pointer to the event structure you wish to push onto the queue.
Pushing device input events onto the queue doesn't modify the state of the device within SDL.
Returns 0 on success or -1 if the event couldn't be pushed.
SDL_PollEvent, SDL_PeepEvents, SDL_Event