Skip to content
Snippets Groups Projects
Select Git revision
  • 82b5b21f007f112ea96599ed031de63692aa6120
  • master default protected
  • fix-warnings
  • tvbgone-fixes
  • genofire/ble-follow-py
  • schneider/ble-stability-new-phy-adv
  • schneider/ble-stability
  • msgctl/gfx_rle
  • schneider/ble-stability-new-phy
  • add_menu_vibration
  • plaetzchen/ios-workaround
  • blinkisync-as-preload
  • schneider/max30001-pycardium
  • schneider/max30001-epicaridum
  • schneider/max30001
  • schneider/stream-locks
  • schneider/fundamental-test
  • schneider/ble-buffers
  • schneider/maxim-sdk-update
  • ch3/splashscreen
  • koalo/bhi160-works-but-dirty
  • v1.11
  • v1.10
  • v1.9
  • v1.8
  • v1.7
  • v1.6
  • v1.5
  • v1.4
  • v1.3
  • v1.2
  • v1.1
  • v1.0
  • release-1
  • bootloader-v1
  • v0.0
36 results

mscmem.c

Blame
  • Forked from card10 / firmware
    Source project has a limited visibility.
    bc.h 4.44 KiB
    /*
     * This file is part of the Micro Python project, http://micropython.org/
     *
     * The MIT License (MIT)
     *
     * Copyright (c) 2013, 2014 Damien P. George
     *
     * Permission is hereby granted, free of charge, to any person obtaining a copy
     * of this software and associated documentation files (the "Software"), to deal
     * in the Software without restriction, including without limitation the rights
     * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
     * copies of the Software, and to permit persons to whom the Software is
     * furnished to do so, subject to the following conditions:
     *
     * The above copyright notice and this permission notice shall be included in
     * all copies or substantial portions of the Software.
     *
     * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
     * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
     * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
     * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
     * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
     * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
     * THE SOFTWARE.
     */
    #ifndef __MICROPY_INCLUDED_PY_BC_H__
    #define __MICROPY_INCLUDED_PY_BC_H__
    
    #include "py/runtime.h"
    #include "py/obj.h"
    
    // bytecode layout:
    //
    //  n_state         : var uint
    //  n_exc_stack     : var uint
    //  scope_flags     : byte
    //  n_pos_args      : byte          number of arguments this function takes
    //  n_kwonly_args   : byte          number of keyword-only arguments this function takes
    //  n_def_pos_args  : byte          number of default positional arguments
    //
    //  code_info_size  : var uint |    code_info_size counts bytes in this chunk
    //  simple_name     : var qstr |
    //  source_file     : var qstr |
    //  <line number info>         |
    //  <word alignment padding>   |    only needed if bytecode contains pointers
    //
    //  local_num0      : byte     |
    //  ...             : byte     |
    //  local_numN      : byte     |    N = num_cells
    //  255             : byte     |    end of list sentinel
    //  <bytecode>                 |
    //
    //
    // constant table layout:
    //
    //  argname0        : obj (qstr)
    //  ...             : obj (qstr)
    //  argnameN        : obj (qstr)    N = num_pos_args + num_kwonly_args
    //  const0          : obj
    //  constN          : obj
    
    // Exception stack entry
    typedef struct _mp_exc_stack {
        const byte *handler;
        // bit 0 is saved currently_in_except_block value
        // bit 1 is whether the opcode was SETUP_WITH or SETUP_FINALLY
        mp_obj_t *val_sp;
        // Saved exception, valid if currently_in_except_block bit is 1
        mp_obj_base_t *prev_exc;
    } mp_exc_stack_t;