{"action":"created","comment":{"url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/pulls/comments/132192421","pull_request_review_id":55245931,"id":132192421,"diff_hunk":"@@ -0,0 +1,192 @@\n+.. _memory_domain:\n+\n+Memory Domain\n+#############\n+\n+The memory domain APIs are used by unprivileged threads to share data to\n+the threads in the same memory and protect sensitive data from threads\n+outside their domain. It is not only for improving the security but also\n+useful for debugging (unexpected access would cause exception).\n+\n+.. contents::\n+    :local:\n+    :depth: 2\n+\n+Concepts\n+********\n+\n+A memory domain would contain some number of memory partitions.\n+A memory partition is a memory region (might be RAM, peripheral registers,\n+flash...) with specific attributes (access permission, e.g. privileged\n+read/write, unprivileged read-only, execute never...).\n+Memory partitions would be defined by set of MPU regions or MMU tables\n+underneath.\n+A thread could only belong to a single memory domain any point in time but a\n+memory domain could contain multiple threads.\n+Threads in the same memory domain would have the same access permission\n+to the memory partitions belong to the memory domain.\n+\n+Implementation\n+**************\n+\n+Create a Memory Domain\n+======================\n+\n+A memory domain is defined using a variable of type\n+:c:type:`struct k_mem_domain`. It must then be initialized by calling\n+:cpp:func:`k_mem_domain_init()`.\n+\n+The following code defines and initializes an empty memory domain.\n+\n+.. code-block:: c\n+\n+    struct k_mem_domain app0_domain;\n+\n+    k_mem_domain_init(&app0_domain, \"app0_domain\", 0, NULL);\n+\n+Add Memory Partitions into a Memory Domain\n+==========================================\n+\n+There are two ways to add memory partitions into a memory domain.\n+\n+The following code shows how to add memory partitions while creating\n+a memory domain.\n+\n+.. code-block:: c\n+\n+    /* the start address of the MPU region needs to align with its size */\n+    u8_t __aligned(32) app0_buf[32];\n+    u8_t __aligned(32) app1_buf[32];\n+\n+    K_MEM_PARTITION_DEFINE(app0_part0, app0_buf, sizeof(app0_buf),\n+                           K_MEM_PARTITION_P_RW_U_RW);\n+\n+    K_MEM_PARTITION_DEFINE(app0_part1, app1_buf, sizeof(app1_buf),\n+                           K_MEM_PARTITION_P_RW_U_RO);\n+\n+    struct k_mem_partition *app0_parts[] = {\n+        app0_part0,\n+        app0_part1\n+    };\n+\n+    k_mem_domain_init(&app0_domain, \"app0_domain\",\n+                      ARRAY_SIZE(app0_parts), app0_parts);\n+\n+The following code shows how to add memory partitions into a initialized\n+memory domain one by one.\n+\n+.. code-block:: c\n+\n+    /* the start address of the MPU region needs to align with its size */\n+    u8_t __aligned(32) app0_buf[32];\n+    u8_t __aligned(32) app1_buf[32];\n+\n+    K_MEM_PARTITION_DEFINE(app0_part0, app0_buf, sizeof(app0_buf),\n+                           K_MEM_PARTITION_P_RW_U_RW);\n+\n+    K_MEM_PARTITION_DEFINE(app0_part1, app1_buf, sizeof(app1_buf),\n+                           K_MEM_PARTITION_P_RW_U_RO);\n+\n+    k_mem_domain_add_partition(&app0_domain, &app0_part0);\n+    k_mem_domain_add_partition(&app0_domain, &app0_part1);\n+\n+.. note::\n+    The maximum number of memory partitions would be limited by maixmum\n+    number of MPU regions or maximum number of MMU tables.\n+\n+Add Threads into a Memory Domain\n+================================\n+\n+Adding threads into a memory domain grants threads to access the memory\n+partitions in the memory domain.\n+\n+The following code shows how to add threads into a memory domain.\n+\n+.. code-block:: c\n+\n+    k_mem_domain_add_thread(&app0_domain, &app_thread_id);\n+\n+Remove a Memory Partition from a Memory Domain\n+==============================================\n+\n+The following code shows how to remove a memory partition from a memory\n+domain.\n+\n+.. code-block:: c\n+\n+    k_mem_domain_remove_partition(&app0_domain, &app0_part1);\n+\n+k_mem_domain_remove_partition() API would find the memory partition","path":"doc/kernel/other/memory_domain.rst","position":119,"original_position":119,"commit_id":"f0f0e2f1ace0d4cac6aa07903269dc7e927c6eb0","original_commit_id":"f0f0e2f1ace0d4cac6aa07903269dc7e927c6eb0","user":{"login":"dbkinder","id":11063618,"avatar_url":"https://avatars0.githubusercontent.com/u/11063618?v=4","gravatar_id":"","url":"https://api.github.com/users/dbkinder","html_url":"https://github.com/dbkinder","followers_url":"https://api.github.com/users/dbkinder/followers","following_url":"https://api.github.com/users/dbkinder/following{/other_user}","gists_url":"https://api.github.com/users/dbkinder/gists{/gist_id}","starred_url":"https://api.github.com/users/dbkinder/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dbkinder/subscriptions","organizations_url":"https://api.github.com/users/dbkinder/orgs","repos_url":"https://api.github.com/users/dbkinder/repos","events_url":"https://api.github.com/users/dbkinder/events{/privacy}","received_events_url":"https://api.github.com/users/dbkinder/received_events","type":"User","site_admin":false},"body":"Start this sentence with \"The\"","created_at":"2017-08-09T14:03:39Z","updated_at":"2017-08-09T14:03:39Z","html_url":"https://github.com/zephyrproject-rtos/zephyr/pull/814#discussion_r132192421","pull_request_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/pulls/814","_links":{"self":{"href":"https://api.github.com/repos/zephyrproject-rtos/zephyr/pulls/comments/132192421"},"html":{"href":"https://github.com/zephyrproject-rtos/zephyr/pull/814#discussion_r132192421"},"pull_request":{"href":"https://api.github.com/repos/zephyrproject-rtos/zephyr/pulls/814"}}},"pull_request":{"url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/pulls/814","id":130810260,"html_url":"https://github.com/zephyrproject-rtos/zephyr/pull/814","diff_url":"https://github.com/zephyrproject-rtos/zephyr/pull/814.diff","patch_url":"https://github.com/zephyrproject-rtos/zephyr/pull/814.patch","issue_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/issues/814","number":814,"state":"open","locked":false,"title":"RFC: Memory Domain APIs","user":{"login":"chunlinhan","id":4487097,"avatar_url":"https://avatars2.githubusercontent.com/u/4487097?v=4","gravatar_id":"","url":"https://api.github.com/users/chunlinhan","html_url":"https://github.com/chunlinhan","followers_url":"https://api.github.com/users/chunlinhan/followers","following_url":"https://api.github.com/users/chunlinhan/following{/other_user}","gists_url":"https://api.github.com/users/chunlinhan/gists{/gist_id}","starred_url":"https://api.github.com/users/chunlinhan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chunlinhan/subscriptions","organizations_url":"https://api.github.com/users/chunlinhan/orgs","repos_url":"https://api.github.com/users/chunlinhan/repos","events_url":"https://api.github.com/users/chunlinhan/events{/privacy}","received_events_url":"https://api.github.com/users/chunlinhan/received_events","type":"User","site_admin":false},"body":"kernel: add memory domain APIs\r\nAdd the following application-facing memory domain APIs:\r\n\r\nk_mem_domain_init() - to initialize a memory domain\r\nk_mem_domain_destroy() - to destroy a memory domain\r\nk_mem_domain_add_partition() - to add a partition into a domain\r\nk_mem_domain_remove_partition() - to remove a partition from a domain\r\nk_mem_domain_add_thread() - to add a thread into a domain\r\nk_mem_domain_remove_thread() - to remove a thread from a domain\r\n\r\nA memory domain would contain some number of memory partitions.\r\nA memory partition is a memory region (might be RAM, peripheral\r\nregisters, flash...) with specific attributes (access permission,\r\ne.g. privileged read/write, unprivileged read-only, execute never...).\r\nMemory partitions would be defined by set of MPU regions or MMU tables\r\nunderneath.\r\nA thread could only belong to a single memory domain any point in time\r\nbut a memory domain could contain multiple threads.\r\nThreads in the same memory domain would have the same access permission\r\nto the memory partitions belong to the memory domain.\r\n\r\nThe memory domain APIs are used by unprivileged threads to share data\r\nto the threads in the same memory and protect sensitive data from\r\nthreads outside their domain. It is not only for improving the security\r\nbut also useful for debugging (unexpected access would cause exception).\r\n\r\nJira: ZEP-2281\r\n\r\nSigned-off-by: Chunlin Han <chunlin.han@linaro.org>","created_at":"2017-07-17T09:05:55Z","updated_at":"2017-08-09T14:03:39Z","closed_at":null,"merged_at":null,"merge_commit_sha":"7fd98ec485da909ab0222167b646cab897d005ff","assignee":null,"assignees":[],"requested_reviewers":[{"login":"andyross","id":300115,"avatar_url":"https://avatars1.githubusercontent.com/u/300115?v=4","gravatar_id":"","url":"https://api.github.com/users/andyross","html_url":"https://github.com/andyross","followers_url":"https://api.github.com/users/andyross/followers","following_url":"https://api.github.com/users/andyross/following{/other_user}","gists_url":"https://api.github.com/users/andyross/gists{/gist_id}","starred_url":"https://api.github.com/users/andyross/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andyross/subscriptions","organizations_url":"https://api.github.com/users/andyross/orgs","repos_url":"https://api.github.com/users/andyross/repos","events_url":"https://api.github.com/users/andyross/events{/privacy}","received_events_url":"https://api.github.com/users/andyross/received_events","type":"User","site_admin":false},{"login":"andrewboie","id":3387369,"avatar_url":"https://avatars1.githubusercontent.com/u/3387369?v=4","gravatar_id":"","url":"https://api.github.com/users/andrewboie","html_url":"https://github.com/andrewboie","followers_url":"https://api.github.com/users/andrewboie/followers","following_url":"https://api.github.com/users/andrewboie/following{/other_user}","gists_url":"https://api.github.com/users/andrewboie/gists{/gist_id}","starred_url":"https://api.github.com/users/andrewboie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andrewboie/subscriptions","organizations_url":"https://api.github.com/users/andrewboie/orgs","repos_url":"https://api.github.com/users/andrewboie/repos","events_url":"https://api.github.com/users/andrewboie/events{/privacy}","received_events_url":"https://api.github.com/users/andrewboie/received_events","type":"User","site_admin":false},{"login":"MaureenHelm","id":6172539,"avatar_url":"https://avatars2.githubusercontent.com/u/6172539?v=4","gravatar_id":"","url":"https://api.github.com/users/MaureenHelm","html_url":"https://github.com/MaureenHelm","followers_url":"https://api.github.com/users/MaureenHelm/followers","following_url":"https://api.github.com/users/MaureenHelm/following{/other_user}","gists_url":"https://api.github.com/users/MaureenHelm/gists{/gist_id}","starred_url":"https://api.github.com/users/MaureenHelm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MaureenHelm/subscriptions","organizations_url":"https://api.github.com/users/MaureenHelm/orgs","repos_url":"https://api.github.com/users/MaureenHelm/repos","events_url":"https://api.github.com/users/MaureenHelm/events{/privacy}","received_events_url":"https://api.github.com/users/MaureenHelm/received_events","type":"User","site_admin":false},{"login":"galak","id":16417047,"avatar_url":"https://avatars2.githubusercontent.com/u/16417047?v=4","gravatar_id":"","url":"https://api.github.com/users/galak","html_url":"https://github.com/galak","followers_url":"https://api.github.com/users/galak/followers","following_url":"https://api.github.com/users/galak/following{/other_user}","gists_url":"https://api.github.com/users/galak/gists{/gist_id}","starred_url":"https://api.github.com/users/galak/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/galak/subscriptions","organizations_url":"https://api.github.com/users/galak/orgs","repos_url":"https://api.github.com/users/galak/repos","events_url":"https://api.github.com/users/galak/events{/privacy}","received_events_url":"https://api.github.com/users/galak/received_events","type":"User","site_admin":false},{"login":"agross-linaro","id":28376145,"avatar_url":"https://avatars1.githubusercontent.com/u/28376145?v=4","gravatar_id":"","url":"https://api.github.com/users/agross-linaro","html_url":"https://github.com/agross-linaro","followers_url":"https://api.github.com/users/agross-linaro/followers","following_url":"https://api.github.com/users/agross-linaro/following{/other_user}","gists_url":"https://api.github.com/users/agross-linaro/gists{/gist_id}","starred_url":"https://api.github.com/users/agross-linaro/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/agross-linaro/subscriptions","organizations_url":"https://api.github.com/users/agross-linaro/orgs","repos_url":"https://api.github.com/users/agross-linaro/repos","events_url":"https://api.github.com/users/agross-linaro/events{/privacy}","received_events_url":"https://api.github.com/users/agross-linaro/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/pulls/814/commits","review_comments_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/pulls/814/comments","review_comment_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/pulls/comments{/number}","comments_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/issues/814/comments","statuses_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/statuses/f0f0e2f1ace0d4cac6aa07903269dc7e927c6eb0","head":{"label":"chunlinhan:memory_domain_apis","ref":"memory_domain_apis","sha":"f0f0e2f1ace0d4cac6aa07903269dc7e927c6eb0","user":{"login":"chunlinhan","id":4487097,"avatar_url":"https://avatars2.githubusercontent.com/u/4487097?v=4","gravatar_id":"","url":"https://api.github.com/users/chunlinhan","html_url":"https://github.com/chunlinhan","followers_url":"https://api.github.com/users/chunlinhan/followers","following_url":"https://api.github.com/users/chunlinhan/following{/other_user}","gists_url":"https://api.github.com/users/chunlinhan/gists{/gist_id}","starred_url":"https://api.github.com/users/chunlinhan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chunlinhan/subscriptions","organizations_url":"https://api.github.com/users/chunlinhan/orgs","repos_url":"https://api.github.com/users/chunlinhan/repos","events_url":"https://api.github.com/users/chunlinhan/events{/privacy}","received_events_url":"https://api.github.com/users/chunlinhan/received_events","type":"User","site_admin":false},"repo":{"id":92390467,"name":"zephyr","full_name":"chunlinhan/zephyr","owner":{"login":"chunlinhan","id":4487097,"avatar_url":"https://avatars2.githubusercontent.com/u/4487097?v=4","gravatar_id":"","url":"https://api.github.com/users/chunlinhan","html_url":"https://github.com/chunlinhan","followers_url":"https://api.github.com/users/chunlinhan/followers","following_url":"https://api.github.com/users/chunlinhan/following{/other_user}","gists_url":"https://api.github.com/users/chunlinhan/gists{/gist_id}","starred_url":"https://api.github.com/users/chunlinhan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chunlinhan/subscriptions","organizations_url":"https://api.github.com/users/chunlinhan/orgs","repos_url":"https://api.github.com/users/chunlinhan/repos","events_url":"https://api.github.com/users/chunlinhan/events{/privacy}","received_events_url":"https://api.github.com/users/chunlinhan/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/chunlinhan/zephyr","description":"Primary GIT Repository for the Zephyr Project","fork":true,"url":"https://api.github.com/repos/chunlinhan/zephyr","forks_url":"https://api.github.com/repos/chunlinhan/zephyr/forks","keys_url":"https://api.github.com/repos/chunlinhan/zephyr/keys{/key_id}","collaborators_url":"https://api.github.com/repos/chunlinhan/zephyr/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/chunlinhan/zephyr/teams","hooks_url":"https://api.github.com/repos/chunlinhan/zephyr/hooks","issue_events_url":"https://api.github.com/repos/chunlinhan/zephyr/issues/events{/number}","events_url":"https://api.github.com/repos/chunlinhan/zephyr/events","assignees_url":"https://api.github.com/repos/chunlinhan/zephyr/assignees{/user}","branches_url":"https://api.github.com/repos/chunlinhan/zephyr/branches{/branch}","tags_url":"https://api.github.com/repos/chunlinhan/zephyr/tags","blobs_url":"https://api.github.com/repos/chunlinhan/zephyr/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/chunlinhan/zephyr/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/chunlinhan/zephyr/git/refs{/sha}","trees_url":"https://api.github.com/repos/chunlinhan/zephyr/git/trees{/sha}","statuses_url":"https://api.github.com/repos/chunlinhan/zephyr/statuses/{sha}","languages_url":"https://api.github.com/repos/chunlinhan/zephyr/languages","stargazers_url":"https://api.github.com/repos/chunlinhan/zephyr/stargazers","contributors_url":"https://api.github.com/repos/chunlinhan/zephyr/contributors","subscribers_url":"https://api.github.com/repos/chunlinhan/zephyr/subscribers","subscription_url":"https://api.github.com/repos/chunlinhan/zephyr/subscription","commits_url":"https://api.github.com/repos/chunlinhan/zephyr/commits{/sha}","git_commits_url":"https://api.github.com/repos/chunlinhan/zephyr/git/commits{/sha}","comments_url":"https://api.github.com/repos/chunlinhan/zephyr/comments{/number}","issue_comment_url":"https://api.github.com/repos/chunlinhan/zephyr/issues/comments{/number}","contents_url":"https://api.github.com/repos/chunlinhan/zephyr/contents/{+path}","compare_url":"https://api.github.com/repos/chunlinhan/zephyr/compare/{base}...{head}","merges_url":"https://api.github.com/repos/chunlinhan/zephyr/merges","archive_url":"https://api.github.com/repos/chunlinhan/zephyr/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/chunlinhan/zephyr/downloads","issues_url":"https://api.github.com/repos/chunlinhan/zephyr/issues{/number}","pulls_url":"https://api.github.com/repos/chunlinhan/zephyr/pulls{/number}","milestones_url":"https://api.github.com/repos/chunlinhan/zephyr/milestones{/number}","notifications_url":"https://api.github.com/repos/chunlinhan/zephyr/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/chunlinhan/zephyr/labels{/name}","releases_url":"https://api.github.com/repos/chunlinhan/zephyr/releases{/id}","deployments_url":"https://api.github.com/repos/chunlinhan/zephyr/deployments","created_at":"2017-05-25T10:03:00Z","updated_at":"2017-05-25T10:03:36Z","pushed_at":"2017-08-09T02:36:26Z","git_url":"git://github.com/chunlinhan/zephyr.git","ssh_url":"git@github.com:chunlinhan/zephyr.git","clone_url":"https://github.com/chunlinhan/zephyr.git","svn_url":"https://github.com/chunlinhan/zephyr","homepage":"http://zephyrproject.org/doc","size":79425,"stargazers_count":0,"watchers_count":0,"language":"C","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"zephyrproject-rtos:master","ref":"master","sha":"197e6e2ba3b02abfeebe56bd9cd8ffb4424ee072","user":{"login":"zephyrproject-rtos","id":19595895,"avatar_url":"https://avatars2.githubusercontent.com/u/19595895?v=4","gravatar_id":"","url":"https://api.github.com/users/zephyrproject-rtos","html_url":"https://github.com/zephyrproject-rtos","followers_url":"https://api.github.com/users/zephyrproject-rtos/followers","following_url":"https://api.github.com/users/zephyrproject-rtos/following{/other_user}","gists_url":"https://api.github.com/users/zephyrproject-rtos/gists{/gist_id}","starred_url":"https://api.github.com/users/zephyrproject-rtos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zephyrproject-rtos/subscriptions","organizations_url":"https://api.github.com/users/zephyrproject-rtos/orgs","repos_url":"https://api.github.com/users/zephyrproject-rtos/repos","events_url":"https://api.github.com/users/zephyrproject-rtos/events{/privacy}","received_events_url":"https://api.github.com/users/zephyrproject-rtos/received_events","type":"Organization","site_admin":false},"repo":{"id":59771425,"name":"zephyr","full_name":"zephyrproject-rtos/zephyr","owner":{"login":"zephyrproject-rtos","id":19595895,"avatar_url":"https://avatars2.githubusercontent.com/u/19595895?v=4","gravatar_id":"","url":"https://api.github.com/users/zephyrproject-rtos","html_url":"https://github.com/zephyrproject-rtos","followers_url":"https://api.github.com/users/zephyrproject-rtos/followers","following_url":"https://api.github.com/users/zephyrproject-rtos/following{/other_user}","gists_url":"https://api.github.com/users/zephyrproject-rtos/gists{/gist_id}","starred_url":"https://api.github.com/users/zephyrproject-rtos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zephyrproject-rtos/subscriptions","organizations_url":"https://api.github.com/users/zephyrproject-rtos/orgs","repos_url":"https://api.github.com/users/zephyrproject-rtos/repos","events_url":"https://api.github.com/users/zephyrproject-rtos/events{/privacy}","received_events_url":"https://api.github.com/users/zephyrproject-rtos/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/zephyrproject-rtos/zephyr","description":"Primary GIT Repository for the Zephyr Project","fork":false,"url":"https://api.github.com/repos/zephyrproject-rtos/zephyr","forks_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/forks","keys_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/keys{/key_id}","collaborators_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/teams","hooks_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/hooks","issue_events_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/issues/events{/number}","events_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/events","assignees_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/assignees{/user}","branches_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/branches{/branch}","tags_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/tags","blobs_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/git/refs{/sha}","trees_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/git/trees{/sha}","statuses_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/statuses/{sha}","languages_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/languages","stargazers_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/stargazers","contributors_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/contributors","subscribers_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/subscribers","subscription_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/subscription","commits_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/commits{/sha}","git_commits_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/git/commits{/sha}","comments_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/comments{/number}","issue_comment_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/issues/comments{/number}","contents_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/contents/{+path}","compare_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/compare/{base}...{head}","merges_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/merges","archive_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/downloads","issues_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/issues{/number}","pulls_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/pulls{/number}","milestones_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/milestones{/number}","notifications_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/labels{/name}","releases_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/releases{/id}","deployments_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/deployments","created_at":"2016-05-26T17:54:19Z","updated_at":"2017-08-08T13:36:51Z","pushed_at":"2017-08-09T13:47:21Z","git_url":"git://github.com/zephyrproject-rtos/zephyr.git","ssh_url":"git@github.com:zephyrproject-rtos/zephyr.git","clone_url":"https://github.com/zephyrproject-rtos/zephyr.git","svn_url":"https://github.com/zephyrproject-rtos/zephyr","homepage":"http://zephyrproject.org/doc","size":79812,"stargazers_count":280,"watchers_count":280,"language":"C","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":242,"mirror_url":null,"open_issues_count":75,"forks":242,"open_issues":75,"watchers":280,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/zephyrproject-rtos/zephyr/pulls/814"},"html":{"href":"https://github.com/zephyrproject-rtos/zephyr/pull/814"},"issue":{"href":"https://api.github.com/repos/zephyrproject-rtos/zephyr/issues/814"},"comments":{"href":"https://api.github.com/repos/zephyrproject-rtos/zephyr/issues/814/comments"},"review_comments":{"href":"https://api.github.com/repos/zephyrproject-rtos/zephyr/pulls/814/comments"},"review_comment":{"href":"https://api.github.com/repos/zephyrproject-rtos/zephyr/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/zephyrproject-rtos/zephyr/pulls/814/commits"},"statuses":{"href":"https://api.github.com/repos/zephyrproject-rtos/zephyr/statuses/f0f0e2f1ace0d4cac6aa07903269dc7e927c6eb0"}}}}
{"actor":{"display_login":"dbkinder"}}