@@ -344,19 +344,30 @@ STATIC FILEVTABLE btree_stream_fvtable = {
344344
345345STATIC mp_obj_t mod_btree_open (size_t n_args , const mp_obj_t * pos_args , mp_map_t * kw_args ) {
346346 static const mp_arg_t allowed_args [] = {
347- { MP_QSTR_server_side , MP_ARG_KW_ONLY | MP_ARG_BOOL , {.u_bool = false} },
347+ { MP_QSTR_flags , MP_ARG_KW_ONLY | MP_ARG_INT , {.u_int = 0 } },
348+ { MP_QSTR_cachesize , MP_ARG_KW_ONLY | MP_ARG_INT , {.u_int = 0 } },
349+ { MP_QSTR_pagesize , MP_ARG_KW_ONLY | MP_ARG_INT , {.u_int = 0 } },
350+ { MP_QSTR_minkeypage , MP_ARG_KW_ONLY | MP_ARG_INT , {.u_int = 0 } },
348351 };
349352
350353 // Make sure we got a stream object
351354 mp_get_stream_raise (pos_args [0 ], MP_STREAM_OP_READ | MP_STREAM_OP_WRITE | MP_STREAM_OP_IOCTL );
352355
353356 struct {
354- mp_arg_val_t server_side ;
357+ mp_arg_val_t flags ;
358+ mp_arg_val_t cachesize ;
359+ mp_arg_val_t pagesize ;
360+ mp_arg_val_t minkeypage ;
355361 } args ;
356362 mp_arg_parse_all (n_args - 1 , pos_args + 1 , kw_args ,
357363 MP_ARRAY_SIZE (allowed_args ), allowed_args , (mp_arg_val_t * )& args );
364+ BTREEINFO openinfo = {0 };
365+ openinfo .flags = args .flags .u_int ;
366+ openinfo .cachesize = args .cachesize .u_int ;
367+ openinfo .psize = args .pagesize .u_int ;
368+ openinfo .minkeypage = args .minkeypage .u_int ;
358369
359- DB * db = __bt_open (pos_args [0 ], & btree_stream_fvtable , /* openinfo*/ NULL , /*dflags*/ 0 );
370+ DB * db = __bt_open (pos_args [0 ], & btree_stream_fvtable , & openinfo , /*dflags*/ 0 );
360371 if (db == NULL ) {
361372 nlr_raise (mp_obj_new_exception_arg1 (& mp_type_OSError , MP_OBJ_NEW_SMALL_INT (errno )));
362373 }
0 commit comments