@@ -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 ) {
346346static 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
351354mp_get_stream_raise (pos_args [0 ],MP_STREAM_OP_READ |MP_STREAM_OP_WRITE |MP_STREAM_OP_IOCTL );
352355
353356struct {
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 ;
356362mp_arg_parse_all (n_args - 1 ,pos_args + 1 ,kw_args ,
357363MP_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 );
360371if (db == NULL ) {
361372nlr_raise (mp_obj_new_exception_arg1 (& mp_type_OSError ,MP_OBJ_NEW_SMALL_INT (errno )));
362373 }