The various C integer types map to Lisp integers, so if you want to define the 0x00000010u constant you can use the Lisp value 16. (You can use Lisp's hexadecimal syntax, of course: #x10.)
You may find the cl-sdl2 project <https://github.com/lispgames/cl-sdl2> interesting. You can use it and/or read its source to learn how to access SDL2 using CFFI. Cheers, Luís On Sat, 27 Jun 2020 at 13:40, oleg harput <oleghar...@gmail.com> wrote: > > i am trying to reach C SDL2 using CFFI, in C SDL2 there many functions like > int "SDL_Init(Uint32 flags)" > its return value is integer but its are arguments are defined like (in source > code) > #define SDL_INIT_TIMER 0x00000001u > #define SDL_INIT_AUDIO 0x00000010u > #define SDL_INIT_VIDEO 0x00000020u /**< SDL_INIT_VIDEO implies > SDL_INIT_EVENTS */ > #define SDL_INIT_JOYSTICK 0x00000200u /**< SDL_INIT_JOYSTICK implies > SDL_INIT_EVENTS */ > #define SDL_INIT_HAPTIC 0x00001000u > #define SDL_INIT_GAMECONTROLLER 0x00002000u /**< SDL_INIT_GAMECONTROLLER > implies SDL_INIT_JOYSTICK */ > #define SDL_INIT_EVENTS 0x00004000u > #define SDL_INIT_SENSOR 0x00008000u > when calling "SDL_Init" using CFFI in CL i did not know how to call arguments > like SDL_INIT_TIMER,SDL_INIT_AUDIO,SDL_INIT_VIDEO,... so i tried instead of > calling them, i tried to insert their corresping values (they are hexidecimal > unsigned integers in C) like > (cffi:foreign-funcall "SDL_Init" > :uint32 32;;for #define SDL_INIT_VIDEO 0x00000020u > :int) > but i am not sure that was a valid transformation or not(32 in CL corresponds > to 0x00000020u in C or not) > A better option is to call SDL_INIT_TIMER,SDL_INIT_AUDIO,... directly from > cffi but i don not know how because they seemed undefined. > Do you know how to call SDL_INIT_TIMER, SDL_INIT_AUDIO ... using CFFI? > And can you tell me the transformation rules (if there are any) the numbers > from C to CL using CFFI? > > пт, 26 июн. 2020 г. в 23:58, Luís Oliveira <luis...@gmail.com>: >> >> On Fri, 26 Jun 2020 at 20:52, oleg harput <oleghar...@gmail.com> wrote: >> > How can we convert C 0x00000001u (unsigned int in C) to Common Lisp using >> > CFFI? >> > >> > Can we type directly 1?(Is this a valid translation to CL?) >> >> In what context? >> >> -- >> Luís Oliveira >> http://kerno.org/~luis/ -- Luís Oliveira http://kerno.org/~luis/